簡體   English   中英

單擊按鈕時,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

我不確定要添加哪些其他代碼,但我是全新的,因此無論多小,您都可以提供任何幫助/建議,我們將不勝感激。

如果您使用的是 MFC 框架(CDialog 類),那么您可以使用您創建的設置對話框資源創建一個新的 CDialog 對象。

CDialog::DoModal()函數就是你想要的,如果你想要一個簡單的彈出框來吸引你的注意力,直到它被 OK 或 Cancel 關閉。

在您的源文件中:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM