美化你的应用程序的外观界面

很多编程爱好者都有这样的经历,自己写的程序非常漂亮,但是在Windows平台下开发的程序却总是逃不出Windows默认风格的约束。标题栏、工具栏,一成不变的风格使得再有创意的作品也黯然失色。下面我们给对话框应用程序进行一次外科手术,旨于向各位读者介绍一种方法,希望大家在此基础上有进一步的发展。

本例以对话框应用程序为基础,自画非客户区,完成应用程序美化,代码运行效果图如下:

下面我们来探讨具体的实现过程

一、定义资源:

添加系统按钮的位图资源(本例中使用十个位图,分别显示帮助、最小化、最大化、恢复及关闭按钮的普通状态和焦点状态,当然可随程序的要求自定义添加)

二、定义全局变量及函数:

CRect m_rtButtExit;  //关闭按钮位置
    CRect m_rtButtMax;  //最大化按钮位置
    CRect m_rtButtMin;  //最小化按钮位置
    CRect m_rtButtHelp;  //帮助按钮位置
    CRect m_rtIcon;    //图标位置
    void DrawTitleBar(CDC *pDC);  //画非客户区主函数

三、函数实现:

本例需要对以下消息进行重载DefWindowProc、ON_WM_NCMOUSEMOVE、ON_WM_NCLBUTTONDOWN。

函数实现体如下:

//主函数,可根据实际情况进行自绘窗体void CTitleBarDlg::DrawTitleBar(CDC *pDC)
   {
     if (m_hWnd)
     {
       CBrush Brush(RGB(0,100,255));
       CBrush* pOldBrush = pDC->SelectObject(&Brush);
       CRect rtWnd, rtTitle, rtButtons;
       GetWindowRect(&rtWnd);
   ……………………………..
   //因代码过长,未贴,见源程序
   ……………………………...
   }
   }
  

时间: 2024-10-03 10:29:04

美化你的应用程序的外观界面的相关文章

WEB程序员,界面美化是你心中永远的痛吗?

回想自己从事WEB方面的开发已经有6-7年,对于各种Web技术都已经非常熟悉.可是,身为程序员的我对于制作B/S表单界面的事着实心痛.心痛1:很多后端代码和逻辑要写,可我还不得不费力的在各种网页制作工具中拖放控件放到美工提供的美术模板中.再配上css写上javascript.表单大一点够我弄上一整天.心痛2:表单这东西,不是老手还干不了,又要漂亮又要有功能所以要和各种各样的table,td,div,javascript,css打交道.稍微不注意,显示效果就和所想的不一样,最后这种事情全成了老手门

人脸检测-下载的mfc程序如何更改界面按钮。急求!

问题描述 下载的mfc程序如何更改界面按钮.急求! 2C 在做车辆识别的研究,下载了一个人脸检测的程序,不知道如何把工具栏的"人脸检测"修改成"车辆检测"有会的大神,希望帮忙解答. 解决方案 直接看代码,查找对应修改不就行了 或者你到RC对应修改菜单就行了 解决方案二: 如果有源代码,直接修改:如果没有源代码,可以考虑使用资源修改器等工具,改一个字符串还是很简单的. 解决方案三: 好像是在工程资源视图下可以改正 解决方案四: 打开资源,找到菜单,里面可以直接修改 解

精通Grails: 改变Grails应用程序的外观

欢迎阅读第二年度的 精通 Grails.正如我在 2008 年的最后一篇文章中许诺的一样,在新的一年将 使用新的应用程序.再见了,Trip Planner!让我们欢迎 blog 发布系统(blog publishing system)! 我已经将这个应用程序命名为 Blogito.在西班牙语中,它表示 "little blog",或者是对笛卡儿 的 Cogito ergo sum("我思故我在")表示敬意.可从 blogito.org 下载这个完整的应用程序.在接

面对万年不变的win7扫雷程序的外观,下面教你怎么来改变它

扫雷是很多人闲着无聊用来打发时间的小游戏,而很多人都不知道,扫雷的外观是可以更换的,这样你就不用万年对着同样的外观.有时候更改下扫雷的外观能让你一下子破纪录了. 1 更改外观的方法太简单了 只需要你在扫雷游戏里面,点击游戏,然后选择更改游戏外挂就行了.如图: 2 里面有个随机外观的功能,个人建议使用这个,这样能让你在下局扫雷游戏开始就有惊喜了,也不行让你一天对着一样的外观. 以上是关于面对万年不变的win7扫雷程序的外观,我们要怎么样来改变它 ,我想上面的方法很简单现在的你肯定会了.而对于那些电

c++-怎样给C++程序加个界面

问题描述 怎样给C++程序加个界面 我在VS2013上写了2个C++项目(用来实现socket通信,一个项目是客户端,一个是服务器). 现在想给它加个界面,可是鄙人只会MFC和C#. 怎样可以比较省事加一个界面给它呢? 或者说怎样可以比较容易根据现在的C++代码来重写个C#项目 解决方案 最简单的就是用托管的C++,那样除了语法略微改变,和C#做的一样,也使用WinForms 解决方案二: 也就是VS中新建一个C++ -> Windows Forms项目 解决方案三: WIN32和MFC都可以,

c#-ArcEngine 查拓扑程序 一运行 界面就都看不见 像卡死

问题描述 ArcEngine 查拓扑程序 一运行 界面就都看不见 像卡死 C# 语言利用ArcEngine编写的检查拓扑程序,程序在打开mdb数据加载要素集的过程中,界面就不响应了,鼠标等待状态也不出现,就这几秒的时间内,程序其实正在运行,但是界面却毫无响应,请问, 我要如何才能解决这种Form界面假死的现象... 解决方案 好吧,今天又试了试,终于找到原因了,原来在这个backgroundWorker 中创建了一个全局变量的拓扑过程,把这个取消掉,改为只加载图层,mdb就不会锁定了,问题解决了

visual studio 2010-打不开VS2010中qt设计的.ui文件,但是程序运行时界面正常。是什么原因呢?

问题描述 打不开VS2010中qt设计的.ui文件,但是程序运行时界面正常.是什么原因呢? 解决方案 重启启动下,再编译看看,你有没有人为修改过里面的东西,再不行重新删除了创建一次.设计器对代码的格式等都有限制,你的代码是合法的,人工写的可能还是造成设计器不识别. 解决方案二: 在VS上开发过Qt程序,在VS上安装Qt插件,就可以打开了 解决方案三: 是不是因为 QT 的版本,或者 VS的版本不匹配.

34个漂亮的应用程序后台管理系统界面(系列二)

今天这篇文章收集了34个漂亮的应用程序后台管理界面分享给大家.这些界面都是来自themeforest网站,虽然直接下载需要付费的,不过大部分都提供了在线预览,所以完全能够复制下来,有的提供了预览图,设计师可以根据预览图自己设计.希望这些漂亮的后台管理界面设计案例能帮助到你.(有登录界面的,点击登录即可进入后台界面) Flexy Admin Broom Cupboard Admin Skin Fresh CMS Ultimate Admin Panel Solution Titanium Wide

Kubuntu美化修改GNOME/GTK程序外观

GTK程序如果什么都不改的话在KDE4下面会是"裸体"的,Kubuntu默认装了gtk2-engines-qtcurve(见系统设置-自动启动). 如果你想GTK程序在KDE4下面使用GNOME主题,可以这样. sudo apt-get install gtk-theme-switch 然后运行 gtk-theme-switch2,选择主题 土黄色的Human 你可以在KPackageKit里http://www.aliyun.com/zixun/aggregation/8601.ht