单击按钮时 Visual C++ 打开对话框
Visual C++ open Dialog Box when button clicked
所以我是 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
我不确定要添加什么其他代码,但我是全新的,所以任何 help/advice 你可以提供,无论多小,我们将不胜感激。
如果您使用的是 MFC 框架(CDialog class),那么您可以使用您创建的设置对话框资源创建一个新的 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
}
}
这里是一个 link,用于使用 CDialog class 作为起点,在单击“确定”后从框中提取信息:
https://msdn.microsoft.com/en-us/library/619z63f5.aspx
所以我是 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
我不确定要添加什么其他代码,但我是全新的,所以任何 help/advice 你可以提供,无论多小,我们将不胜感激。
如果您使用的是 MFC 框架(CDialog class),那么您可以使用您创建的设置对话框资源创建一个新的 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
}
}
这里是一个 link,用于使用 CDialog class 作为起点,在单击“确定”后从框中提取信息: https://msdn.microsoft.com/en-us/library/619z63f5.aspx