乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 122|回复: 9

c#如何激活CAD窗口(红色部分如何写)

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
6
发表于 2006-6-12 20:53:00 | 显示全部楼层 |阅读模式
.AcadSelectionSet sset;
           AutoCAD.AcadApplication app;
           app = (AcadApplication)      
           System.Runtime.InteropServices.Marshal.GetActiveObject("AutoCAD.Application.16");
            short[] f1 = new short[] { 2 };
            object[] f2 = new object[] { "gtmodel" };
            
            sset=app.ActiveDocument.SelectionSets.Add("MySelect");
            this.Hide();
            //此次如何激活CAD窗口,让程序在cad中选择
            
            app.ActiveDocument.Utility.Prompt("请选择对象:");
            sset.SelectOnScreen(f1, f2);
            this.Show();
回复

使用道具 举报

15

主题

195

帖子

9

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
255
发表于 2006-7-4 19:53:00 | 显示全部楼层
望高手指点。
回复

使用道具 举报

9

主题

25

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
61
发表于 2006-11-5 12:01:00 | 显示全部楼层


                               
登录/注册后可看大图


望高手指点。
回复

使用道具 举报

0

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
2
发表于 2008-1-24 00:24:00 | 显示全部楼层
不知老兄是否解决问题了?我的方法比较复杂,就是模拟鼠标在CAD屏幕上点击一下。
using System.Diagnostics;
加上
[DllImport("User32")]
        public extern static void mouse_event(int dwFlags, int dx, int dy, int dwData, IntPtr dwExtraInfo);
        [DllImport("User32")]
        public extern static void SetCursorPos(int x, int y);
        [DllImport("User32")]
        public extern static bool GetCursorPos(out POINT p);
        [DllImport("User32")]
        public extern static int ShowCursor(bool bShow);
        public struct POINT
        {
            public int X;
            public int Y;
        }
        [Flags]
        public enum MouseEventFlags
        {
            Move = 0x0001,
            LeftDown = 0x0002,
            LeftUp = 0x0004,
            RightDown = 0x0008,
            RightUp = 0x0010,
            MiddleDown = 0x0020,
            MiddleUp = 0x0040,
            Wheel = 0x0800,
            Absolute = 0x8000
        }
//==========================================模拟鼠标左键点击
        private void AutoMouseLeftClick(int x,int y)
        {
            int dx = 0;
            int dy = 0;
            mouse_event((int)(MouseEventFlags.LeftDown | MouseEventFlags.Absolute), dx, dy, 0, IntPtr.Zero);
            mouse_event((int)(MouseEventFlags.LeftUp | MouseEventFlags.Absolute), dx, dy, 0, IntPtr.Zero);
        
         
        }

回复

使用道具 举报

0

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
2
发表于 2008-1-24 00:29:00 | 显示全部楼层
模拟鼠标在屏幕 0,0坐标点击一下
AutoMouseLeftClick(0, 0);   
回复

使用道具 举报

0

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
3
发表于 2008-2-27 13:22:00 | 显示全部楼层
谢谢哦
回复

使用道具 举报

10

主题

31

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
71
发表于 2008-7-3 22:39:00 | 显示全部楼层
请问blessli:
在CAD下显示一个无模式对话框,当鼠标离开该窗口后,如何将焦点转移至CAD主窗口?
回复

使用道具 举报

1

主题

13

帖子

2

银币

初来乍到

Rank: 1

铜币
17
发表于 2008-10-10 18:37:00 | 显示全部楼层

遇到同样问题!
关注ing.
回复

使用道具 举报

2

主题

19

帖子

2

银币

初来乍到

Rank: 1

铜币
27
发表于 2012-6-24 12:30:00 | 显示全部楼层
遇到同样问题!
关注ing.

回复

使用道具 举报

21

主题

97

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
181
发表于 2012-10-21 11:06:00 | 显示全部楼层

你好,用AutoMouseLeftClick(0, 0);   的话,会出现"内部错误:  gedit 3"这种错误。是为什么呢?
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-14 21:10 , Processed in 0.426354 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表