DoModal失敗緣由算法
一、MFC數據結構
一般對話框不顯示的緣由有架構
1 父窗口HWND無效函數
2 在ONINITDIALOG裏用了ENDDIALOG性能
3 無效的對話框資源ID測試
4 使用沒有註冊的的自定義控件字體
5 對話框的某些控件建立失敗,如RICHEDIT,要加上AfxInitRichEdit(); (我就是這個緣由,加了richedit控件,沒有調用這個函數)網站
最有可能出現的是第3條,所以,又通過仔細分析了對話框中的各個資源的ID,終於找到了問題,原來是出在一個菜單欄的ID上面, 在對話框的屬性的菜單欄中有一個ID(由於這個對話框是複製過來的,並且原來的對話框有菜單欄的,可是如今這個對話框沒有),因此呢,ID雖然存在,但 是,如今的程序中並無對應的資源,因此,經過講菜單欄那項設置爲空,這樣,程序就OK了。spa
writeFlash依賴於ResZH,在這個已有有工程裏面,新建了一個窗口,調用:.net
int nResponse = dlg.DoModal();後發現返回爲-1,
不能彈出顯示對話框,後來覈對了一下resource.h,本工程裏面有兩個,對於同一個宏
#define IDD_LOGIN_DIALOG 178
#define IDD_LOGIN_DIALOG 177
兩個值不一致。改成一致就能夠了。
(
MFC 資源管理器刪除控件是不會更改resource.h的,須要手動刪除)
RichEdit是開發中常常使用到的控件,其版本自1.0起,歷經好幾年,好幾回的更新,
RichEdit 1.0 功能
基本非Unicode編輯、 剪切/複製/粘貼文件流
字符/段落格式屬性的基本集
基於消息的接口加OLE接口:IRichEditOle和IRichEditOleCallback
垂直文本和輸入法支持 (僅適用於FE生成)。
所見即所得的編輯使用打印機標準
不一樣版本不一樣的腳本
經常使用控件通知再加上一些新的
純文本和rtf格式文件
爲Windows畫筆的使用啓用筆和理解的手勢
RichEdit 2.0 添加
Unicode內部+可以讀寫使用代碼頁
國際線斷
算法
向上/向下查找。麥哲倫鼠標支持。
多級撤消
雙向(2.1版)和FE支持包括水平的2/3輸入法,雙字體、鍵盤連接、智能字體應用
自動超連接識別。Word用戶界面
簡單的/豐富的、 單行/多行、 可擴展的
架構
密碼和加速器控制選項
無窗口接口(ITextHost/ITextServices)
更好地顯示(混合的字體使用離屏位圖)、系統選擇顏色、透明度的支持
TOM(文本對象模型)雙重接口
字符格式增長包括背景顏色,區域設置 ID,下劃線類型,上標/下標。
段落格式設置增長包括前/後的間距、 行間距。
來回全部Word格式字體/段落屬性對話框
大量的代碼穩定,測試,性能提升
在MFC中使用RichEdit2,須先調用::AfxInitRichEdit();初始化RichEdit2控件。
能夠在xxxApp::InitInstance()應用初始化時加載調用::AfxInitRichEdit2()函數!!!
MFC 萬能的類嚮導
在項目上點右鍵【類嚮導】
參考:
https://blog.csdn.net/bookish_2010_prj/article/details/5535757