⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_64170.htm

📁 vc
💻 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>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: Add your message handler code here and/or call default<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (nFlags == MK_CONTROL)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE(&#34;MK_CONTROL\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;else if (nFlags == MK_SHIFT)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE(&#34;MK_SHIFT\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;else <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE(&#34;no \n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CView::OnLButtonDown(nFlags, point);<BR>}<BR><BR>void CDdeView::OnMouseMove(UINT nFlags, CPoint point) <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: Add your message handler code here and/or call default<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (nFlags == MK_CONTROL)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE(&#34;MK_CONTROL\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;else if (nFlags == MK_SHIFT)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE(&#34;MK_SHIFT\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;else <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE(&#34;no \n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;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 &amp; MK_CONTROL)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE(&#34;MK_CONTROL\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;else if (nFlags &amp; MK_SHIFT)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE(&#34;MK_SHIFT\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;else <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE(&#34;no \n&#34;);<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 + -