WEB开发网
开发学院软件开发VC VC学习:对话框 阅读

VC学习:对话框

 2010-11-01 08:07:59 来源:WEB开发网   
核心提示:对话框和窗体中使用系统图标http://tech.cncms.com/develop/vc/59131.html定制个性化的对话框窗口类http://tech.cncms.com/develop/vc/59160.htmlVC自绘对话框http://tech.cncms.com/develop/vc/59028.htm

对话框和窗体中使用系统图标

http://tech.cncms.com/develop/vc/59131.html

定制个性化的对话框窗口

http://tech.cncms.com/develop/vc/59160.html

VC自绘对话框

http://tech.cncms.com/develop/vc/59028.html

/*【对话框专题知识】*/

//知识点:创建对话框;显示对话框;

//新建Single Document程序

void CMyBoleView::OnDialog() //对话框的响应函数

{

//首先创建一个新的对话框资源,并增加一个相关的类[CTestDlg]用来操作该资源。再增加一个菜单项(view类)用来显示该对话框。【每增加一个新对话框都需增加一个相关类来做相关处理】

//▲注意:要在view类头文件里包含testdlg.h,才能在菜单项的消息响应函数使用该类。

/*■1.<<创建、显示、关闭模态对话框>>*/

CTestDlg dlg; //此处是局部变量,但不要紧,因为程序会暂时停下来等模态对话框关闭后再运行;

dlg.DoModal();//创建并显示模态对话框

/*■2.<<创建、显示、销毁非模态对话框>>*/

//>>错误写法:CTestDlg dlg; 

//▲不能定义成局部变量。局部变量两种处理方法:[1]定义成view类的成员变量;[2]定义成指针,在堆栈上分配内存,因为堆栈上的内存和程序的整个生命期是一致的(前提是程序不能主动销毁)

CTestDlg *pDlg=new CTestDlg;

//▲>>指针变量是一个局部变量,生命周期结束后其保存的内存地址就丢失了,程序无法再引用了,解决方法:

//[1]定义为视类的成员变量,再在其析构函数里用delete函数释放内存;

//[2]在CTestDlg类中重载PostNcDestroy虚函数,释放this指针指向的内存。

pDlg->Create(IDD_DIALOG1,this); //第一个参数可以是对话框资源ID或对话框模板名称;第二个参数指定父窗口,为NULL时即为主应用程序窗口

pDlg->ShowWindow(SW_SHOW);

//▲>>非模态与模态的区别:[1]显示 [2]局部变量的使用 [3]按下ok键后,模态的会调用OnOK虚函数,其又会调用EndDialog函数,从而终止模态对话框而非模态的并不销毁对话框,仅使其不可见,故要重写基类的OnOK虚函数(或OnCancel虚函数),在重写函数中调用DestroyWindow函数

pDlg->DestroyWindow();//销毁非模态对话框

delete pDlg;//释放指针

/*■3.1<<动态创建模态对话框>>*/

CTestDlg dlg;//局部变量不要紧,因为程序会暂时停下来等模态对话框关闭后再运行

dlg.DoModal();//创建并显示模态对话框

}

/*■3.<<动态创建模态对话框>>*/

//功能:单击对话框中某个按钮时(在对方框),就在对话框中动态创建一个新按钮

void CTestDlg::OnBtnAdd() //按钮Add的响应函数

{

//>>先创建模态对话框(view类Ondialog中,见上3.1),再在对话框IDD_DIALOG1添加一按钮Add并对其添加消息处理函数(CTestDlg类,也即此函数)

1 2 3 4  下一页

Tags:VC 对话框

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接