27. 在 dlg1 中打开 dlg2 时,dlg2 能修改 dlg1 中的成员变量
//dlg1.cpp
//dlg2.h
class CDlg1;//添加dlg1类的声明
class CDlg2 : public CDialog
{
...
public:
}
//dlg2.cpp
#include "dlg1.h"
至此,你可以在dlg2.cpp中通过m_pDlg1操作CDlg1类中的成员变量了。
28. 改变对话框字体,对话框大小改变的问题
How to calculate dialog box units based on the current font in Visual C++
http://support.microsoft.com/kb/q145994/
How To Calculate Dialog Base Units with Non-System-Based Font
http://support.microsoft.com/kb/125681/en-us
29. 进行大数据量计算的时候,导致界面挂起无响应的问题
当在程序中需要进行大数据量计算的时候(比如搜索磁盘,大数据量传输等),由于这些计算过程是在界面线程(UI Process)中,由此引发了界面线程的消息阻塞。我们创建一个工作线程(worker thread)来处理计算过程,以解决该问题。
下面是一个简单的创建一个工作线程的实现:
//xxxdlg.h
static UINT MyThread(LPVOID pParam);
CWinThread* pMyThread;
//xxxdlg.cpp
CXXXDlg::OnButton1()
{
pMyThread = AfxBeginThread(MyThread, this);
pMyThread = NULL;
}
UINT CXXXDlg::MyThread(LPVOID pParam)
{
CXXXDlg *pDlg = (CXXXDlg *)pParam;
//这里添加计算过程
return 0;
}
30. 工程资源的合
以把B对话框的资源插入到A对话框为例:
(1) 生成一个*.ogx文件
打开B工程,在ClassView中鼠标右键点击所需的对话框类,单击"Add to Gallery"。
这时,会在 " C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Gallery\工程B " 的目录下产生一个ogx文件。
(2) 插入该*.ogx文件
打开A工程,选择菜单Project->Add To Project->components and controls... ,选择刚生成的ogx文件,然后Insert。
这时B对话框资源和对话框类就插入到A中了。。