C++语言 对话框程序设计
生活随笔
收集整理的這篇文章主要介紹了
C++语言 对话框程序设计
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include "Book.h"
//模式對(duì)話框的創(chuàng)建
CBook book; //定義CBook對(duì)象
book.DoModal(); //調(diào)用DoModal方法顯示模態(tài)對(duì)話框
CBook *pbook;
pbook = new CBook();
pbook->DoModal();
delete pbook;//非模式對(duì)話框的創(chuàng)建
if(!IsWindow(m_book.m_hWnd))
{m_book.Create(IDD_Book, NULL);
}
m_book.ShowWindow(SW_SHOW);//在創(chuàng)建模式對(duì)話框時(shí),定義的是局部變量,而創(chuàng)建非模式對(duì)話框時(shí)創(chuàng)建的是成員變量.在創(chuàng)建模式對(duì)話框時(shí),調(diào)用DoModal方法創(chuàng)建對(duì)話框時(shí),當(dāng)前純種被阻塞,直到模式對(duì)話框關(guān)閉.在關(guān)閉模式對(duì)話框時(shí),OnOK方法調(diào)用完成,局部對(duì)象Book的作用域消失,導(dǎo)致調(diào)用基類的析構(gòu)函數(shù)釋放了窗口資源.因此,對(duì)于模式對(duì)話框,如果將其關(guān)閉,再重新創(chuàng)建不會(huì)出現(xiàn)錯(cuò)誤.
//而創(chuàng)建非模式對(duì)話框使用的是成員變量,這是有原因的.因?yàn)檎{(diào)用Create方法創(chuàng)建對(duì)話框不會(huì)導(dǎo)致當(dāng)前的純種被阻塞,會(huì)繼續(xù)執(zhí)行其后的代碼.如果采用下面的形貌:
CBook Book;
Book.Create(IDD_Book, NULL);
Book.ShowWindow(SW_SHOW);
//在調(diào)用Create方法后,緊接著釋放創(chuàng)建的對(duì)話框資源,因此執(zhí)行上述代碼,窗口創(chuàng)建并顯示后馬上就消失了.
m_Book.SetWindowText("hello"); //設(shè)置對(duì)話框文本
m_Book.ModifyStyle(WS_CAPTION, 0, 0); //去除標(biāo)題欄
m_Book.ModifyStyle(0, WS_THICKFRAME, 0); //添加WS_THICKFRAME 風(fēng)格
m_Book.ModifyStyleEx(0, WS_EX_TOOLWINDOW, 0);//設(shè)置工具欄窗口風(fēng)格(修改對(duì)話框的擴(kuò)展風(fēng)格)
m_Book.ModifyStyleEx(0, WS_EX_ACCEPTFILES, 0); //設(shè)置Accept files屬性
//其中窗口的擴(kuò)展風(fēng)格常量值可以在MSDN中的CreateWindowEx函數(shù)的幫助文檔中找到.
轉(zhuǎn)載于:https://www.cnblogs.com/pythonschool/archive/2012/11/12/2766317.html
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的C++语言 对话框程序设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android使用的设计模式2——策略模
- 下一篇: s3c2440移植MQTT