gpt4 book ai didi

winapi - 如何在 MFC 中捕获 WM_SHOWWINDOW 命令

转载 作者:行者123 更新时间:2023-12-04 06:15:43 32 4
gpt4 key购买 nike

每当显示对话框时,我都会尝试执行某些操作。就像我们有无模态对话框一样,我们在单击某些按钮时隐藏/显示对话框。但是我们需要在显示对话框时执行一些操作。我已经添加了 WM_SHOWWINDOW 消息,但控制不在 OnShowWindow(BOOL bShow, UINT nStatus) 函数内部。

我们使用 ShowWindow(SW_HIDE) 和 ShowWindow(SW_SHOW) 函数来隐藏/显示对话框
请建议一些如何实现的指针。

提前致谢

穆克什

最佳答案

我使用记事本和 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。

关于winapi - 如何在 MFC 中捕获 WM_SHOWWINDOW 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7281511/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com