亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 07.2.2 非模態對話框的創建.txt

?? 網上第一本以TXT格式的VC++深入詳解孫鑫的書.全文全以TXT格式,并每一章節都分了目錄,清晰易讀
?? TXT
字號:
7.2.2 非模態對話框的創建
如果要創建非模態對話框,則需要利用 CDialog類的 Create成員函數。該函數具有以下兩種形式的聲明: 
BOOL Create( LPCTSTR lpsZTemplateName, CWnd* pParentWnd = NULL ); 
BOOL Create( UINT n工 DTemplate, CWnd* pParentWnd = NULL ); 
也就是說, Create函數的第一個參數可以是對話框資源的 ID ( nIDTemplate參數 ),或者也可以是對話框模板的名稱 ( lpszTemplateName參數)。這個函數的第二個參數指定了對話框的父窗口,如果其值是 NULL,對話框的父窗口就是主應用程序窗口。對本例來說,如果這個父窗口參數值是 NULL,對話框的父窗口就是框架窗口。這里,我們仍在 CMyboleView類 OnDialog函數中實現創建非模態對話框的功能,則首先需要將上面例 7-4所示代碼中創建模態對話框的代碼注釋起來,然后在其后面添加創建非模態對話框的代
碼,結果如例 7-6所示。 
void CMyboleView: :OnDialog() 
// TODO : Add your command handler code here /1 CTestDlg dlg; // dlg.DoModal(); 
CTestDlg dlg; 
dlg.Create(IDD_DIALOG1,this) ; 
Build井運行Mybole程序,單擊程序菜單欄上的【對話框】菜單,發現并未出現測試對話框窗口。這里,讀者一定要注意,當利用 Create畫數創建非模態對話框時,還需要調用ShowWindow函數將這個對話框顯示出來。那為什么上面利用DoModal函數創建對話框時不需要呢?這是因為DoModal函數本身就有顯示模態對話框的作用,所以對模態對話框來說,不需要再調用ShowWindow函數來顯示對話框了,但非模態對話框需要調用此函數。因此,我們在上述例7-6所示OnDialog函數的最后再加上下面這行代碼: 
dlg.ShowWindow(SW_SHOW); 
Build井運行Mybole程序,單擊程序菜單欄上的【對話框】菜單,發現仍沒有出現測試對話框。問題出在哪里呢?我們回頭看看上面的代碼,發現這里創建的非模態對話框對象 (dlg)是一個局部對象,當程序執行時,會依次執行各條代碼,當OnDialog函數的右大括號執行結束時, dlg這個對象的生命周期也就結束了,它就會銷毀與之相關聯的對話框資源。那為什么上面創建模態對話框時就可以使用局部對象呢?上面已經講過,在創建模態對話框時,當執行到調用DoModal函數以顯示這個對話框時,程序就會暫停執行,直到模態對話框關閉之后,程序才繼續向下執行。也就是說,當模態對話框顯示時,程序中創建的dlg這個對象的生命周期并未結束。因此,在創建非模態對話框時,不能把對話框對象定義為局部對象。對于這個問題,有兩種解決辦法:一種就是把這個對話框對象定義為視類的成員變量:另一種方式是將它定義為指針,在堆上分配內存。我們知道,在堆上分配的內存,與程序的整個生命周期是一致的,當然這里是指程序中不主動銷毀的情況。這里,我們采用后一種方式,修改己有代碼,結果如例7-7所示。 
例7-7 
void CMyboleView : :OnDialog() 
. 
// TODO: Add your command handler code here 11 CTestDlg dlg ; // dlg . DoModal(); 
CTestDlg *pDlg = new CTestDlg; 
pDlg->Create(IDD_DIALOG1, this); 
pDlg->ShowWindow(SW_SHOW) ; 
因為這里定義的對話時象是指針類型,所有調用其成員函數時應該
用->操作符。 
Build并運行Mybole程序,單擊程序菜單欄上的【對話框】菜單,測試對話框出現了,這時可以試著單擊程序的菜單項,將會發現可以進行這項操作,如圖7.11所示。這就是非模態對話框的特點。因為程序顯示非模態對話框時,并不會停留在某條語句處,所以 CMyboleView類的 OnDialog函數內部的代碼就會順序地被執行,直到該函數執行結束,. 這時,程序就可以執行其他任務了,例如響應菜單項的單擊操作。 
圖 7.11非模態對話框的顯示
可是,上述例7-7所示的這段程序仍有問題,首先,我們定義的pDlg這個指針變量是一個局部對象,這樣當它的生命周期結束時,它所保存的內存地址就丟失了,那么在程序中也就無法再引用到它所指向的那塊內存了。這個問題的解決辦法有兩種:一是將這個指針變量定義為視類 C CMyboleView )的成員變量,然后在CMyboleView類的析構函數中調用 delete函數來釋放這個指針變量所指向的那塊內存:二是在 CTestDlg類中重載 PostNcDestroy虛函數,釋放this指針所指向的內存,代碼如例7-8所示,其中加灰顯示的代碼是我們添加的代碼。 
~~ 7-8 
void CTestDlg :: PostNcDestroy() 
// TODO: Add your specialized code here and/ or call the base class delete this; CDialog : :PostNcDestroy(); 
另外,讀者會發現上述示例中無論創建的是模態對話框,還是非模態對話框,當單擊對話框上的【OK】按鈕時,對話框都會消失。但有一點需要提醒讀者注意,對模態對話框而言,此時對話框窗口對象被銷毀了。而對非模態對話框來說,對話框窗口對象并未被銷毀,只是隱藏起來了。我們來分析一下在非模態對話框中單擊OK按鈕后,程序所發生的事情。這時,程序會調用基類 CCDialog)的 OnOK函數,這是一個虛函數。后者又會
調用EndDialog函數,這個函數用于終止模態對話框,而對于非模態對話框,這個函數只是使對話框窗口不可見,并不銷毀它。因此,對非模態對話框來說,如果有一個 E值為 IDOK的按鈕,就必須重寫基類的 OnOK這個虛函數,并在重寫的函數中調用 DestroyWindow函數,以完成銷毀對話框的工作,同時注意不要再調用基類的OnOK函數。同樣地,如果非模態對話框中有一個 ID值為 IDCANCEL的按鈕,也必須重寫基類的 OnCancel虛函數,并在重寫的函數中調用Des位oyWindow函數,銷毀對話框,同時注意不要再調用基類的OnCancel函數。 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩高清一级片| 亚洲国产日日夜夜| 欧美日韩国产另类一区| 99免费精品在线观看| 国产自产视频一区二区三区| 六月丁香综合在线视频| 免费av成人在线| 国产在线精品不卡| 国产成人午夜片在线观看高清观看| 日韩不卡在线观看日韩不卡视频| 美女一区二区久久| 久久精品二区亚洲w码| 国产精品一区二区久久不卡| 国产成人精品一区二| 91免费观看视频| 欧美精品在线观看播放| 日韩欧美高清一区| 欧美国产1区2区| 樱花影视一区二区| 日本不卡一二三区黄网| 国产毛片精品视频| av亚洲产国偷v产偷v自拍| 欧美视频日韩视频在线观看| 日韩欧美中文字幕制服| 久久精品一二三| 亚洲免费在线视频一区 二区| 亚洲免费在线视频一区 二区| 丝袜美腿一区二区三区| 国产伦精品一区二区三区在线观看 | 一本一道综合狠狠老| 欧美色图免费看| 欧美精品一区二区三区高清aⅴ | 色老综合老女人久久久| 欧美一区二区久久久| 国产精品毛片无遮挡高清| 一区二区三区av电影| 中文字幕av一区二区三区| 一区二区三区四区不卡在线| 亚洲福利视频导航| 九一久久久久久| 色欧美片视频在线观看 | 亚洲欧美日韩中文字幕一区二区三区| 亚洲午夜激情网站| 国产99久久久国产精品潘金| 欧美日免费三级在线| 久久精品一区四区| 日韩综合小视频| 91一区二区三区在线观看| 亚洲精品一区二区三区福利| 亚洲一区在线看| 不卡的av电影在线观看| 日韩免费在线观看| 亚洲第一搞黄网站| 成人免费三级在线| 亚洲视频免费看| 成人av免费在线观看| 欧美日韩大陆在线| 亚洲色图20p| 国产一区二区三区在线看麻豆| 在线免费观看一区| 中文字幕中文字幕一区二区| 乱一区二区av| 日韩午夜小视频| 三级在线观看一区二区| 欧美性极品少妇| 伊人色综合久久天天| 成人午夜伦理影院| 日本一区二区三区国色天香 | 欧美国产视频在线| 韩国av一区二区三区四区| 91精品国产综合久久精品麻豆| 中文字幕亚洲一区二区av在线 | 欧美艳星brazzers| 国产亚洲va综合人人澡精品| 日韩二区三区在线观看| 欧美性xxxxx极品少妇| 亚洲精品国产a| 色综合色综合色综合色综合色综合| 国产欧美精品一区| 成人午夜激情在线| 国产精品久久网站| 91麻豆蜜桃一区二区三区| 中文字幕一区二区视频| 一本色道久久综合亚洲91| 专区另类欧美日韩| 欧日韩精品视频| 首页欧美精品中文字幕| 日韩欧美亚洲国产另类| 久久国产人妖系列| 国产午夜亚洲精品羞羞网站| 国产69精品久久777的优势| 中文字幕一区二区不卡| 在线观看欧美精品| 免费在线看成人av| 日韩欧美一卡二卡| 久久国产福利国产秒拍| 欧美精品一区二区在线观看| 国产成a人亚洲| 一区二区激情小说| 日韩一级大片在线观看| 风间由美一区二区三区在线观看 | 亚洲私人影院在线观看| 欧美一a一片一级一片| 青青草国产精品97视觉盛宴| 日韩一级欧美一级| 成人黄色软件下载| 亚洲成人免费影院| 国产性做久久久久久| 欧美影视一区在线| 国产一区二区女| 亚洲在线视频一区| 日韩欧美国产综合一区| 成人福利视频网站| 日本不卡不码高清免费观看| 国产精品五月天| 欧美手机在线视频| 国产+成+人+亚洲欧洲自线| 中文字幕第一区综合| 欧美日韩在线播放三区四区| 激情欧美一区二区三区在线观看| 国产精品久久久一本精品 | 日韩免费电影一区| 色综合久久久网| 韩国女主播一区| 五月综合激情婷婷六月色窝| 中文av一区二区| 日韩一二三区不卡| 91麻豆国产在线观看| 国产一区二区免费看| 日韩av一级电影| 亚洲免费在线观看| 欧美国产精品专区| 欧美电影免费观看高清完整版在线观看 | 亚洲精品综合在线| 久久久久高清精品| 日韩免费看的电影| 在线播放视频一区| 欧美天堂亚洲电影院在线播放| 成人免费观看av| 国产69精品久久久久毛片| 麻豆国产欧美日韩综合精品二区 | 91丝袜呻吟高潮美腿白嫩在线观看| 免费看黄色91| 日韩激情一区二区| 亚洲成人综合网站| 亚洲一级在线观看| 亚洲香蕉伊在人在线观| 亚洲码国产岛国毛片在线| 亚洲欧美在线另类| 国产精品高潮呻吟久久| 国产午夜亚洲精品午夜鲁丝片| 欧美主播一区二区三区| 91免费观看视频在线| 99久久精品一区| av一区二区不卡| 91视视频在线直接观看在线看网页在线看 | 国产精品成人免费精品自在线观看| 亚洲精品一线二线三线无人区| 日韩一区二区免费视频| 宅男在线国产精品| 日韩欧美国产精品| 精品区一区二区| 欧美哺乳videos| 久久久蜜臀国产一区二区| 国产欧美日韩亚州综合| 欧美高清在线视频| 一区二区三区视频在线观看| 亚洲自拍偷拍九九九| 蜜芽一区二区三区| 国产美女一区二区三区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 日韩高清不卡一区| 美国欧美日韩国产在线播放| 国内不卡的二区三区中文字幕| 国产精品自拍一区| av资源站一区| 欧美日韩亚洲综合一区二区三区| 日韩一区二区三区视频在线| 久久久蜜桃精品| 一区二区三区精密机械公司| 三级成人在线视频| 国产成人综合在线观看| 欧美在线免费播放| 欧美一级爆毛片| 中文字幕精品三区| 亚洲h在线观看| 99re热视频这里只精品| jlzzjlzz国产精品久久| 欧美视频一区二区在线观看| 日韩欧美一区二区视频| 亚洲欧洲另类国产综合| 日韩av一区二区三区| 不卡的电影网站| 日韩天堂在线观看| √…a在线天堂一区| 日本视频一区二区三区| 91婷婷韩国欧美一区二区| 日韩精品一区二区三区四区| 亚洲女性喷水在线观看一区| 久久精品噜噜噜成人av农村|