我对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")))
答案 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
结构进行零初始化,以确保您不会对未明确初始化的任何成员造成垃圾。