Windows编程,窗口无法打开,没有构建错误

时间:2017-06-06 04:14:40

标签: c++ windows

我对Windows编程没有多少经验,但无法明确看出此代码有什么问题,但窗口无法打开。虽然有时候,并非总是如此,它会在任务管理器中打开,所以我的猜测是它正在注册类并创建窗口,但问题在于ShowWindow()函数。但是,我并不积极。

根据我的理解,该计划的流程是: 使用已注册的类创建窗口。 窗口显示。 持续查找在Proc。

窗口中处理的消息

我觉得我已经完成了所有这些事情,所以我的理解是错误的,还是我的代码遗漏了什么?

感谢。

源代码:

A <- structure(c(1L, 1L, 1L, 1L), .Dim = c(2L, 2L), .Dimnames = list(
c("r1", "r2"), c("a", "b")))

B <- structure(c(10L, 10L, 10L, 10L), .Dim = c(2L, 2L), .Dimnames = list(
c("r2", "r3"), c("b", "c")))

1 个答案:

答案 0 :(得分:1)

您的窗口过程正在调用DefWindowProc但实际上没有返回结果,因此您有未定义的行为。返回值很重要,它可以控制操作系统处理窗口中连续消息的方式。例如,响应WM_CREATE消息返回正确的值非常重要。

将您的窗口过程更改为:

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    if (uMsg == WM_DESTROY)
    {
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hwnd, uMsg, wParam, lParam);
}

此外,正如Mark Ransom在评论部分中指出的那样,您应该对WNDCLASSEX结构进行零初始化,以确保您不会对未明确初始化的任何成员造成垃圾。