有些时候在windows编程中,我们不需要显示窗口,也不想在任务栏中显示,但却需要用到消息循环,这时候我们就需要建立一个不显示窗口的Win32程序。
只需要将VS自动生成的框架中的:
HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);
改为
HWND hWnd = CreateWindowEx(WS_EX_TOOLWINDOW |
WS_EX_NOACTIVATE |
WS_EX_TRANSPARENT |
WS_EX_LAYERED |
WS_EX_TOPMOST,
szWindowClass,
szTitle,
WS_POPUP,
0, 0, 0, 0,
NULL,
NULL,
hInstance,
nullptr);
其他的代码不需要任何改变。
这样既没有了窗口,却可以注册消息循环,处理消息。