基于Dialog程序,启动时不显示主窗口,只显示子窗口的实现

在项目中有如下的一个需求:
软件在网络启动状态下显示主窗口,而在单机状态下只显示其子对话框(我的是无模式的).
在网上找了一天,各种办法都似乎不太好,
不过晚上终于找到了一个不错的解决办法.
使得我很好的解决了这个问题.

    if (theApp.m_bUnConnect)
    {
        CRecordDlg* dlg;
        CWnd* m_pCWnd = this;
        dlg = new CRecordDlg(m_pCWnd);
        dlg->Create(IDD_DLG_RECORD,m_pCWnd);
        dlg->ShowWindow(SW_SHOW); 
        this->SetWindowPos(&wndTop,0,0,0,0,NULL);
    } // if ()
    else
    {
       ShowWindow(SW_MAXIMIZE);
    }

以上为我实现代码.
实现主窗口隐藏的是SetWindowPos(),从代码很容易理解出来,就是把主窗口的坐标设置为(0,0,0,0),也就是说把主窗口设置为一个点,并且点处于原点处.
其实是一种伪隐藏,可是它还是实现了隐藏,并且实现的效果相当不错,没有闪烁,也没有副作用(至少现在没有发现有).
不过要注意的是,无模式对话框关闭时候除了要DestroyWindow(),还需要PostQuitMessage(0);将主窗口给关闭掉,否则程序进程实际还在.

嘿嘿,实在是很不错的解决方案,简单有效.

时间: 2024-09-09 10:32:44

基于Dialog程序,启动时不显示主窗口,只显示子窗口的实现的相关文章

对话框的顺序-FC对话框应用程序中如何修改程序启动时默认的对话

问题描述 FC对话框应用程序中如何修改程序启动时默认的对话 我在程序中新建了多个对话框,如dialog1,dialog2,不想让默认的那个对话框作为启动时显示的,而想让dialog2作为第一个显示的对话框,有办法吗? 解决方案 App类的InitInstance函数中修改一下,添加DoModal()你的对话框,删除m_pMainWnd = &XXXXDlg;语句(如果有的话) 解决方案二: 求指导!

图标不重合-win7任务栏的图标创建后,程序启动时的图标没有与创建好的重合

问题描述 win7任务栏的图标创建后,程序启动时的图标没有与创建好的重合 通过::ShellExecute(NULL, L"TaskBarPin", strLnkFileName, NULL, NULL, SW_SHOW)把创建的程序快捷方式锁定到任务栏后,启动程序时图标没有与创建好的图标重合,出现同一个程序两个相同图标同时存在于任务栏的情况. 把图标锁定到任务栏的方法除了使用TaskBarPin以外还有谁知道有其他方法吗? 解决方案 delphi编的程序好像一定不能重合...

debug-关于c#程序启动时闪一下的问题

问题描述 关于c#程序启动时闪一下的问题 我做了一个winform程序 从别的程序调用这个winform 当右键项目属性时添加参数debug时 程序能启动 当不添加任何参数时 启动项目时winform只是闪了一下 请大神给个解决思路 解决方案 在program.cs中看下main函数,是怎么读取参数的.参数是干嘛的. 解决方案二: 因为没有参数,也许就进不了main函数了

Web程序启动时弹出如下图错误,怎么办?仅ie弹出,其他的浏览器都正常

问题描述 Web程序启动时弹出如下图错误,怎么办?仅ie弹出,其他的浏览器都正常 只有IE浏览器打开时弹出这个,其他浏览器都正常. 解决方案 可能是js写的不规范吧. 解决方案二: js操作IE浏览器弹出浏览文件夹js操作IE浏览器弹出浏览文件夹

Android程序启动时出现黑屏问题的解决方法_Android

本文实例讲述了Android程序启动时出现黑屏问题的解决方法.分享给大家供大家参考,具体如下: 关于黑屏: 默认的情况下,程序启动时,会有一个黑屏的时期,原因是,首个activity会加载一些数据,比如初始化列表数据.向服务器发送请求获取数据等等. 去除方法: 1.在style里面添加一个style: <style name="ContentOverlay"parent="@android:style/Theme.Light"> <itemname

rules-web程序启动时弹出jQuery.validationEngine错误,如何解决啊?

问题描述 web程序启动时弹出jQuery.validationEngine错误,如何解决啊? 启动web程序,有时会弹出jQuery.validationEngine rules are not loaded plz add localization files to the page提示错误.使用的是jquery.validationengine.js文件.请问各位大神应该如何解决啊?感激不尽! 解决方案 来个人帮忙解答一下子吧!!! 解决方案二: 没有加载规则文件.你加一个规则文件即可.比

程序启动时,屏幕加载时背景设置

问题描述 各位老师,请问:VB.net程序启动时,屏幕加载时背景怎样设置为任意图片? 解决方案 解决方案二:Me.BackGroundImage=System.Drawing.Image.FromFile("路径") 解决方案三:参考:SetMe.Picture=LoadPicture("D:testtest.jpg") 或者解决方案四:引用1楼wangnaisheng的回复: Me.BackGroundImage=System.Drawing.Image.From

三星On7如何将“单独的应用程序屏幕”切换为“在主屏幕上显示所有应用程序”

1单独的应用程序屏幕. 您可以按如下步骤将单独的应用程序屏幕切换为在主屏幕上显示所有应用程序. 2在主屏幕空白处长按. 3点击[主屏设置]. 4点击[主屏幕内容]. 5将[在主屏幕上显示所有应用程序]勾选. 6点击[应用]. 7仔细阅读屏幕弹出信息后,点击[确定]. 8已切换为直接在主屏幕显示所有应用程序.向左滑动页面. 9即可查看并点击需要使用的应用程序

Android程序启动时出现黑屏问题的解决方法

本文实例讲述了Android程序启动时出现黑屏问题的解决方法.分享给大家供大家参考,具体如下: 关于黑屏: 默认的情况下,程序启动时,会有一个黑屏的时期,原因是,首个activity会加载一些数据,比如初始化列表数据.向服务器发送请求获取数据等等. 去除方法: 1.在style里面添加一个style: <style name="ContentOverlay"parent="@android:style/Theme.Light"> <itemname