如何创建和使用无模式对话框
来源:互联网 发布:淘宝用是谁写的 编辑:程序博客网 时间:2024/05/21 09:25
如何创建和使用无模式对话框
MFC将模式和无模式对话封装在同一个类中,但是使用无模式对话需要几个对话需要几个额处的步骤。首先,使用资源编辑器建立对话资源并使用ClassWizard创建一个CDialog的派生类。模式和无模式对话的中止是不一样的:模式对话通过调用CDialog : : EndDialog 来中止,无模式对话则是调用CWnd: : DestroyWindow来中止的,函数CDialog : : OnOK和CDialog : : OnCancel调用EndDialog ,所以需要调用DestroyWindow并重置无模式对话的函数。void CTDialog : : OnOK ( )
{
// Retrieve and validate dialog data .
if (! UpdateData (TRUE) )
{
// the UpdateData rountine
will set focus to correct item TRACEO (" UpdateData failed during dialog termination .\n")
return
}
//Call DestroyWindow instead of EndDialog .
DestroyWindow ( )
}
void CTDialog : : OnCancel ( )
{
//Call DestroyWindow instead of EndDialog .
DestroyWindow ( )
}
其次,需要正确删除表示对话的C++对象。对于模式对来说,这很容易,需要创建函数返回后即可删除C++对象;无模式对话不是同步的,创建函数调用后立即返回,因而用户不知道何时删除C++对象。撤销窗口时工作框调用CWnd : : PostNcDestroy,可以重置该函数并执行清除操作,诸如删除this指针。
void CTDialog : : PostNcDestroy ( )
{
// Declete the C++ object that represents this dialog.
delete this
最后,要创建无模式对话。可以调用CDialog : : DoModal创建一个模式对放,要创建一个无模式对话则要调用CDialog: : Create。下面的例子说明 了应用程序是如何创建无模式对话的: 象;无模式对话不是同步的,创建函数调用后立即返回,
void CMainFrame : : OnTDialog ( )
{
//Allocate a modeless dialog object .
CSampleDilog * pDialog =new CSampleDialog
ASSERT_VALID (pDialog) Destroy ( )
//Create the modeless dialog . represents this dialog.
BOOL bResult = pDialog —> Creste (IDD_IDALOG)
ASSERT (bResult )
}
0 0
- 如何创建和使用无模式对话框
- 如何创建和使用无模式对话框
- 如何创建无模式对话框
- 无模式对话框的创建与使用
- 无模式对话框的创建与使用
- MFC创建有模式对话框和无模式对话框
- 模式对话框和无模式对话框的创建总结
- 创建无模式对话框
- 创建无模式对话框
- 创建无模式对话框
- dll创建无模式对话框
- 无模式对话框的创建与使用(转自VCKBase)
- 模式和无模式对话框
- 有模式对话框和无模式对话框
- 模式对话框和无模式对话框 区别
- 无模式对话框的创建分析 (copy)
- 有模式和无模式对话框
- 如何使用标准按钮创建无模式 CPropertySheet
- java socket编程
- 监听本机端口获取数据
- 将博客搬至CSDN
- JAVA 编码机制
- 静态加载问题
- 如何创建和使用无模式对话框
- 中间缓存变量机制
- PHP
- 插入排序--直接插入
- 交换机三种端口模式
- ORACLE日期,字符函数大全
- 折半查找
- Java初始化
- YII中CDetailView下使用CHtml image()显示图片的正确用法