使用类/对象实例数据初始化对话框吗?

时间:2019-04-04 19:41:18

标签: c++ winapi

我有一个对话框,其中的一些静态文本控件应在运行时进行更新,数据(即文本)位于类对象的实例中,并且发生动态变化。

该类具有启动对话框的按钮或菜单,但是如果对话框过程是独立于类的单独函数,那么如何将数据传递给对话框:

该类具有数据:

class A
{
    public:
        int data = 1; // pass this data to dialog
}

INT_PTR CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
      switch(uMsg)
      {
           case WM_INITDIALOG:
                SetWindowText(GetDlgItem(hDlg, IDC_STATIC), std::to_string(input class A data here));
      }
}

是使数据成为静态成员的唯一方法,还是有一些更好的标准程序将数据从对象实例传递到对话框?

1 个答案:

答案 0 :(得分:1)

DialogBoxParam()的最后一个参数作为lParam传递给WM_INITDIALOG。 您可以在此处传递指向您的班级的指针。