找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1089|回复: 8

[ARX函数]:如何确定用户按下ALT键?

[复制链接]
发表于 2005-8-2 22:00:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
如题,
在下刚学ARX,实在有诸多问题.谢谢先.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-8-2 22:21:12 | 显示全部楼层
如果是对话框就可以在PreTranslateMessage消息函数中判断
如果是CAD环境中得用钩子来判断
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-4 11:57:26 | 显示全部楼层
定义回调函数,该回调函数处理CTRL键和SHIFT键以及鼠标按键
BOOL filterMouse(MSG* pMsg)
{
        static long ptx = 0; // 记录鼠标当前的坐标
        static long pty = 0;
        static BOOL vMode = FALSE;
        static BOOL hMode = FALSE;

        if (   pMsg->message == WM_MOUSEMOVE
                || pMsg->message == WM_LBUTTONDOWN
                || pMsg->message == WM_LBUTTONUP) {
                if ((  pMsg->message == WM_LBUTTONDOWN
                        || pMsg->message == WM_LBUTTONUP)
                        && (vMode == TRUE || hMode == TRUE)) {
                                pMsg->lParam = MAKELONG(ptx, pty);
                                return FALSE;
                }
               
                if (pMsg->wParam == MK_CONTROL) {// 鼠标消息发送是Ctrl键被按住
                        if (vMode == TRUE) {
                                // X坐标不变
                                pMsg->lParam = MAKELONG(ptx, HIWORD(pMsg->lParam));
                                pty = HIWORD(pMsg->lParam);
                        }
                        else {
                                ptx = LOWORD(pMsg->lParam);
                        }
                        vMode = TRUE;
                        hMode = FALSE;
                }
                else if (pMsg->wParam = MK_SHIFT) { // 鼠标消息发送是Shift键被按住
                        if (hMode == TRUE) {
                                // X坐标不变
                                pMsg->lParam = MAKELONG(LOWORD(pMsg->lParam), pty);
                                ptx = LOWORD(pMsg->lParam);
                        }
                        else {
                                pty = HIWORD(pMsg->lParam);
                        }
                        hMode = TRUE;
                        vMode = FALSE;
                }
                else {
                        vMode = hMode = FALSE;
                }
        }
        return FALSE; // 消息交给其他函数处理
}



// 注册钩子函数
acedRegisterFilterWinMsg(filterMouse);

// 卸载钩子函数

acedRemoveFilterWinMsg(filterMouse);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-9 19:54:52 | 显示全部楼层
楼上说的是ARX例子中的代码.
但是我的情况是,判断CONTROL和SHIFT键都可以.就是对ALT键不行.
我用的是VK_ALT.
好象ALT键和SHIFT键不是同一类型似的.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-8-10 00:54:05 | 显示全部楼层
很奇怪啊,我试过了ALT确实截获不到,不知道是什么原因。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-11 16:38:43 | 显示全部楼层
顶上来.没高手了?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2006-8-15 19:47:35 | 显示全部楼层
是不是 VK_MENU
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-8-28 00:57:04 | 显示全部楼层
的确截获不到!大家继续讨论!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-7 21:23:13 | 显示全部楼层
VK_MENU也不是.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-26 17:21 , Processed in 0.171725 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表