【发布时间】:2011-02-10 20:38:30
【问题描述】:
我很好奇可以不使用 WndProc 来创建窗口。
所以我想注册窗口类,并将 lpfnWndProc 字段设置为 NULL; 并以我自己的方式使用 msg(由 TranslateMessage(&msg) 给出)。
这样做有什么缺点吗?
在此先感谢,并为我的语法感到抱歉。
编辑#1: 好的,我有一个窗口,但我在某个地方错了。
MSG msg;
while(PeekMessage(&msg,NULL,NULL,NULL,PM_REMOVE)) {
if (msg.message == WM_QUIT) return false;
else {
TranslateMessage(&msg);
switch (msg.message) {
case WM_CREATE:
createContext();
break;
default:
DispatchMessage(&msg);
break;
}
}
}
return true;
createContext 没有被调用。 为什么?我哪里错了? 是的,也许 WM_CREATE 消息要发送到 WndProc(现在是 DefWindowProc),但是有什么方法可以从 WndProc 外部获取它?
【问题讨论】:
-
对于窗户来说,这是一种非常不寻常的事情。你为什么要这样做?可能有更合适的不同方法。