MFC對話方塊程式中的OnCreate和OnInitDialog函式
最近做一個簡單的專案,需要使用到MFC。雖說這個東西已經很老舊了,但是為了專案使用,開始學它。需要將一個osg三維檔案顯示在控制元件中,這裡使用編輯框空間,除錯過程中遇到了CEdit* e = (CEdit*)GetDlgItem(IDC_EDIT1);其中e的值為NULL,也就是說沒有get到控制元件。
遂去圖書館,翻書找到問題所在由於將GetDlgItem放在了OnCreate中,而OnCreate是在視窗被建立時響應傳送的訊息,此時對話方塊尚未建立完成,所以其中的控制元件還不存在,當然就錯了,它可以用來設定視窗的屬性。此時不應將取得控制元件等與控制元件相關的語句放在OnCreate中。而對話方塊的OnInitDialog成員函式是對話方塊在被建立啟用後呼叫。,此時各種控制元件已經被建立,因此與控制元件相關的操作應該放在這裡面。
相關推薦
MFC對話方塊程式中的OnCreate和OnInitDialog函式
最近做一個簡單的專案,需要使用到MFC。雖說這個東西已經很老舊了,但是為了專案使用,開始學它。需要將一個osg三維檔案顯示在控制元件中,這裡使用編輯框空間,除錯過程中遇到了CEdit
MFC對話方塊程式中使用OpenGL
在MFC的對話方塊程式中需要使用OpenGL在某個對話方塊中作圖,綜合了網上的兩篇文章的內容(文章一,文章二),也有自己的心得體會。 首先需要配置好opengl的環境,程式中會使用到glaux中的庫和函式,這裡將它的lib,h,dll檔案的下
MFC對話方塊程式中當滑鼠移動到控制元件上後改變形狀
處理父視窗的WM_SETCURSOR訊息: BOOL CYourDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { // TODO: Add your me
MFC對話方塊程式EDIT類控制元件的自動換行,垂直滾動條自動下移
1.新建一個Edit Control,將其Multiline屬性設定為True,Auto HScroll屬性設定False,這樣就可以實現每一行填滿後自動換行了。2.再將Vetrical Scroll屬性設定為True,當輸入或顯示超過編輯框的大小後就會出現垂直滾動條
MFC對話方塊程式啟動的時候直接隱藏、在工作列不顯示圖示
2011-06-19 以前做一個專案,要求程式啟動的時候主對話方塊是隱藏的。當時不知道怎麼做,修改視窗風格、視窗類、OnInitDialog裡ShowWindow、Create函式、WM_CREATE訊息、PreCreateWindow等等都嘗試了,沒什麼用,相當鬱悶。後來有
新增RichEdit控制元件導致MFC對話方塊程式無法執行的解決方法
解決辦法: 在應用程式類(App類)中的InitInstance函式體內新增以下語句: AfxInitRichEdit(); 對應1.0版本 如果有2.0版本需要新增如下 AfxInitRichEdit2(); 對應2.0 版本 說明: 新增RichEdit控制元件後,在呼叫對話方塊函式Do
MFC 對話方塊程式返回值
控制檯程式可以很方便的獲取到程式的返回值,MFC對話方塊程式返回值的獲取就沒有控制檯程式獲取那麼方便了。 在MFC對話方塊程式中有兩個大類,一個是應用程式類,一個是用於顯示見面的對話方塊類。由於人和程式的互動是通過 對話方塊類實現,而作業系統獲取程式返回值卻只能從應用程式類
VS2010/MFC對話方塊程式呼叫Windows Media Player播放器控制元件
MFC對話方塊程式呼叫Windows Media Player播放器控制元件播放開啟的avi格式的檔案,具體步驟如下: 1.根據MFC嚮導提示,建立一個預設的對話方塊專案TestMediaPlayer. 2.開啟資源,在主對話方塊上點選右鍵,在右鍵選單中選擇“插入Activ
MFC—對話方塊程式—模式對話方塊與非模式對話方塊
一、根據主視窗型別,MFC軟體工程可以分為以下幾種架構模型:1、SDI(Single Document Interface):單文件介面,一個主框架視窗下只能編輯一份文件。例如:記事本和畫筆等。2、MDI(Multiple Document Interface):多文件介面,
在對話方塊程式中使用自定義控制元件-XT介面庫
1. 新建一個MFC對話方塊工程,以報表控制元件為例。 在stdarx.h標頭檔案中加入XT介面庫的包含檔案: #include "XTToolKitPro.h"// xt介面庫 2. 向對話方塊中拖一個自定義控制元件(Custom Control),修
MFC對話方塊程式載入選單、加速鍵、工具欄
MFC中程式分為三種:多文件程式、單文件程式和對話方塊程式,其中多文件和單文件程式預設帶有選單、加速鍵以及工具欄,下面介紹對話方塊程式中載入選單、加速鍵和工具欄的方法。首先,新建一個對話方塊的程式,名
MFC 對話方塊Picture Control(圖片控制元件)中靜態和動態顯示Bmp圖片
最近有同學問我如何實現MFC基於對話方塊在圖片控制元件中載入圖片?其實使用MFC顯示圖片的方法各種各樣,但是還是有些同學不知道怎樣顯示.以前在《數字影象處理》課程中完成的軟體都是基於單
【MFC】基於對話方塊程式選單欄不更新
環境:win10,vs2017 問題描述: 為mfc對話方塊程式添加了一個托盤選單,但這個托盤選單不響應ON_UPDATE_COMMAND_UI訊息, 並且設定選單項的勾選(SetCheck)時,可以通過程式碼觀察到勾選成功,但選單欄顯示的勾選狀態依然不變。 經過幾天的百度,終於發現
【MFC-10】VS2010/MFC基於對話方塊程式的登入視窗實現
一、開發環境 1、VS2010; 2、C++ / MFC; 二、登入視窗設計示例 1、新建基於對話方塊的MFC專案,命名為“UserLogin”; 2、資源檢視中插入一個Dialog,修改ID為:IDD_LOGIN_DIALOG,標題修改為登入對話方塊,並新增控制元
在MFC對話方塊中顯示網頁
用到ActiveX 控制元件,向對話方塊裡面插入一個 WebBrowser控制元件,之後使用就可以了! 利用WebBrowser控制元件建立自己的瀏覽器 ①新建一個基於對話方塊的工程,命名為test,然後在對話方塊上單擊右鍵,選擇 Insert ActiveX Contr
如何在mfc對話方塊中新增一個顯示網頁的視窗
這個要用到 ActiveX 控制元件了,向對話方塊裡面插入一個 WebBrowser控制元件,之後使用就可以了!=============================利用WebBrowser控制元件建立自己的瀏覽器①新建一個基於對話方塊的工程,命名為test,然後在對話方塊上單擊右鍵,選擇Insert A
MFC對話方塊的建立和顯示
1.模態對話方塊和非模態對話方塊 模態對話方塊:當它彈出時,本應用程式其他視窗將不再接收使用者輸入,只有該對話方塊相應使用者輸入,在對它進行相應操作退出後,其他窗口才能繼續與使用者互動。 非模態對話方塊:它彈出後,本程式其他視窗仍然可以接收使用者相應。 2.模態視窗是如何彈
MFC模態對話方塊程式不響應OnIdle
從程式碼分析原因吧: OnIdle函式在MFC的CWinThread::Run函式中被呼叫,如下 // main running routine until thread exits int CWinThread::Run() { ASSERT_VALID(this); _AFX_THRE
MFC基於對話方塊程式啟動時隱藏視窗的實現
對於基於對話方塊的MFC程式,如果想要程式啟動時就隱藏主視窗,無法在該對話方塊類的OnInitialDialog()函式中實現隱藏視窗的功能。但是,可以通過對話方塊程式響應WM_WINDOWPOSCHANGING訊息來實現隱藏視窗的功能。 1 OnInitialDialog
VS2008中MFC對話方塊介面程式設計Caption中文亂碼的解決辦法
最近在使用VS2008編寫一個基於對話方塊的程式時,在對話方塊中新增Static控制元件,編寫其Caption時寫中文的話會出現亂碼。 在預覽狀態下(快捷鍵是Ctrl+T)可能看到中文,但是編譯執行後對話方塊中的中文全是問號。 即使你用的VS2008中文版,即使