1. 程式人生 > >MFC對話方塊的建立和顯示

MFC對話方塊的建立和顯示

1.模態對話方塊和非模態對話方塊

模態對話方塊:當它彈出時,本應用程式其他視窗將不再接收使用者輸入,只有該對話方塊相應使用者輸入,在對它進行相應操作退出後,其他窗口才能繼續與使用者互動。

非模態對話方塊:它彈出後,本程式其他視窗仍然可以接收使用者相應。

2.模態視窗是如何彈出的

CDialog::DoModal()函式就是彈出對話方塊的一個關鍵函式,原型如下:

virtual INT_PTR DoModal();

具體程式碼如下:

CTipDlg tipDlg;  //自定義一個對話方塊類

nRes=tipDlg.DoModal();//彈出對話方塊

if(IDCANCEL==nRes)

{

return ;

}

返回值指定了傳遞給CDialog::EndDialog()的nResult引數值。如果函式不能建立對話方塊,則返回-1;如果出現其他錯誤,則返回IDABORT.

3.非模態對話方塊類和資源

實際上模態和非模態對話方塊在建立資源和生成對話方塊上是沒有什麼區別的

建立和顯示非模態對話方塊的步驟:

假設已經建立了對話方塊資源和CTipDlg類

1).父視窗的類中新增私有變數CTipDlg  *m_pTipDialog;

2).父視窗的建構函式中增加變數m_pTipDialog的初始化,即m_pTipDialog=NULL;任何變數在使用前都要初始化,避免因誤訪問重要記憶體地址

3).在需要彈出非模態對話方塊地方增加非模態對話方塊的建立和顯示,例如:

if(NULL==m_pTipDialog)

{

m_pTipDialog=new CTipDialog;

m_pTipDialog.Create(IDD_TIP_DIALOG,this);

}

m_pTipDialog->ShowWindow(SW_SHOW);

4).因非模態視窗是動態建立的,因此需要手動銷燬物件。即在父視窗的解構函式中加入刪除程式碼。如:

if(m_pTipDialog!=NULL)

{

delete m_pTipDialog;

}

相關推薦

VC非模態對話方塊建立銷燬

MFC應用程式中開啟模式對話方塊的函式呼叫順序 1.DoModal()             過載函式,過載DoModal()成員函式 2.PreSubclassWindow()   過載函式,允許首先子分類一個視窗 3.OnCreate()             訊息響應函式,響應WM_CREATE訊息

MFC對話方塊建立顯示

1.模態對話方塊和非模態對話方塊 模態對話方塊:當它彈出時,本應用程式其他視窗將不再接收使用者輸入,只有該對話方塊相應使用者輸入,在對它進行相應操作退出後,其他窗口才能繼續與使用者互動。 非模態對話方塊:它彈出後,本程式其他視窗仍然可以接收使用者相應。 2.模態視窗是如何彈

MFC 對話方塊Picture Control(圖片控制元件)中靜態動態顯示Bmp圖片

        最近有同學問我如何實現MFC基於對話方塊在圖片控制元件中載入圖片?其實使用MFC顯示圖片的方法各種各樣,但是還是有些同學不知道怎樣顯示.以前在《數字影象處理》課程中完成的軟體都是基於單

VS2013/MFC程式設計入門之七(對話方塊建立對話方塊新增控制元件變數)

前兩講中為大家講解了如何建立對話方塊資源。建立好對話方塊資源後要做的就是生成對話方塊類了。再宣告下,生成對話方塊類主要包括新建對話方塊類、新增控制元件變數和控制元件的訊息處理函式等。        因為給大家的例程Addition是基於對話方塊的程式,所以程式自動建立了

MFC對話方塊開啟一幅圖片並在picture顯示圖片儲存

百度文庫,CSDN備份,Github工程 除錯的問題:(1)總體來說沒有什麼問題,就是bmpf需要重新定義一下,因為在程式設計的過程中,發現這個變數沒有宣告.                     (2)讀取和儲存圖片的格式比較單一,只有BMP的24位彩色影象才可

MFC(3):對話方塊建立基礎知識

  模態對話方塊:建立後不能對其他視窗進行操作 非模態對話方塊:建立後仍可以對其他視窗進行操作 新建專案-->MFC應用程式-->基於對話方塊、MFC標準-->完成 預設生成的類有:應用程式類、對話方塊類 誤操作關閉對話方塊的解決辦法:解決方案管理器-->點

VC MFC 對話方塊 Picture控制元件 顯示影象閃爍問題

