MFC窗口仅在释放鼠标后调整大小
我已创建具有以下属性的窗口:MFC窗口仅在释放鼠标后调整大小,mfc,resize,window-resize,Mfc,Resize,Window Resize,我已创建具有以下属性的窗口: DWORD WindowStyle; DWORD WindowExStyle; WindowStyle = WS_POPUP | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VISIBLE; WindowExStyle = WS_EX_TOPMOST | WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE; if ( !CreateEx( WindowExStyle, m_WndClassN
DWORD WindowStyle;
DWORD WindowExStyle;
WindowStyle = WS_POPUP | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VISIBLE;
WindowExStyle = WS_EX_TOPMOST | WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE;
if ( !CreateEx( WindowExStyle, m_WndClassName,
FUNCTION_PANEL_CAPTION, WindowStyle, 0, 0, 100, 100, NULL, NULL, 0 ) )
{
//handle failure
}
我使用以下代码发送SC_大小的消息:
::DefWindowProc(this->GetSafeHwnd(),WM_SYSCOMMAND, SC_SIZE + Val ,MAKELPARAM(point.x ,point.y));
其中值取决于顶部、左侧顶部、右侧底部
为了调整窗口的大小,我从任何角落或任何一侧抓取窗口并拖动它
我在线程中创建了窗口,其循环如下:
while( (bRet = GetMessage( &WndMsg, NULL, 0, 0 )) != 0)
{
if (bRet != -1)
{
TranslateMessage( &WndMsg );
if ( WM_CLOSE == WndMsg.message )
{
PostQuitMessage( 0 );
}
DispatchMessage ( &WndMsg );
}
}
我已经看到window使用spy++获得的消息。这是日志(很抱歉,我不知道如何将文件附加到SO发布日志上)
00030758 P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:2 YPO:526
00030758 S WM_SYSCOMMAND uCmdType:SC_大小xPos:0 yPos:0(使用助记符)
00030758 S WM_GETMINMAXINFO lpmmi:072FF064
00030758 R WM_GETMINMAXINFO lpmmi:072FF064
00030758 S WM_ENTERSIZEMOVE
00030758 R WM_ENTERSIZEMOVE
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:2 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:2 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:1 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:0 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-2 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-4 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-5 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-7 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-10 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-11 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-12 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-13 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-14 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-15 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-16 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-17 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-18 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-19 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-20 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-21 yPos:526
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-35 yPos:528
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-36 yPos:528
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_鼠标移动键:MK_LBUTTON xPos:-36 yPos:529
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 P WM_LBUTTONUP fwKeys:0000 xPos:-36 YPO:529
00030758 S WM_尺寸fwSide:WMSZ_左侧lprc:072FF07C
00030758 R WM_尺寸F已处理:错误
00030758 S WM_CAPTURECHANGED hwndNewCapture:00000000
00030758 R WM_CAPTURECHANGED
00030758 S WM_WindowPosChangeing lpwp:072FF070
00030758 R WM_窗口位置更改
00030758 S WM_NCCALCSIZE fCalcValidRects:真lpncsp:072FF044
00030758 R WM_NCCALCSIZE有效期:0000 lpncsp:072FF044
00030758 S WM_NCPAINT hrgn:00000001
00030758 R WM_NCPAINT
00030758 S WM_ERASEBKGND hdc:23010F40
00030758 R WM_ERASEBKGND fErased:正确
00030758 S WM_WINDOWPOSCHANGED lpwp:072FF070
00030758 S WM_移动XPO:1194 YPO:5
00030758 R WM_移动
00030758 S WM_大小fwSizeType:SIZE_已还原NWITH:102 nHeight:723
00030758 R WM_尺寸
00030758 R WM_窗口位置已更改
00030758 S WM_EXITSIZEMOVE
00030758 R WM_EXITSIZEMOVE
00030758 R WM_系统命令
00030758 S WM_NCHITTEST XPO:1196 YPO:534
00030758 R WM\U NCHITTEST NHITEST:HTCLIENT
00030758 S WM_设置光标hwnd:00030758 nHittest:HTCLIENT wMouseMsg:WM_鼠标移动
00030758 R WM_设置光标fHaltProcessing:真
00030758 P WM_鼠标移动键:0000 xPos:2 yPos:529
00030758 P WM_MOUSELEAVE
00030758 P WM_油漆hdc:00000000
我从日志中观察到,只有在释放鼠标后,我才能改变WM_WindowPos
奇怪的行为:我设置了断点并进行了调试,然后它有时在没有任何更改的情况下开始工作。用于更改窗口的大小。您可以更好地控制窗口的更新方式 setforegroundindow()为我工作。感谢所有回复。在调整窗口大小时,断点没有用处,请尝试使用
TRACE
<00027> 00030758 P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:2 yPos:526 <00028> 00030758 S WM_SYSCOMMAND uCmdType:SC_SIZE xPos:0 yPos:0 (used mnemonic) <00029> 00030758 S WM_GETMINMAXINFO lpmmi:072FF064 <00030> 00030758 R WM_GETMINMAXINFO lpmmi:072FF064 <00031> 00030758 S WM_ENTERSIZEMOVE <00032> 00030758 R WM_ENTERSIZEMOVE <00033> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:2 yPos:526 <00034> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00035> 00030758 R WM_SIZING fProcessed:False <00036> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:2 yPos:526 <00037> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00038> 00030758 R WM_SIZING fProcessed:False <00039> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:1 yPos:526 <00040> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00041> 00030758 R WM_SIZING fProcessed:False <00042> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:0 yPos:526 <00043> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00044> 00030758 R WM_SIZING fProcessed:False <00045> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-2 yPos:526 <00046> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00047> 00030758 R WM_SIZING fProcessed:False <00048> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-4 yPos:526 <00049> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00050> 00030758 R WM_SIZING fProcessed:False <00051> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-5 yPos:526 <00052> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00053> 00030758 R WM_SIZING fProcessed:False <00054> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-7 yPos:526 <00055> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00056> 00030758 R WM_SIZING fProcessed:False <00057> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-10 yPos:526 <00058> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00059> 00030758 R WM_SIZING fProcessed:False <00060> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-11 yPos:526 <00061> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00062> 00030758 R WM_SIZING fProcessed:False <00063> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-12 yPos:526 <00064> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00065> 00030758 R WM_SIZING fProcessed:False <00066> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-13 yPos:526 <00067> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00068> 00030758 R WM_SIZING fProcessed:False <00069> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-14 yPos:526 <00070> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00071> 00030758 R WM_SIZING fProcessed:False <00072> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-15 yPos:526 <00073> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00074> 00030758 R WM_SIZING fProcessed:False <00075> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-16 yPos:526 <00076> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00077> 00030758 R WM_SIZING fProcessed:False <00078> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-17 yPos:526 <00079> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00080> 00030758 R WM_SIZING fProcessed:False <00081> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-18 yPos:526 <00082> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00083> 00030758 R WM_SIZING fProcessed:False <00084> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-19 yPos:526 <00085> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00086> 00030758 R WM_SIZING fProcessed:False <00087> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-20 yPos:526 <00088> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00089> 00030758 R WM_SIZING fProcessed:False <00090> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-21 yPos:526 <00091> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00092> 00030758 R WM_SIZING fProcessed:False <00133> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-35 yPos:528 <00134> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00135> 00030758 R WM_SIZING fProcessed:False <00136> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-36 yPos:528 <00137> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00138> 00030758 R WM_SIZING fProcessed:False <00139> 00030758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:-36 yPos:529 <00140> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00141> 00030758 R WM_SIZING fProcessed:False <00142> 00030758 P WM_LBUTTONUP fwKeys:0000 xPos:-36 yPos:529 <00143> 00030758 S WM_SIZING fwSide:WMSZ_LEFT lprc:072FF07C <00144> 00030758 R WM_SIZING fProcessed:False <00145> 00030758 S WM_CAPTURECHANGED hwndNewCapture:00000000 <00146> 00030758 R WM_CAPTURECHANGED <00147> 00030758 S WM_WINDOWPOSCHANGING lpwp:072FF070 <00148> 00030758 R WM_WINDOWPOSCHANGING <00149> 00030758 S WM_NCCALCSIZE fCalcValidRects:True lpncsp:072FF044 <00150> 00030758 R WM_NCCALCSIZE fuValidRect:0000 lpncsp:072FF044 <00151> 00030758 S WM_NCPAINT hrgn:00000001 <00152> 00030758 R WM_NCPAINT <00153> 00030758 S WM_ERASEBKGND hdc:23010F40 <00154> 00030758 R WM_ERASEBKGND fErased:True <00155> 00030758 S WM_WINDOWPOSCHANGED lpwp:072FF070 <00156> 00030758 S WM_MOVE xPos:1194 yPos:5 <00157> 00030758 R WM_MOVE <00158> 00030758 S WM_SIZE fwSizeType:SIZE_RESTORED nWidth:102 nHeight:723 <00159> 00030758 R WM_SIZE <00160> 00030758 R WM_WINDOWPOSCHANGED <00161> 00030758 S WM_EXITSIZEMOVE <00162> 00030758 R WM_EXITSIZEMOVE <00163> 00030758 R WM_SYSCOMMAND <00164> 00030758 S WM_NCHITTEST xPos:1196 yPos:534 <00165> 00030758 R WM_NCHITTEST nHittest:HTCLIENT <00166> 00030758 S WM_SETCURSOR hwnd:00030758 nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE <00167> 00030758 R WM_SETCURSOR fHaltProcessing:True <00168> 00030758 P WM_MOUSEMOVE fwKeys:0000 xPos:2 yPos:529 <00169> 00030758 P WM_MOUSELEAVE <00170> 00030758 P WM_PAINT hdc:00000000