模式对话框。。
Java中默认是无模式对话框,如果要创建模式对话框,可以使用构造方法,比如:
AWT中的Dialog:
Dialog(Dialog owner, String title, boolean modal)
Dialog(Dialog owner, String title, boolean modal, GraphicsConfiguration gc)
Dialog(Frame owner, boolean modal)
Dialog(Frame owner, String title, boolean modal)
Dialog(Frame owner, String title, boolean modal, GraphicsConfiguration gc)
Swing中的JDialog:
JDialog(Dialog owner, boolean modal)
JDialog(Dialog owner, String title, boolean modal)
JDialog(Dialog owner, String title, boolean modal, GraphicsConfiguration gc)
JDialog(Frame owner, boolean modal)
JDialog(Frame owner, String title, boolean modal)
JDialog(Frame owner, String title, boolean modal, GraphicsConfiguration gc)
而Eclipse的SWT/JFace中默认都是模式对话框,会自动创建一个阻断的句柄,不在本次讨论范围内。。
C++中的模式对话框就是默认的对话框,在调用时使用
CModalDlg dlg;
dlg.DoModal();
dlg.DoModal();
而无模式对话框则是由指针来new一个对象,即内存需要用户自己分配:
CNoModalDlg * pDlg = new CNoModalDlg;
pDlg->Create(IDD_NOMODAL_DIALOG);
pDlg->ShowWindow(SW_NORMAL);
pDlg->Create(IDD_NOMODAL_DIALOG);
pDlg->ShowWindow(SW_NORMAL);
当然,关闭的时候也要进行相应修改,否则不会释放内存:
DestroyWindow();
delete this;
delete this;
相较起来,C++在创建无模式对话框时需要用户自己分配内存,如果关闭的时候没写好易造成内存泄露。。这一点还是比较喜欢Java = =|| 因为它不需要程序员管理内存。。
- 无匹配