c++ - 单击按钮时 Visual C++ 打开对话框

标签 c++ visual-studio-2010 mfc dialog

所以我是 C++ 编程新手,也是使用 Visual Studio 2010 的新手。基本上我有一个 FLIR 热像仪;我需要编辑 eBUS SDK 中提供的 GUI 来满足我的需求。

我想要做的是当我单击设置按钮时打开一个新对话框。我只是不确定在按钮处理程序中使用什么代码来打开对话框。我在按钮处理程序中放入了不同的代码来测试它,并且设置按钮工作正常。

这是代码需要进入的按钮处理程序。

void PvSimpleUISampleDlg::OnBnClickedSettings()
{

}

这是我想要将按钮连接到的资源文件中的对话框。它称为IDD_SETTINGS。实际的按钮名为 IDB_SETTINGS,不确定这是否相关。

IDD_SETTINGS DIALOGEX 0, 0, 506, 300
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Settings"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,449,279,50,14

END

我不确定要添加哪些其他代码,但我是全新的,因此您可以提供的任何帮助/建议,无论多小,我们都将不胜感激。

最佳答案

如果您使用 MFC 框架(CDialog 类),则可以使用您创建的设置对话框资源创建新的 CDialog 对象。

如果您想要一个简单的弹出框来吸引您的注意力,直到通过“确定”或“取消”将其关闭,那么 CDialog::DoModal() 函数就是您想要的。

在您的源文件中:

void PvSimpleUISampleDlg::OnBnClickedSettings()
{
    CDialog mySettings( IDD_SETTINGS );
    INT_PTR returnCode = -1;
    returnCode = mySettings.DoModal();

    switch( returnCode ) {
    case IDOK :
      //gather your input fields here 

      break;
    case IDCANCEL :
      //do something
      break;

    case -1:
    default:
       //error creating box
    }
}

以下是使用 CDialog 类作为起点的链接,单击“确定”后从框中提取信息: https://msdn.microsoft.com/en-us/library/619z63f5.aspx

关于c++ - 单击按钮时 Visual C++ 打开对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31576310/

相关文章:

c++ - 如何消除mfc中的链接错误?

c++ - 在 C++ 中的窗口上接收挂起的拖放操作的通知

c++ - 对 OpenCV 图像表示感到困惑

c++ - Qml程序不运行

c# - C# 中的日志文件到 excel 表

c++ - 在 Visual Studio 中创建 hpp 文件

c++ - 将 MFC 的 CString 转换为 ASCII 和 UNICODE 的 int

c++ - 家庭作业 : Read a file into a pointer-to-pointer char (char**)

c++ - std::shared_ptr 为空但不为 null

c# - 将 BitmapImage 转换为 System.Windows.Media.Brush