程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> VC++ MFC子對話框建立與關閉,vcmfc

VC++ MFC子對話框建立與關閉,vcmfc

編輯:C++入門知識

VC++ MFC子對話框建立與關閉,vcmfc


主窗體

void CMoshiwindowDlg::OnButton1() 
{
    // TODO: Add your control notification handler code here
    CDialogproty dlg; 
    dlg.DoModal(); 
    m_text.SetWindowText(dlg.text);
}

子窗體:

1.頭文件聲明變量

2.

void CDialogproty::OnButton1() 
{
    // TODO: Add your control notification handler code here
    m_text.GetWindowText(text);
    CDialog::EndDialog(0); //結束對話框 
}

1.顯示模式對話框:

CDialogDemo dlg;
dlg.DoModal();

2.顯示非模式對話框:

CDialogDemo *dlg=new CDialogDemo(this); 
dlg->Create(IDD_GENERAL_CONTROL); 
dlg->ShowWindow(SW_SHOW);

二、關閉對話框:

1.CDialog::OnOK();   //確定按鈕按下         CDialog::OnCancel(); //取消按鈕被按下

2.CDialog::DestoryWindow();  

3.CDialog::EndDialog(0);  

注:CDialog::CloseWindow();     僅僅是最小化對話框
PostMessage(WM_CLOSE)

 

 

相關函數詳解:

CloseWindow 

    函數功能:該函數最小化指定的窗口,但並不銷毀該窗口。
  函數原型:BOOL CloseWindow(HWND hWnd);
  參數:
  hWnd:將要最小化的窗口的句柄。
  返回值:如果函數成功,返回值為非零;如果函數失敗,返回值為零。若想獲得更多錯誤信息,請調用GetLastError函數。
  備注:窗口尺寸被最小化成一個圖標,並移動到屏幕的圖標區域。系統顯示窗口的圖標而不顯示窗口,並在圖標下顯示窗口標題。應用程序必須使用
         DestroyWindow函數銷毀窗口。

DestroyWindow  

函數功能:銷毀指定的窗口。這個函數通過發送WM_DESTROY 消息和 WM_NCDESTROY 消息使窗口無效並移除其鍵盤焦點。這個函數還銷毀窗口的菜單,清空線程的消息隊列,銷毀與窗口過程相關的定時器,解除窗口對剪貼板的擁有權,打斷剪貼板器的查看鏈。
  函數原型:BOOL DestroyWindow( HWND hWnd // handle to window to destroy);
  hWnd :將被銷毀的窗口的句柄。
  返回值:如果函數成功,返回值為非零:如果函數失敗,返回值為零。若想獲得更多錯誤信息,請調用GetLastError函數。
  備注:一個線程不能使用本函數銷毀別的線程創建的窗口。如果這個窗口是一個不具有WS_EX_NOPARENTNOTIFY 樣式的子窗口,則銷毀窗口時將發
    WM_PARENTNOTIFY 消息給其父窗口。
  Windows CE: 本函數將不發送 WM_NCDESTROY 消息.

EndDialog  

函數功能:該函數清除一個模態對話框,並使系統中止對對話框的任何處理。
  函數原型:BOOL EndDialog(HWND hDlg,int nResult);
  參數:
  hDlg:表示要被清除的對話框窗口。
  NResult:指定從創建對話框函數返回到應用程序的值。
  返回值:如果函數調用成功,則返回值為非零值;如果函數調用失敗則返回值為零。若想獲得錯誤信息請調用GetLastError函數。
   備注:由DialogBox,DialogBoxParam、DialogBoxlndirect和DialogBoxlndirectParam函數 創建的對話框一定要用EndDialog函數來清除。應用程序從對話框應用程序內部調用EndDialog函數,該函數不能為其他目的而供使用。對話框應 用程序可以在任何時間調用EndDialog函數;甚至在WM_INITDIALOG消息處理過程中。如果應用程序在WM_INTDIALOG消息處理過 程中調用該函數,則對話框在顯示和輸入焦點被設置之前對話框被清除。EndDialog函數並不立即清除對話框。而是設置一個標志,並且允許對話框應用程 序把控制權返回系統。系統在試圖從應用程序隊列檢索下一個消息之前檢測標志。如果已經設置了標志則系統中止消息循環,清除對話框,且用nResUlt中的 值作為從創建對話框的函數中返回的值。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved