无模式儿童对话

时间:2010-07-18 23:48:50

标签: winapi class dialog

我正在从父对话框类创建无模式子对话框,我希望与我将要创建的所有子对话框类共享其父窗口的类数据。我该怎么办呢?

1 个答案:

答案 0 :(得分:0)

这样做的一种方法是使用SetWindowLongPtr()

SetWindowLongPtr(hwndParent, GWLP_USERDATA, (LONG_PTR)&parent_class);

这会将父hwnd上的USERDATA字段设置为父类的地址。然后在你的WM_INITDIALOG处理程序中,调用父HWND上的GetWindowLongPtr()并将其强制转换回正确的指针类型。

更好这样做的方法是使用CreateDialogParam(),在WM_INITDIALOG处理程序中,您将获得在dwInitParam字段中传递的值,这将是指向父类的指针。