1

因此,我找到了一些多 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);
        } 

没有使用此代码创建按钮。

至于我的调试,我可以通过将 WM_CREATE 下的 hWindow2 更改为 hWindow1 在第一个窗口上创建一个按钮。但这不是我想要的。但是,我可以通过将其保留为 hWindow2 在第二个窗口上创建一个按钮,但将消息事件更改为 WM_PAINT ...

我不明白发生了什么,我宁愿不解决问题。

任何帮助将非常感激。谢谢。

4

1 回答 1

0

这不是在 上创建按钮的明显方法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. 也减少了对全局变量的需求。

于 2013-05-07T06:03:03.137 回答