我有一个主窗口程序,在按下O.K后调用子窗口,如下面的代码片段所示。我的问题是如何在这个子窗口中插入一个按钮和编辑字段将其恢复?我了解主窗口这是通过WinProc完成的。通过子窗口有更好的方法吗?
case IDOK:
HINSTANCE hinst;
HWND hWindow;
hinst = (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE);
hWindow = CreateWindow
(
g_szClassName,
TEXT("Configure Maze Properties"),
WS_OVERLAPPEDWINDOW,
200, 100, 300, 228,
hwnd,
0,
hinst,
0
);
答案 0 :(得分:1)
您有两种主要可能性:
从您所在的位置开始填充新窗口。只需将hWindow
作为CreateWindowEx()
中的父窗口而不是当前hwnd
。
开始在自己的winproc消息处理程序中填充新窗口,对WM_CREATE
进行响应,如this tutorial中所述。但是,这需要您已将g_szClassName
注册为子窗口的单独类,并具有自己的回调函数。
顺便说一句,本教程将向您展示如何创建按钮和文本框。
第二种替代方案需要稍微多一些工作,但是使子窗口更加独立,从而使代码更清晰,可重用性更高。