VC++6.0线程中创建非模态对话框体会

原创 2007年09月27日 10:44:00

       关于 线程中创建非模态对话框 我试了很多方法,但是结果都是令人失望没有成功。但是经过我不懈的尝试终于找到了一个自己的方法,我不知道是否是标准的方法。估计有很多人都遇到过  线程中创建非模态对话框  的难题,所以我把我的方法拿出来供大家共同学习交流之用。

主要以下方法针对基于对话框的程序。

#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);

}

MFC简单的在对话框程序中加工作线程

要写的代码非常少就不发工程了,步骤如下 建一个基于对话框工程,添加一个按钮,一个editbox,editbox绑定一个control变量c_edit 然后在oninitdialog中加int iIns...
  • a949308398
  • a949308398
  • 2013年11月28日 20:58
  • 853

vc 基于对话框多线程编程实例——线程之间的通信

实例:
  • sj19890401
  • sj19890401
  • 2015年01月07日 11:45
  • 674

在mfc的子线程中创建非模态的对话框出现的问题

前几天在编写一个程序的时候,需要在一个
  • bobopeng
  • bobopeng
  • 2014年08月05日 22:59
  • 1776

关于MFC下多线程,在线程中创建非模态对话框以及消息传递

多线程,非模态对话框,消息传递,定时器
  • DirkNow
  • DirkNow
  • 2011年05月13日 21:42
  • 7517

Windows多线程与对话框

Windows的对话框是获取信息输入的主要手段,增加线程则是获得更好UI响应的重要方式。由于Windows在处理对话框时进行线程调度的特殊性,如果不对此加以特别注意,增加线程可能不能带来UI响应的改善...
  • SzMinglove
  • SzMinglove
  • 2012年10月19日 11:52
  • 611

android学习笔记之多线程与结合对话框

学了一点东西,就想着把他们组合起来,这不,在点击开始后,进度条开始运行,当那个进度条满的时候,就弹出完成的对话框。 MyProgressBar_Handler.java MyProgressBar_...
  • tiankonguse
  • tiankonguse
  • 2014年02月20日 14:47
  • 455

MFC非模态对话框的创建及显示

我们需要在原对话框CMFC_Kinect_TrackingDlg设计一个按钮,点击这个按钮后弹出一个非模态对话框Color_Based_SettingDlg, 并且同时两个对话框都是激活状态,都可以...
  • denyz
  • denyz
  • 2016年03月05日 11:05
  • 938

VC6.0+MFC+多线程,编写停表小程序

暑假期间,在学校做项目。项目
  • jliuj
  • jliuj
  • 2014年10月12日 21:37
  • 826

vc++ 应用源码包_4

  • 2012年09月15日 14:38
  • 46.89MB
  • 下载

模态窗口

一. 简介 1. 简介 由于在iOS中并没有专门的模态窗口类,模态窗口(modal)在iOS中只是视图控制器显示的一种方式,模态窗口方便快捷,它不依赖于控制器容器(如UITabBarContr...
  • SSIrreplaceable
  • SSIrreplaceable
  • 2016年08月27日 18:25
  • 1342
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC++6.0线程中创建非模态对话框体会
举报原因:
原因补充:

(最多只允许输入30个字)