我的计划是无边框窗口,我想移动窗口时,用户拖动对话框我的任何部分。 一旦WM_SYSCOMMAND时,所有后续的鼠标事件都将丢失。
首先,我写了一个程序来捕捉鼠标事件,并与WTL所有工作的罚款。
BEGIN_MSG_MAP(CMainDlg)
MSG_WM_LBUTTONUP(OnMouseUp)
MSG_WM_LBUTTONDOWN(OnMouseDown)
....
LRESULT OnMouseDown ( UINT uKeys, CPoint pt ) {
print ("on mouse down");
return 0;
}
LRESULT OnMouseUp ( UINT uKeys, CPoint pt ) {
print ("on mouse up");
return 0;
}
然后我改变onmousedown事件上面,
LRESULT OnMouseDown ( UINT uKeys, CPoint pt ) {
print ("on mouse down");
this->SendMessageW(WM_SYSCOMMAND, SC_MOVE|0x0002);
return 0;
}
拖动工作和Windows随鼠标移动。 然而,OnMouseUp事件不再被解雇。
使用WM_NCHITTEST尝试过许多不同的方法,或ProcessMessage的setHandled至真/假都没有成功。
非常感激,如果任何人有任何建议:)