在Dialog Message Proc中获取app对象指针

时间:2011-10-04 20:11:15

标签: c++ winapi pointers

我们可以使用 this 作为CreateWindow的最后一个参数,并在WndProc中获取指向app对象的指针,如下所示:

if(message == WM_CREATE)
{
    CREATESTRUCT* cs = (CREATESTRUCT*)lParam;
    pApp = (DemoApp*)cs->lpCreateParams;
    return 0;
}

在Dialog Message Proc中访问此指针的最佳方法是什么?解决方案是制作全局指针吗?

1 个答案:

答案 0 :(得分:2)

您可以使用WM_INITDIALOG获得其他初始化数据,请参阅WM_INITDIALOG message

  

lParam的

     

其他初始化数据。该数据被传递给系统   作为CreateDialogIndirectParam调用中的lParam参数,   CreateDialogParamDialogBoxIndirectParamDialogBoxParam功能   用于创建对话框。对于属性表,此参数为   指向用于创建页面的PROPSHEETPAGE结构的指针。这个   如果使用任何其他对话框创建函数,则参数为零。

也就是说,您可以将lParam作为参数传递给CreateDialogParam,对话框proc将通过WM_INITDIALOG消息接收它。