在VC 使用StretchDIBits函式拉伸影象,然後顯示,使用 pWnd->Invalidate();  pWnd->UpdateWindow(); 重新整理視窗,發現當影象和背景相差很大的時候,有閃爍現象。 解決辦法: hdd=DrawDibOpen()

MFC 對話方塊建立toolbar 橫的 豎的

在資源視窗先新建一個toolbar 的資源,通過複製貼上網上下載的png 或者自己畫,如圖: 後在初始化函式里加上 //toolbar pen .h CToolBar*  m_pWndToolBarPen; .cppm_pWndToolBarPen = new CTool

MFC對話方塊顯示網頁

用到ActiveX 控制元件,向對話方塊裡面插入一個 WebBrowser控制元件,之後使用就可以了! 利用WebBrowser控制元件建立自己的瀏覽器 ①新建一個基於對話方塊的工程,命名為test,然後在對話方塊上單擊右鍵,選擇 Insert ActiveX Contr

MFC對話方塊程式啟動的時候直接隱藏、在工作列不顯示圖示

2011-06-19 以前做一個專案,要求程式啟動的時候主對話方塊是隱藏的。當時不知道怎麼做,修改視窗風格、視窗類、OnInitDialog裡ShowWindow、Create函式、WM_CREATE訊息、PreCreateWindow等等都嘗試了,沒什麼用,相當鬱悶。後來有

android開發 -- 對話方塊 Dialog DialogFragment 詳解( Android 官方推薦 DialogFragment 建立對話方塊

 Android 官方推薦使用 : DialogFragment 建立對話方塊 ,不推薦直接使用Dialog建立對話方塊,所以能用寫對話方塊儘量用DialogFragment。自定義對話方塊也方便很多 推薦一篇DialogFragment的文章:http://blog.csdn.n

如何在mfc對話方塊中新增一個顯示網頁的視窗

這個要用到 ActiveX 控制元件了,向對話方塊裡面插入一個 WebBrowser控制元件,之後使用就可以了!=============================利用WebBrowser控制元件建立自己的瀏覽器①新建一個基於對話方塊的工程,命名為test,然後在對話方塊上單擊右鍵,選擇Insert A

MFC設定對話方塊背景邊框顏色

 對於對話方塊,只需要過載預設的訊息處理函式就行了: // 過載預設的訊息處理函式,主要處理WM_MOVE WM_PAINT WM_NCPAINT WM_NCACTIVATE WM_NOTIFY這// 幾個訊息就可以了 LRESULT CMyDialog::DefWi

MFC對話方塊建立與銷燬總結

主void CMoshiwindowDlg::OnButton1()  {     // TODO: Add your control notification handler code here     CDialogproty dlg;      dlg.DoModa

對話方塊建立新方式showDialogDialogFragment

建立對話方塊  一個對話方塊一般是一個出現在當前Activity之上的一個小視窗. 處於下面的Activity失去焦點, 對話方塊接受所有的使用者互動. 對話方塊一般用於提示資訊和與當前應用程式直接相關的小功能.  Android API 支援下列型別的對話方塊物件:  警

MFC 對話方塊顯示系統當前時間

轉載來自:http://blog.csdn.net/bbsview/article/details/7886149 對話方塊中編輯框ID為IDC_TIME,關聯變數為CString的m_time 在OnInitDialog()中新增程式碼:       CString st

MFC對話方塊程式中的OnCreateOnInitDialog函式

        最近做一個簡單的專案,需要使用到MFC。雖說這個東西已經很老舊了,但是為了專案使用,開始學它。需要將一個osg三維檔案顯示在控制元件中,這裡使用編輯框空間,除錯過程中遇到了CEdit

在c++MFC下用PCL顯示操作點雲檔案 MFC對話方塊顯示操作PCL點雲

原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/13115873.html   第一步 下載PCL庫  我的版本是1.8.1的     你都要MFC下跑PCL了 你不會不知道怎麼下載吧 ( 不會吧  不會

MFC對話方塊裡不能響應按鍵事件的解決辦法 -- 有感

我在做一對話方塊上有按鍵,我將按鍵 按鍵顯示時(visible = true) ,不能響應OnKeyDown函式,所以我參考了 https://blog.csdn.net/fancw/article/details/10007081 怎麼改的: BOOL ADlg::PreTrans

MFC對話方塊程式設計雜談

區分BITMAP、CBitmap和HBITMAP ①BITMAP   BITMAP是一個結構體,封裝著bitmap的一些資訊。定義了邏輯點陣圖的寬高、顏色格式和位值。 ②CBitmap   CBitmap是MFC中封裝bitmap的類,包含著被點陣圖的