备忘
来源:互联网 发布:九次方大数据副总工资 编辑:程序博客网 时间:2024/04/29 21:36
frost_sullivan是个电信专家,他关注人工智能、网络、电信
VC 关闭应用程序标题栏AERO效果(关闭透明化效果)
最近项目中要在标题栏添加自定义按钮,像QQ聊天窗口中“窗口设置”那个按钮一样,查阅了大量资料,使用网上现成NCBUTTON类,在不开启AERO效果情况下比较理想,但是一开启AERO就看不到按钮了,故又要想法关闭应用程序的AERO;
因为不可能要求用户把整个WIN7系统的都关闭了,所以只能编程实现关闭本程序的既可;
方法如下:
一,对于没有使用功能区的(CMFCRIBBONBAR)的界面,可以直接使用以下API进行完成;
BOOL bDwm ;
DwmIsCompositionEnabled(&bDwm); //判断系统是否开启了AERO效果
if (bDwm)
{
DWMNCRENDERINGPOLICY ncrp = DWMNCRP_DISABLED;
DwmSetWindowAttribute(this->m_hWnd, DWMWA_NCRENDERING_POLICY, &ncrp, sizeof(ncrp));//禁用程序的AERO效果;
}
需要引入头文件和LIB库
#include <dwmapi.h>
#pragma comment(lib, "dwmapi.lib")
以上方法,在DIALOG和非功能区项目中都达到我效果,但是在使得了CMFCRIBBONBAR时,标题栏就像被重绘了,变的很乱和不稳定,于是又找到下面的第二种方法;
二,在RIBBONBAR创建前添加
afxGlobalData.bDisableAero = TRUE;即可
参考文章:http://social.msdn.microsoft.com/Forums/vstudio/zh-CN/1526222f-6893-40f2-8332-b1a7738726f5/mfc-application-block-aero-peek-caption
PS:关于微软的AERO机制还是要详细查问一下有关DWM的知识才能理解;
以上代码测试环境为VS2008SP1
- 备忘
- 备忘
- 备忘
- 备忘
- 备忘
- 备忘
- 备忘
- 备忘
- 备忘
- 备忘
- 备忘
- 备忘
- 备忘
- 备忘
- 备忘
- 备忘
- 备忘
- 备忘
- ASP.net 假伪刷新上传
- Oracle数据库、实例、用户、表空间、表之间的关系
- isimular描述
- 【转载】我们从UNIX之父丹尼斯身上学到了什么
- 区间覆盖问题(贪心)
- 备忘
- The WFS and WMS Services OGC Web Services for accessing Geographic Data
- Ant自定义任务,抛出StackOverflowError异常
- input autocomplete="off"
- 购物车
- 从iOS开发者大会pdf看到的一些东西,跟大家分享
- c语言输入输出函数printf与scanf的用法格式
- csdn第一天上课的作业——编写百度首页效果
- Android context(Application/Activity)与内存泄露