我正在从父对话框类创建无模式子对话框,我希望与我将要创建的所有子对话框类共享其父窗口的类数据。我该怎么办呢?
答案 0 :(得分:0)
这样做的一种方法是使用SetWindowLongPtr():
SetWindowLongPtr(hwndParent, GWLP_USERDATA, (LONG_PTR)&parent_class);
这会将父hwnd上的USERDATA字段设置为父类的地址。然后在你的WM_INITDIALOG
处理程序中,调用父HWND上的GetWindowLongPtr()
并将其强制转换回正确的指针类型。
更好这样做的方法是使用CreateDialogParam(),在WM_INITDIALOG
处理程序中,您将获得在dwInitParam
字段中传递的值,这将是指向父类的指针。