如何写测试程序。
解决方案 »
- 版主,帮我转达一个suggestion给CSDN好吗,谢谢
- Dialog中某一文本框的值,如何在类外更新,而不出现"Debug Assertion Failed".
- 用什么工具察看 DLL文件中有哪些资源(比如ICON),然后如何用程序提取?
- 如何设置GroupBox Control属性?
- 请问‘巨集’是什么东西?
- 如何在CDialog中获得文档pDoc???
- 谁在winme下安过vs.net,来帮帮忙。
- @@@@@@ 谁用过 mp32scr? @@@@@
- WIN32中在WM_KEYDOWN中怎么判断键盘a与shift+a(A)?
- 我该怎么办!!请真正的高手进来!!
- 我的clw文件坏了,工程每次打开提示
- void G_fsort(int& number);
m_iNumDown = 0;
m_iNumUp = 0;//增加下面的函数和代码,调试就可以了;
BOOL CYourDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message == WM_LBUTTONUP)
m_iNumDown++;
if(pMsg->message == WM_LBUTTONDOWN)
m_iNumUp++;
if(pMsg->message == WM_KEYDOWN)
int i = 0;//此语句无用,只为了在此设置断点,你在对话框上双击鼠标 //左键后,按下任意键,就可以看到m_iNumDown、m_iNumUp了
return CDialog::PreTranslateMessage(pMsg);
}
Only windows that have the CS_DBLCLKS style can receive WM_LBUTTONDBLCLK messages, which the system generates whenever the user
presses, releases, and again presses
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
the left mouse button within the system's double-click time limit.
LButtonUp
DbClick //here
LButtonUp
拦截一下消息不就知道了。如果你太关注次数的话。VC里拦截消息很简单的事情啊!
如果在视窗风格中未包含CS_DBLCLKS,而使用者在短时间内双击了滑鼠按键,那么视窗讯息处理程式会接收到下面这些讯息:WM_LBUTTONDOWNWM_LBUTTONUPWM_LBUTTONDOWNWM_LBUTTONUP视窗讯息处理程式可能在这些键的讯息之前还收到了其他讯息。如果您想实作自己的双击处理,那么您可以使用Windows函式GetMessageTime取得WM_LBUTTONDOWN讯息之间的相对时间。第八章将更详细地讨论这个函式。如果您的视窗类别风格中包含了CS_DBLCLKS,那么双击时视窗讯息处理程式将收到如下讯息:WM_LBUTTONDOWNWM_LBUTTONUPWM_LBUTTONDBLCLKWM_LBUTTONUPWM_LBUTTONDBLCLK讯息简单地替换了第二个WM_LBUTTONDOWN讯息。
WM_LBUTTONUP
WM_LBUTTONDBLCLK
WM_LBUTTONUP If the window is not registered to be notified of double clicks, however, the same two button clicks produce the following sequence of messages:WM_LBUTTONDOWN
WM_LBUTTONUP
WM_LBUTTONDOWN
WM_LBUTTONUP
应该是两次up,一次down。不过是从MSDN中看到的,在spy中我还没有试出来,等忙完这个项目去学学spy的用法,到时再用它来验证。
以下是从MSDN有关CWnd::OnLButtonDblClk的说明中摘录的。
The framework calls this member function when the user double-clicks the left mouse button.
Only windows that have the CS_DBLCLKSWNDCLASS style will receive OnLButtonDblClk calls. This is the default for Microsoft Foundation Class windows. Windows calls OnLButtonDblClk when the user presses, releases, and then presses the left mouse button again within the system’s double-click time limit. Double-clicking the
~~~~~~~~~~~~~~~~~~~
left mouse button actually generates four events: WM_LBUTTONDOWN, WM_LBUTTONUP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
messages, the WM_LBUTTONDBLCLK call, and another WM_LBUTTONUP message when the
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
button is released.
~~~~~~~~~~~~~~~~~~~至于 Earthdog(Earthdog) 的看法,可能是因为他看的太快了,事实上那句话是描述在什么情况下触发双击事件,并没有涉及到包括哪些消息的问题。
如果截至到双击事件为止,那么应该是 down,up各一次,下一个消息就是 dblclick了.
如果把整个双击事件算在内,那应该是 down,up,dlbclick,up了
如果从物理顺序来讲,当然是down,up,down,up了.我这么想的.