我有一个函数位于与 WinMain 不同的 cpp 文件中,调用时将创建一个窗口。但是,该新窗口的 windows 类已在 WinMain 中声明和注册。现在,当我在单独的函数中创建窗口时,我不得不重新声明 CreateWindowEx 函数的第二个和第三个变量:
_In_opt_ LPCTSTR lpClassName,
_In_opt_ LPCTSTR lpWindowName,
因为实际执行创建的函数的位置无权访问在 WinMain 中创建的那些变量。现在......我的疑问是,我的程序实际上是否使用了我在 WinMain 中注册的窗口类?据我所知,重新声明这些变量并创建远离 WinMain 函数的函数可能会导致编译器采用其他一些标准窗口类。那么,我的程序实际上是在使用我在 WinMain 中注册的窗口类吗?
编辑:提供更多代码
//+++++++++++++++++++++++++++++++++++++++cpp文件与win main:
INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
...//previous code made the main window of the program and so forth
const char g_szClassName2[] = "windowClass2";//name of the window class
WNDCLASSEX winClass2;
HWND invisHWnd;
winClass2.cbSize = sizeof(WNDCLASSEX);
winClass2.style = 0;
winClass2.lpfnWndProc = WndProcedure2;
winClass2.cbClsExtra = 0;
winClass2.cbWndExtra = 0;
winClass2.hInstance = hInstance;
winClass2.hIcon = LoadIcon(NULL, IDI_APPLICATION);
winClass2.hCursor = LoadCursor(NULL, IDC_ARROW);
winClass2.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
winClass2.lpszMenuName = NULL;
winClass2.lpszClassName = g_szClassName2;
winClass2.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
RegisterClassEx(&winClass2);
... //other code irrelevant to issue
}
//+++++++++++++++++++++++++++++++++++++++其他cpp文件:
void otherCppFile::creatingWindow()
{
const char g_szClassName2[] = "windowClass2";//name of the window class
const char WndName2[] = "winClass2";//name of the window class
HWND windowHandle = CreateWindowEx(0,
g_szClassName2,
WndName2,
WS_OVERLAPPEDWINDOW,
0,
0,
800,
500,
NULL,
NULL,
NULL,
NULL);
}
这最后一个函数是否使用在 WinMain 中注册的窗口类,即使它不在 WinMain 中并且在函数中重新声明了一些变量?