MFC 之 对话框程序后台运行

基于对话框的的程序,如果要达到完全运行时隐藏,光将对话框的Visible属性设为FALSE是不够的,因为副对话框在App初始化的时候一个DoModal(),对话框就会显示出来,如果在对话框的OnInitDialog()使用如下两行代码:

SetWindowPos(&wndBottom, 0, 0, 0, 0, SWP_HIDEWINDOW); ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);

虽然能去掉窗体和任务栏上的图标,但避免不了,程序窗口的一闪,而且,在任务管理器的任务列表里会有该程序的运行图标。

如果在App的InitInstance()里将显示对话框的模式从“模式”改写为“无模式”,则能达到后台执行该对话框程序的目的,首先将父对话框的Visible属性设为FALSE,然后在程序的App类中定义一个成员变量:

CWnd* m_pWnd;

在程序的App类里面的InitInstance()里面将模式显示部分注释掉,改为:

CMyTestDlg* pDlg = new CMyTestDlg(); m_pWnd = pDlg; m_pMainWnd = pDlg; return pDlg->Create(IDD_MYTEST_DIALOG);

重写ExitInstance(),加入:

delete m_pWnd;

这样就达到了后台启动MFC对话框程序了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值