点击Visual c++时打开对话框按钮

Visual C++ open Dialog Box when button clicked

本文关键字:打开对话框 按钮 c++ Visual 点击      更新时间:2023-10-16

所以我是c++编程新手,也是Visual Studio 2010的新手。基本上我有一个前红外热像仪;我需要编辑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类),那么你可以使用你已经创建的settings-dialog资源创建一个新的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类作为一个起点,从框中提取信息,一旦OK被点击:https://msdn.microsoft.com/en-us/library/619z63f5.aspx