Итак, я нашел несколько учебников / уроков с несколькими окнами, но ни один из них, похоже, не затрагивает мою проблему.
Я пытаюсь создать кнопку во втором окне, а не в другом.
Вот мой код (за исключением ненужного)
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...
Я не понимаю, что происходит, и я бы предпочел не соглашаться на обходной путь.
Любая помощь приветствуется. Спасибо.
WinProc()
для обоих окон? в этом случае вам нужно будет создать кнопку наWM_CREATE
только тогда, когдаhWnd == hWindow2
- person Edward Clements   schedule 07.05.2013