Поэтому я нашел несколько уроков / уроков по multi-winodw, но ни один из них, похоже, не затрагивает мою проблему.
Я пытаюсь создать кнопку во втором окне, а не в другом.
Вот мой код (исключая ненужные вещи)
HWND hWindow1;
HWND hWindow2;
HINSTANCE hInstGlobal;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
...WindowClass / RegisterClass...
//HWND hWindow1;
hWindow1 = CreateWindow("WinProg", "Window_1", WS_OVERLAPPEDWINDOW,
0, 0, 800, 600, NULL, NULL, hInstance, NULL);
//HWND hWindow2;
hWindow2 = CreateWindow("WinProg", "Window_2", WS_OVERLAPPEDWINDOW,
150, 50, 800, 600, NULL, NULL, hInstance, NULL);
...show/update windows...
...MessageLoop...
}
LRESULT WINAPI WinProc(HWND hWnd, UINT uiMessage, WPARAM wParam, LPARAM lParam)
{
switch(uiMessage)
{
case WM_CREATE:
{
HWND hButton;
hButton = CreateWindow("BUTTON", "PUSH ME NOW",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
50, 200, 150, 20,
hWindow2, (HMENU) 1,
hInstGlobal, NULL);
}
Кнопки с использованием этого кода не создаются.
Что касается моей отладки, я могу создать кнопку в первом окне, изменив hWindow2 под WM_CREATE на hWindow1. Но это не то, что я хочу. Однако я могу создать кнопку во втором окне, оставив ее как hWindow2, но изменив событие сообщения на WM_PAINT …
Я не понимаю, что происходит, и я предпочел бы не соглашаться на работу вокруг.
Любая помощь приветствуется. Благодарю.
Разве это не очевидный способ создать кнопку на hWindow2
?
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
...WindowClass / RegisterClass...
//HWND hWindow1;
hWindow1 = CreateWindow("WinProg", "Window_1", WS_OVERLAPPEDWINDOW,
0, 0, 800, 600, NULL, NULL, hInstance, NULL);
//HWND hWindow2;
hWindow2 = CreateWindow("WinProg", "Window_2", WS_OVERLAPPEDWINDOW,
150, 50, 800, 600, NULL, NULL, hInstance, NULL);
HWND hButton = CreateWindow("BUTTON", "PUSH ME NOW",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
50, 200, 150, 20,
hWindow2, (HMENU) 1,
hInstGlobal, NULL);
...show/update windows...
...MessageLoop...
}
LRESULT WINAPI WinProc(HWND hWnd, UINT uiMessage, WPARAM wParam, LPARAM lParam)
{
switch(uiMessage)
{
...
}
}
На самом деле не уверен, почему вы пытаетесь создать кнопку в коде, который используется обоими hWindow1
а также hWindow2
, Уменьшает потребность в глобальных переменных тоже.
Других решений пока нет …