Liny_@NotePad

沉迷ACG中

模式对话框。。

YOYO posted @ 2009年7月27日 00:54 in 【C/C++】 with tags 模式对话框 Modal , 2050 阅读

依然是C++与Java比较。。

Java中默认是无模式对话框,如果要创建模式对话框,可以使用构造方法,比如:

AWT中的Dialog:

Swing中的JDialog:

而Eclipse的SWT/JFace中默认都是模式对话框,会自动创建一个阻断的句柄,不在本次讨论范围内。。

 

C++中的模式对话框就是默认的对话框,在调用时使用

CModalDlg dlg;
dlg.DoModal();

而无模式对话框则是由指针来new一个对象,即内存需要用户自己分配:

CNoModalDlg * pDlg = new CNoModalDlg;
pDlg->Create(IDD_NOMODAL_DIALOG);
pDlg->ShowWindow(SW_NORMAL);

 当然,关闭的时候也要进行相应修改,否则不会释放内存:

DestroyWindow();
delete this;

  

相较起来,C++在创建无模式对话框时需要用户自己分配内存,如果关闭的时候没写好易造成内存泄露。。这一点还是比较喜欢Java = =|| 因为它不需要程序员管理内存。。

  • 无匹配

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter