C++ Windows脚本主机在关闭创建的窗口时终止
我为CreateWindowEx API函数创建了一个包装函数,并从VBScript中使用它。这是VBScript: 调光结果,wcx10'变型阵列10-WNDCLASSEX wcx5=WINAPI.WINAPI_LoadIconNULL,32516'hIcon IDI_信息 wcx6=WINAPI.WINAPI_LoadCursorNULL,32649'hCursor IDC_HAND wcx7=3'hbrBackground COLOR\u ACTIVECAPTION+1 wcx9=虚拟_类的lpszClassName wcx10=WINAPI.WINAPI_LoadIconNULL,32516’hIconSm与hIcon相同 '将变量数组传递给包装函数 结果=WINAPI.WINAPI\u注册表类xwcx 尺寸样式:样式=CLng&H00CF0000'WS\u重叠窗口 尺寸ExStyle:ExStyle=CLng&H0000100'WS_EX_WINDOWEDGE 如果CLngResult>0,则 '创建窗口 结果=WINAPI.WINAPI_CreateWindowExExStyle,DUMMY_类,Hello World!,样式,875,64000,300,空,空,空,空 WINAPI.WINAPI_显示窗口结果,5 Echo CreateWindowEx返回0x+CStrUCaseHexResult 如果结束 该窗口按预期创建并显示良好。但我想知道为什么当我单击创建的窗口的关闭按钮时Windows脚本主机终止 我用AutoIt测试了CreateWindowEx,当我关闭创建的窗口时,AutoIt3.exe没有终止,它继续运行脚本,不像Windows脚本主机 即使关闭创建的窗口,我也喜欢保持Windows脚本主机运行C++ Windows脚本主机在关闭创建的窗口时终止,c++,vbscript,wsh,createwindowex,C++,Vbscript,Wsh,Createwindowex,我为CreateWindowEx API函数创建了一个包装函数,并从VBScript中使用它。这是VBScript: 调光结果,wcx10'变型阵列10-WNDCLASSEX wcx5=WINAPI.WINAPI_LoadIconNULL,32516'hIcon IDI_信息 wcx6=WINAPI.WINAPI_LoadCursorNULL,32649'hCursor IDC_HAND wcx7=3'hbrBackground COLOR\u ACTIVECAPTION+1 wcx9=虚拟_类
我想知道Windows脚本主机出现这种情况的原因是什么。我通过如下更改窗口过程修复了此问题:
LRESULT CALLBACK WindowProc(_In_ HWND hwnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam) {
switch (uMsg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
/*FOLLOWING LINES WERE REMOVED:
case WM_DESTROY:
PostQuitMessage(0);
break;*/
default: return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}
出现这个问题是因为我忘记了Windows脚本主机不是标准的WinForms应用程序,所以当窗口被破坏时,它不需要关闭