【问题标题】:Initializing dialog with class/object instance data? [duplicate]使用类/对象实例数据初始化对话框? [复制]
【发布时间】:2019-04-04 19:41:18
【问题描述】:

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

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

类有数据:

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));
      }
}

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

【问题讨论】:

    标签: c++ winapi


    【解决方案1】:

    DialogBoxParam() 最后一个参数作为 lParam 传递给WM_INITDIALOG。 你可以在那里传递一个指向你的类的指针。

    【讨论】:

    • 然后通过DWLP_USER将其与对话框窗口相关联
    • 是的,通常我会在对话框中创建另一个结构,其中包含特定于对话框的数据,包括该指针。
    猜你喜欢
    • 2018-08-14
    • 2016-06-13
    • 2013-02-11
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 2012-11-05
    • 2013-06-27
    • 1970-01-01
    相关资源
    最近更新 更多