* * 解决方法1——使用成员变量 把对话框对象定义为视类的成员变量。 注意:在销毁对话框之前,Create函数只能调用一次,否则会出错。 void CMainFrame::OnTest() { static BOOL bFlag = TRUE; if (TRUE == bFlag) { dlg.Create(IDD_DIALOG1, this); bFlag = FALSE; } dlg.ShowWindow(SW_SHOW); } 创建非模式对话框 * * 解决方法2——使用推内存 把对话框对象定义为指针,在堆上分配内存。 void CMainFrame ::OnTest() { CMyDialog* pDlg = new CMyDialog; pDlg-Create(IDD_DIALOG1, this); pDlg-ShowWindow(SW_SHOW); } 注意:该程序存在问题。由于没有办法释放这个指针变量所指向的那块内存,会出现内存泄漏~! 消除内存泄漏的办法:1.指针变量定义成全局变量;或者 2.重载对话框的PostNcDestroy函数,添加代码 delete this. 创建非模式对话框 * * 利用GetDlgItem改变控件文本内容 void CMyDialog::OnNumber1() { CString str; GetDlgItem(IDC_NUMBER1)-GetWindowText(str); if (str == Number1:) GetDlgItem(IDC_NUMBER1)-SetWindowText(数值1:); else GetDlgItem(IDC_NUMBER1)-SetWindowText(Number1:); } 注意:静态文本框在默认状态下是不发送通告消息的。改变这一默认状态,必须在属性窗口选中Notify这个选项。 访问控件的七种方法 * * 在窗口创建之前更改 更改窗口大小、标题、风格 如果希望在应用程序窗口创建之前修改它的大小、标题和风格,应该在CMainFrame类的PreCreateWindow成员函数进行。 该函数有个类型是CREATESTRUCT结构的参数,如果在修改了这个参数中的成员变量的值,那么这种改变会反映到MFC底层代码中,当MFC底层代码调用CreateWindowEx函数去创建窗口时,它就会使用改变后的参数值去创建这个窗口。 * * 在窗口创建之后更改其风格 在应用程序窗口创建之后修改它的风格属性,可在CMainFrame类的ONCreate函数中调用SetWindowLong函数实现。 SetWindowLong(HWND hWnd, int nIndex, LONG dwNewLong) 该函数的作用是改变制定窗口的属性(包括设置新的窗口风格、设置新的窗口过程、设置新的应用程序实例局柄等)。要改变窗口的风格,则将该函数的第二个参数指定为GWL_STYLE,然后由第三个参数指定新的窗口风格。 更改窗口大小、标题、风格 * * 在窗口创建之后更改 更改光标、标题栏图标、窗口背景 要在应用程序窗口创建之后修改它的光标、图标和背景,可在OnCreate函数中调用SetClassLong函数实现。 SetClassLong(HWND hWnd, int nIndex, LONG dwNewLong) 该函数的作用是:重新设置指定窗口所属窗口类的WNDCLASS结构体中指定数据成员的属性(包括设置新的窗口背景画刷、光标、图标和窗口类样式)。 * * 注意事项 更改光标、标题栏图标、窗口背景 在MFC中,如果要修改应用程序窗口的图标,则应该框架类中进行,因为框架窗口才有标题栏;如果要修改程序窗口的背景和光标,则应该在视类中进行。 * * 程序与进程(简答) 进程与线程 程序:计算机指令的集合,它以文件的形式存储在磁盘上。 进程:通常被定义为一个正在运行的程序的实例,是一个程序在其自身的地址空间中的一次执行活动。 进程是活的,是资源申请、调度和独立运行的单位,因此,它使用系统中的运行资源;而程序是死的,它不占用系统的运行资源。 * * 进程与线程 进程与线程 进程是不活泼的。进程从来不执行任何东西,它只是线程的容器。若要使进程完成某项操作,它必须拥有一个在它的环境中运行的线程,此线程负责执行包含在进程的地址空间中的代码。 单个进程可能包含若干个线程,这些线程都“同时” 执行进程地址空间中的代码。 每个进程至少拥有一个线程,来执行进程的地址空间中的代码。当创建
您可能关注的文档
- SQLServer2005DataMining数据挖掘概览.doc
- SSC-WiFi-232用户使用手册.doc
- staruml_详细教程.ppt
- STC12C5A60S2精简开发板带232及485产品使用手册.doc
- STM32单片机MODBUS通讯器毕业论文.doc
- Storage 存储管理.ppt
- surfer成等值线图流程.doc
- SWIFT电文信用证中常见项目表示方法.doc
- TCP连接建立及终止过程剖析.ppt
- TEM最新进展及发展趋势.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)