c++ - 在 CDialog 中应用按钮

标签 c++ visual-c++ mfc dialog modal-dialog

我有一个对话框,在按下“确定”按钮后,程序会使用对话框中的数据并绘制图表。我需要绘制绘图而不必像 IDOK 那样关闭对话框,因此需要应用按钮。 绘制对话框的代码是,

INT_PTR val = dlg->DoModal();
if (    val == IDOK) {
  //draw plot
}

onOK和onApply的代码

void DLg::OnOK() {

    GetDataGrid();
    CDialog::OnOK();
}

void DLg::OnBnClickedApply()
{
    GetDataGrid();
}

如何在不关闭对话框的情况下让 DoModal() 在 onApply() 上返回一个值?

如有任何帮助,我们将不胜感激。

最佳答案

模态对话框不能返回一个值并保持对话框打开。您可以使对话框成为非模态对话框,或者将来自 OnBnClickedApply 函数的消息发布到主窗口,使其绘制绘图。

关于c++ - 在 CDialog 中应用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26374728/

相关文章:

c++ - 使用调用约定 fastcall 的任何实际用例?

c++ - 如何将std::filesystem::file_time_type转换为time_t?

c++ - 单个 MFC/Win32 控件似乎让我的整个桌面重绘

c++ - 处理多个文件时,我必须在 COleDropTarget::OnDrop() 中返回哪个值?

c++ - Visual Studio 不能包含头文件。

visual-c++ - 如何为dll设置宿主应用程序

c++ - 如何检查 _bstr_t 是否包含(类似于 str.find)字符串

c++ - c++编译器如何在内存中实现虚拟继承?

C++ 运行可执行文件并将输出通过管道传输到文件

c++ - 包含自己的 header 时标准库中的错误