Windows 为什么CreateWindowEx不能按预期工作?
我在以下地点学习了本教程: 我对教程中的每件事都有一个合理的理解,并且我的测试程序工作正常。我尝试使用DLL导入时的hInstance和winamp提供给我的插件的父hwnd为winamp创建插件 它到达消息循环,但什么都看不见Windows 为什么CreateWindowEx不能按预期工作?,windows,plugins,createwindow,winamp,createwindowex,Windows,Plugins,Createwindow,Winamp,Createwindowex,我在以下地点学习了本教程: 我对教程中的每件事都有一个合理的理解,并且我的测试程序工作正常。我尝试使用DLL导入时的hInstance和winamp提供给我的插件的父hwnd为winamp创建插件 它到达消息循环,但什么都看不见 const char windowClassName[] = "LastScrobblerConfig"; WNDCLASSEX wc; HWND hwnd; MSG msg; // the window class wc.cbSize
const char windowClassName[] = "LastScrobblerConfig";
WNDCLASSEX wc;
HWND hwnd;
MSG msg;
// the window class
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WinEvents;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = plugin.hDllInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = windowClassName;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if (!RegisterClassEx(&wc))
{
MessageBox(NULL, "Window Registration Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
hwnd = CreateWindowEx (
WS_EX_WINDOWEDGE,
windowClassName,
plugin.description,
WS_TILEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
400,
400,
plugin.hwndParent,
NULL,
plugin.hDllInstance,
NULL
);
if (hwnd == NULL)
{
MessageBox(NULL, "Window Create Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
ShowWindow(hwnd, 1);
UpdateWindow(hwnd);
while(GetMessage(&msg, NULL, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
什么是WinEvents和插件?看起来WinEvents就是他所谓的窗口过程。你知道,它不必叫WndProc传递父窗口是导致问题的原因。我发现ShowWindow必须有如上所述的1才能正常工作。不要将幻数传递给ShowWindow。当表示为:ShowWindowhwnd、SW_SHOWNORMAL时,调用更清晰;什么是WinEvents和插件?看起来WinEvents就是他所谓的窗口过程。你知道,它不必叫WndProc传递父窗口是导致问题的原因。我发现ShowWindow必须有如上所述的1才能正常工作。不要将幻数传递给ShowWindow。当表示为:ShowWindowhwnd、SW_SHOWNORMAL时,调用更清晰;