📄 subject_64170.htm
字号:
<p>
序号:64170 发表者:xiaogang_2000 发表日期:2003-12-09 11:19:29
<br>主题:为什么按下CONTROL和SHIFT键只在MouseMove消息中有效
<br>内容:为什么按下CONTROL和SHIFT键只在MouseMove消息中有效。<BR>如以下程序,这是为什么呀?<BR>我需要在左键按下时检测SHIFT键按下(比如要实现多选的功能),该怎么处理?<BR>void CDdeView::OnLButtonDown(UINT nFlags, CPoint point) <BR>{<BR> // TODO: Add your message handler code here and/or call default<BR> if (nFlags == MK_CONTROL)<BR> TRACE("MK_CONTROL\n");<BR> else if (nFlags == MK_SHIFT)<BR> TRACE("MK_SHIFT\n");<BR> else <BR> TRACE("no \n");<BR> <BR> CView::OnLButtonDown(nFlags, point);<BR>}<BR><BR>void CDdeView::OnMouseMove(UINT nFlags, CPoint point) <BR>{<BR> // TODO: Add your message handler code here and/or call default<BR> if (nFlags == MK_CONTROL)<BR> TRACE("MK_CONTROL\n");<BR> else if (nFlags == MK_SHIFT)<BR> TRACE("MK_SHIFT\n");<BR> else <BR> TRACE("no \n");<BR> <BR> CView::OnMouseMove(nFlags, point);<BR>}<BR><BR>mc_77@sina.com<BR>qq:56700320
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:元元 回复日期:2003-12-09 13:24:53
<br>内容:OnLButtonDown()中nFlags的值是MK_LBUTTON和MK_CONTROL或MK_SHIFT的组合,因为只要按下,就肯定会有MK_LBUTTON的值如果此时同是按下Ctrl的话,则nFlags的值就是MK_LBUTTON和MK_CONTROL的组合了;而OnMouseMove也可以是它们的组合,不过你只移动同时按住Ctrl键的时候,nFlags的值只是MK_CONTROL,这也就是你在程序中所看到的效果,如果你把OnLButtonDown()改成如下<BR>if (nFlags & MK_CONTROL)<BR> TRACE("MK_CONTROL\n");<BR> else if (nFlags & MK_SHIFT)<BR> TRACE("MK_SHIFT\n");<BR> else <BR> TRACE("no \n");<BR>则可以检测到SHIFT键按下的信息
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:元元 回复日期:2003-12-09 13:30:18
<br>内容:兄弟记得给我加分啦
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -