VC++6.0线程中创建非模态对话框体会
来源:互联网 发布:mac excel 日期快捷键 编辑:程序博客网 时间:2024/06/06 05:42
关于 线程中创建非模态对话框 我试了很多方法,但是结果都是令人失望没有成功。但是经过我不懈的尝试终于找到了一个自己的方法,我不知道是否是标准的方法。估计有很多人都遇到过 线程中创建非模态对话框 的难题,所以我把我的方法拿出来供大家共同学习交流之用。
主要以下方法针对基于对话框的程序。
#define UM_CREATE_DLG WM_USER+105 //创建对话框的消息
#define UM_DELETE_DLG WM_USER+106 //销毁对话框的消息
afx_msg void OnCreateDlg(WPARAM,LPARAM);//消息函数声明
afx_msg void OnDeleteDlg(WPARAM,LPARAM);
ON_MESSAGE(UM_CREATE_DLG,OnCreateDlg)//消息映射
ON_MESSAGE(UM_DELETE_DLG,OnDeleteDlg)
void CLANCommunionDlg::OnCreateDlg(WPARAM wParam,LPARAM lParam )
{
CTransportInfoDlg* p=(CTransportInfoDlg*)wParam; //CTransportInfoDlg为非模态对话框类
p->Create(IDD_TRANSPORTINFO_DLG,this); //IDD_TRANSPORTINFO_DLG为非模态对话框资源ID
p->ShowWindow(SW_SHOW);
}
void CLANCommunionDlg::OnDeleteDlg(WPARAM wParam,LPARAM lParam )
{
CTransportInfoDlg* p=(CTransportInfoDlg*)wParam;
p->DestroyWindow( );
p=NULL;
//注意在非模态对话框类中添加 PostNcDestroy()函数,并在其中添加 Delete This;
/*即
void CTransportInfoDlg::PostNcDestroy()
{
// TODO: Add your specialized code here and/or call the base class
delete this;
}
*/
}
UNIT WorkThread(LPVOID param)
{
CWnd* pParent=主对话框类;
CTransportInfoDlg* pDialog=new CTransportInfoDlg();
pParent->SendMessage(UM_CREATE_DLG,(WPARAM)pDialog);
//做你要做的事情。
pParent->SendMessage(UM_DELETE_DLG,(WPARAM)pDialog);
}
- VC++6.0线程中创建非模态对话框体会
- VC 线程创建对话框
- 线程中创建对话框
- vc++6.0 中创建查找搜索对话框
- vc dll中创建对话框
- 子线程中创建对话框
- VC中创建新线程
- VC中创建线程分析
- VC中创建线程分析
- VC中创建线程分析
- VC中创建线程分析
- VC中创建线程分析
- VC中线程的创建
- vc++中字体对话框的创建
- MFC,在线程中创建对话框
- VC非模态对话框创建和销毁
- VC非模态对话框创建和销毁
- VC非模态对话框创建和销毁
- 使用控件的RenderControl()方法导出Excel
- 用Visual C#开发WinForm的应用程序
- dddd
- 文件系统对象模型
- 计算机与数学的关系
- VC++6.0线程中创建非模态对话框体会
- 小心你的构造函数
- using namespace std
- 创建文本文件实例
- iframe框架高度自适应的实现
- TD7.6字段中英文对照表
- window.open和window.close
- DLL(Dynamic Linkable Library)
- uml时序图(转载)