每当显示对话框时,我都会尝试执行某些操作。它就像我们有无模式对话框,我们正在点击/显示对话框点击按钮。但是我们需要在显示对话框时执行某些操作。我添加了WM_SHOWWINDOW消息,但控件不在OnShowWindow(BOOL bShow,UINT nStatus)函数中。
我们正在使用ShowWindow(SW_HIDE)和ShowWindow(SW_SHOW)函数来隐藏/显示对话框 请建议一些指针如何实现。
提前致谢
穆克什
答案 0 :(得分:3)
我使用记事本和Spy ++使用以下代码对其进行了测试:
#include <Windows.h>
int CALLBACK WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) {
HWND hwnd = FindWindow(NULL, L"Untitled - Notepad");
ShowWindow( hwnd, SW_HIDE );
Sleep(4000);
ShowWindow( hwnd, SW_SHOW );
return ERROR_SUCCESS;
}
为了隐藏窗口,你应该得到WM_SHOWWINDOW,WM_WINDOWPOSCHANGING,然后是WM_WINDOWPOSCHANGED。
为了显示窗口,目标没有收到WM_SHOWWINDOW,但仍然有WM_WINDOWPOSCHANGING和WM_WINDOWPOSCHANGED。
您可以处理WM_WINDOWPOSCHANGED并检查WINDOWPOS中SWP_HIDEWINDOW / SWP_SHOWWINDOW的标志。