MFC:如何判断非模态对话框已经创建了
来源:互联网 发布:windows loader v3.27 编辑:程序博客网 时间:2024/05/01 21:40
MFC:如何判断非模态对话框已经创建了
在使用MFC做UI时,经常会进行不同界面(对话框)之间的切换。这时就需要去判断对话框是否已经被创建。创建非模态对话框的两种方式:类的对象与类的指针。
现有类 classCTestDialog : public CDialog { }.
1. 使用类的对象处理对话框
CTestDialog m_TestDialog; //定义类CTestDialog的对象
if(m_TestDialog.GetSafeHwnd()) //为TRUE 说明对话框已经被创建
{
m_TestDialog.ShowWindow(true);
}
else
{
m_TestDialog.Create(IDD_TEST_DIALOG);
}
2. 使用类的指针处理对话框
CTestDialog * p_TestDialog; //定义类CTestDialog的指针
p_TestDialog= NULL;
if (p_TestDialog== NULL) //直接判断指针是否为空来判断对话框是否被创建
{
p_TestDialog = new CTestDialog ();
p_TestDialog ->Create(IDD_TEST_DIALOG);
p_TestDialog->ShowWindow(SW_SHOWNORMAL);
}
else
{
p_TestDialog->ShowWindow(SW_SHOWNORMAL);
}
3. 两者的区别:
引用成员时:对象用" . "操作符; 指针用" -> "操作符。
类的对象:是利用类的构造函数在内存中分配一块内存;用的是内存栈,是个局部的临时变量。
类的指针:是一个内存地址值,他指向内存中存放的类对象;用的是内存堆,是个永久变量,除非你释放它。
关于生命期周: 对象:若是成员变量,则是类的析构函数来释放空间;若是函数中的临时变量,则作用域是该函数体内。而指针:则需利用delete 在相应的地方释放分配的内存块。
C++的精髓之一就是多态性,只有指针或者引用可以达到多态,对象不行。
用指针:第一能实现多态;第二,在函数调用,传指针参数。不管你的对象或结构参数多么庞大,你用指针,传过去的就是4个字节。如果用对象,参数传递占用的资源就太大了。
但指针比较危险,new的内存一定得用delete才能释放,需注意。
- MFC:如何判断非模态对话框已经创建了
- 如何判断对话框已经初始化
- 判断是否已经关联了对话框
- MFC 创建非模态对话框
- MFC创建非模态对话框
- MFC如何判断一个进程已经存在
- MFC中如何判断对话框是否显示
- MFC创建主对话框为非模态对话框
- MFC创建一个非模态对话框
- MFC 非模态对话框 创建 销毁
- MFC--非模态对话框的创建
- MFC 判断子窗体是不是已经打开,避免重复创建
- 如何创建非模态对话框
- 如何创建非模态对话框?
- 如何判断一个alarm是否已经被创建
- mysql创建数据表时如何判断是否已经存在?
- mysql创建数据表时如何判断是否已经存在?
- iOS之如何判断已经过了多长时间
- Hadoop installation. Build native library
- 重构之度
- 8 数据存储与IO
- poj1017
- 杂七杂八 - 进制转换
- MFC:如何判断非模态对话框已经创建了
- Android 2.x版本使用ActionBar-强制显示OverflowButton
- 《Xcode基本用法》如何运行C/C++/Object-C程序
- strstr的非KMP实现方法
- hdu2126---Buy the souvenirs(01背包方案数)
- hdu1202
- LoadRunner教程08:HTML和URL比较
- leetcode-53 Maximum Subarray
- 关于 PCRE_UTF8 support 问题