之前在网络上找了一份mfc对话框启动就直接隐藏窗体,在右下角显示托盘图标的demo

在win7下可以正常使用,但在win10上直接溢出,导致计算机跟注销似的崩溃现象。

后来找到原因是因为在OnInitDialog 中 执行了 SetWindowPlacement()(函数设置指定窗口的显示状态和恢复,最大化,最小化位置)

操作,然后在执行的时候由于只是给下面几个值做了赋值,然而主要的位置信息没有赋值

WINDOWPLACEMENT wp;

    wp.length = sizeof(WINDOWPLACEMENT);
wp.flags = WPF_RESTORETOMAXIMIZED;
wp.showCmd = SW_HIDE;

在win10上执行的时候就溢出了

在上面的操作中需要获取一下位置值

WINDOWPLACEMENT wp;
GetWindowPlacement(&wp); //再次获取尺寸等信息,要不然会溢出(win10上崩溃)
wp.length = sizeof(WINDOWPLACEMENT);
wp.flags = WPF_RESTORETOMAXIMIZED;
wp.showCmd = SW_HIDE;
SetWindowPlacement(&wp);

后来又做了些修改,导致程序执行上面的隐藏操作不起作用在OnInitDialog 里

为了解决这个问题,就添加了消息处理函数 PreTranslateMessage

在消息处理函数中通过自定义消息 来隐藏窗口(想到这个方法是由于后来窗口起来之后手动点击隐藏操作就可以实现隐藏,但直接在OnInitDialog  里就不起作用)

自定义消息:

#define WM_HIDMESSAGE (WM_USER+1)

在OnInitDialog 最后发送该消息:

PostMessage(WM_HIDMESSAGE, NULL);

在PreTranslateMessage里处理该消息:

this->ShowWindow(SW_HIDE);

就实现了窗口启动隐藏功能了,不过,不过,会在右下角闪一下窗体在隐藏,效果不理想啊。

再后来就在OnInitDialog  发送隐藏消息之前加了句窗体最小化操作:

ShowWindow(SW_MINIMIZE);

很奇怪在OnInitDialog  执行 最小化操作就能起作用。

就这样先执行最小化操作,然后再执行隐藏操作,两者结合就能实现效果还不错的窗体启动就隐藏,在右下角显示托盘图标

mfc对话框启动就直接隐藏在右下角显示托盘图标的更多相关文章

  1. MFC对话框编程详细学习笔记

    因最近研究工作要用到MFC,故再次重温了孙鑫老师的MFC对话框编程,因所用的编译软件为VS2008,与视频中孙老师使用的VC++6.0有很大出入,造成很大不便,我通过各方查找,实现了VS2008相对应 ...

  2. 【转】MFC对话框和控件

    原文网址:http://www.cnblogs.com/tiwlin/archive/2013/05/08/3067966.html 对话框和控件 对话框是Windows应用程序中一种常用的资源,其主 ...

  3. NX二次开发-BlockUI对话框嵌套MFC对话框制作进度条

    半年前在一些QQ群看到有大神NX二次开发做出了进度条,那个时候我还不会弄,也不知道怎么弄得,后来断断续续得研究了一下,直到今天我把它做出来了.内心还是很喜悦的!回想自己这两年当初从没公司肯给我做NX二 ...

  4. MFC对话框和控件

    对话框和控件 对话框是Windows应用程序中一种常用的资源,其主要功能是输出信息和接收用户的输入数据.控件是嵌入在对话框中或其它父窗口中的一个特殊的小窗口,它用于完成不同的输入.输出功能.对话框与控 ...

  5. MFC对话框显示BMP图片

    1.MFC对话框显示BMP图片我们先从简单的开始吧.先分一个类: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) (二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) ...

  6. MFC对话框中使用CHtmlEditCtrl

    MFC对话框中使用CHtmlEditCtrl 感谢原帖作者: http://blog.csdn.net/tingya/article/details/2028172 我在VS2008校正了一些代码. ...

  7. MFC对话框中显示BMP,JPG图片

    //************************************ // 方法说明:    显示JPG和GIF.BMP图片 // 参数说明:    CDC * pDC           设 ...

  8. OSG+MFC对话框程序

    OSG的sample里面有OSG+MFC+MDI的例子. 网上有说OSG+MFCSDI的例子,如http://blog.csdn.net/xuguangsoft/article/details/816 ...

  9. 利用OpenCV和MFC对话框建设一个有滑动条控制的播放器--转

    (一)问题的提出: OpenCV有一个很简单的播放视频文件并加载滑动条的程序,但是如何用MFC对话框来创建一个有滑动条控制的播放器呢,网络上四处搜索都没有代码可以参考,下的都是些骗子链接文件,很过分, ...

随机推荐

  1. NOI 模拟赛

    T1 Article 给 $m$ 个好串,定义一个字符串分割方案是好的当且仅当它分割出来的子串中"是好串的子串"的串长占原串串长超过 85%,定义一个好的分割方案的权值为这种分割方 ...

  2. BZOJ1345 Baltic2007 序列问题Sequence 【思维题】*

    BZOJ1345 Baltic2007 序列问题Sequence Description 对于一个给定的序列a1,…,an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和ai+1用 ...

  3. 《DSP using MATLAB》第7章开始 Example7.1

    FIR低通滤波器的设计要求示意图:

  4. linux tcpdump命令抓包

    tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) 截获主机210.27.48.1 和主机210.27.48.2 或210.27 ...

  5. Sql Server 2012 存储过程的调试

    [一]Sql Server 关于存储过程调试SQL2000是在查询分析器中的对象浏览器中选中需要调试的存储过程,右键----调试---输入参数开始调试.sqlserver2008中则完全不同,变成了必 ...

  6. php 必须了解提升的知识

    https://blog.csdn.net/m18513057343/article/details/78974292

  7. winform 控件随页面大小进行自适应

    这个功能网上很多人在问,也有不少人给出过答案,经过实际使用,觉得网上这段代码实现的效果比较好,记录一下 核心代码就是下面这个类 using System; using System.Collectio ...

  8. 微服务架构 vs. SOA架构

    面向服务架构(SOA)已经存在有些年头了,这是一种用于设计软件的伟大原则.在SOA中,所有组件都是独立自主的,并能为其他组件提供服务.要替换掉系统中的某些部分而不对整个系统造成较大的影响本是个难题,然 ...

  9. 数组与指针的区别,以及在STL中传递数组/指针

    数组和指针在作为实参传入T[] 或T*的形参时没有区别 void f(int pi[]) { cout << sizeof(pi) << endl; } int a[5] = ...

  10. Required String parameter 'id' is not present

    问题详情:       简单的说,我就是通过ajax发起了一个post请求到后台,但是后台没有收到请求发过去的参数,并且还报了这样的错误.       错误描述告诉我们,请求参数里面并没有存在id.我 ...