按钮 左键 按下 弹起时候 响应 消息

来源:互联网 发布:网络研修社区 编辑:程序博客网 时间:2024/05/21 18:47

最近在做按钮 发现 按钮本身之后 单击双击事件

没有按下弹起事件,搜了一下说 可以重载 cbutton

或者使用 消息 

我选择使用消息

只要在代码中插入如下函数 即可":

<textarea cols="50" rows="15" name="code" class="cpp">BOOL AutoFocus::PreTranslateMessage(MSG* pMsg) {// TODO: Add your specialized code here and/or call the base classAutoFocus *mainDialog = (AutoFocus *)GetParent();static flag = TRUE;if (pMsg-&gt;message == WM_LBUTTONDOWN &amp;&amp;pMsg-&gt;hwnd == ((CButton*)this-&gt;GetDlgItem(IDC_ZoomIn))-&gt;m_hWnd){ GetDlgItem(IDC_ZoomIn)-&gt;SetFocus();pCflyUSB-&gt;ZMInOut(ZOOM_IN); return TRUE;}if (pMsg-&gt;message == WM_LBUTTONUP &amp;&amp;pMsg-&gt;hwnd == ((CButton*)this-&gt;GetDlgItem(IDC_ZoomIn))-&gt;m_hWnd){ // MessageBox(",,333,");pCflyUSB-&gt;ZMInOut(ZOOM_STOP);return TRUE;}if (pMsg-&gt;message == WM_LBUTTONDOWN &amp;&amp;pMsg-&gt;hwnd == ((CButton*)this-&gt;GetDlgItem(IDC_ZoomOut))-&gt;m_hWnd){ GetDlgItem(IDC_ZoomOut)-&gt;SetFocus();pCflyUSB-&gt;ZMInOut(ZOOM_OUT); return TRUE;}if (pMsg-&gt;message == WM_LBUTTONUP &amp;&amp;pMsg-&gt;hwnd == ((CButton*)this-&gt;GetDlgItem(IDC_ZoomOut))-&gt;m_hWnd){ pCflyUSB-&gt;ZMInOut(ZOOM_STOP); return TRUE;}return CDialog::PreTranslateMessage(pMsg);}</textarea>

 

如果对于同一个按钮只响应 buttondown或者buttonup setfocus写不写 都会有

按钮下下去的虚线 显示 按下的状态 但是 如果同一个ID button down 和up 都响应就会没有

虚线显示 就像一个 死按钮,这时候要加入 setfocus 获得焦点 显示 虚线 会好看很多

另外 对于按下时候 如果没有返回值 就会发现 无论点在对话框的如何地方 都会响应下边的函数

儿不仅仅是按钮处,所以要有返回值,

 

 

或者使用下边代码

<textarea cols="50" rows="15" name="code" class="cpp">BOOL AutoFocus::PreTranslateMessage(MSG* pMsg) {int buID;buID= GetWindowLong(pMsg-&gt;hwnd,GWL_ID);//&Oacute;&Eacute;&acute;&deg;&iquest;&Uacute;&frac34;&auml;&plusmn;&uacute;&raquo;&ntilde;&micro;&Atilde;ID&ordm;&Aring;&pound;&not;GetWindowLong&Icirc;&ordf;&raquo;&ntilde;&micro;&Atilde;&acute;&deg;&iquest;&Uacute;&micro;&Auml;ID&ordm;&Aring;&iexcl;&pound;if(pMsg-&gt;message==WM_LBUTTONDOWN) { if(buID==IDC_ZoomIn) //&deg;&acute;&Iuml;&Acirc; { pCflyUSB-&gt;ZMInOut(ZOOM_IN);return TRUE;//&Ocirc;&Uacute;&Otilde;&acirc;&Agrave;&iuml;&Igrave;&iacute;&frac14;&Oacute;&micro;&yen;&raquo;&divide;&deg;&acute;&Iuml;&Acirc;&Ecirc;&Acirc;&frac14;&thorn;&micro;&Auml;&sup3;&Igrave;&ETH;&ograve;} }if(pMsg-&gt;message==WM_LBUTTONUP) { if(buID==IDC_ZoomIn){ MessageBox(",,333,");pCflyUSB-&gt;ZMInOut(ZOOM_STOP );return TRUE;//&Ocirc;&Uacute;&Otilde;&acirc;&Agrave;&iuml;&Igrave;&iacute;&frac14;&Oacute;&micro;&yen;&raquo;&divide;&Euml;&Eacute;&iquest;&ordf;&Ecirc;&Acirc;&frac14;&thorn;&micro;&Auml;&sup3;&Igrave;&ETH;&ograve;} }return CDialog::PreTranslateMessage(pMsg);}</textarea>

 

这里开始没有加入setfocus 使得按钮是

原创粉丝点击