让你的软件界面更漂亮 [VC][二]

2016-02-19 14:27 25 1 收藏

下面图老师小编跟大家分享一个简单易学的让你的软件界面更漂亮 [VC][二]教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!

【 tulaoshi.com - 编程语言 】

一、统一风格漂亮界面设计的理论与实现

a.窗口和对话框

  Windows操作系中窗口和对话框在我们看来是一样的,就是一个四边形,有标题栏、系统按钮,边框等,可移动和可变大小。实际上窗口和对话框是有的区别的。在创建对话框窗口时的工作中要发生两个主要过程:对话框的过程和其窗口过程。Win32 SDK对话框使用了系统提供的对话框窗口的窗口过程和对话框过程,对话框过程将被窗口过程调用。在MFC下,所有的窗口类都使用了同一个窗口过程,对话框类也一样。MFC对话框过程只处理WM_INITDIALOG消息,其余都让窗口过程处理,我们只能在函数OnInitDialog()中有唯一机会处理我们的对话框的初始化工作。因而我们设计界面时要在窗口过程处理中相关消息实现我们的界面。

b. 几个有关对话框窗口消息的处理

  1.WM_NCPAINT:重画非客户区消息

  重载此消函数,可以标题栏上为所欲为。

  2. WM_NCLBUTTONDOWN:在非客户区上按下鼠标左键消息

  要想在标题栏相应鼠标左键,可重载此消函数

  3.WM_NCMOUSEMOVE:在非客户区上移动鼠标会产生此消息

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  4.WM_SIZE:在窗口改变大小后产生此消息。

  为了使软件更专业,调整对放框大小时,里面的各控件也应合理调整位置和大小,

  重载此消函数可实现目的。还有很几个,其它的不介绍了。

c. 统一的界面风格实现

  如何运用上述知识请参考我的前一文让你的软件界面更漂亮 [VC][一]中有介绍并有源程序。漂亮界面的统一风格是如何实现的将是本文要讨论主要内容。

  我们知道Windows操作系统窗口风格基本上是一致的,微软的应用软件程序也和操作系统风格基本是统一的。所以使我们的CDialog 也跟其一样,要改变它的界面风格很困难。除非你对MFC了如指掌,甚至要了解操作系统内核。本人在摸索过程中经过无数次碰壁后,终于找到了希望。

 请看下面两幅图:


图一

图二

  看了上面两图你是不是对VC有信心了?Visual C++ 可实现你想要的统一风格界面。请看如何实现:

  1.首先要建立漂亮界面主窗口。它也是一个对话框,方法前文有介绍。

  2.处理漂亮界面主窗口的OnInitDialog()函数。很重要!!


BOOL CTitleBarDlg::OnInitDialog()
{
//此处 不能修改和添加代码!因为其它对话框的OnInitDialog()要用到

m_ToolTip.Create(this,TTS_ALWAYSTIP);//Create提示
m_ReSizeFlag = TRUE;

CRect rtWnd;
GetClientRect(&rtWnd);
m_OldWidth = rtWnd.Width();
m_OldHeight = rtWnd.Height();
OldPoint.x = rtWnd.Width();
OldPoint.y = rtWnd.Height();
if(!m_BaseFlag)
{
m_BaseFlag = TRUE;
CDialog::OnInitDialog();

//************************************

你只能在处修改和添加你所需主窗口初始化的代码
……
//************************************
}

return TRUE;
}

  3.建立你的对话框和对话框类。

  用对话框资源编辑器完成对话框模板。用ClassWizard生成CyourDlg类此时基类只能为CDialog。

  4.修改基类CDialog为漂亮界面类(CtitleBarDlg)

  yourDlg.h yourDlg.cpp 内的CDialog都要改,用Edit/Replace功能快些且安全。

  在yourDlg.h还要包括TitleBarDlg.h

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  注意:对话框构造函数第一个参数CtitleBarDlg nID 要删除。否则通Build通不过。

  5. 显示你的窗口
//显示代码
CyouDlg *pMyDlg;
pMyDlg = new CyouDlg;
pMyDlg-Create(IDD_YOUR_DLG);
pMyDlg-ShowWindow(SW_SHOW);

  这种代码要在适当的时候delete pMyDlg,防内存泄露。由于 pMyDlg没有定义为全局,处理它有一定难度。如果是用DoModal()显示就好了,大家可以去试一下。解决了告诉我!

  6. 完成编译运行。你的对话框的风格是不是和主窗口一样,有没显示出来?

二.说明

  统一风格的漂亮界面基本达到了目的。但同样也存在几个问题:

  1.漂亮界面界必须是主窗口。我还没有想出方法能让它独立出来。

  2.显示其它子窗口只能是非模式对话框窗口方式。我尝试DoModal显示但没有成功。但我分析MFC后找到了笨方法,MFC也是这么做。

  3.基于述原因,我建立了统一的界面风格的开发模板,只有在此模板上开发就能实现软件漂亮统一的界面风格。需要可和我联系! 若有机会我会和大家继续探讨漂亮界面的实现的其它难点。

来源:http://www.tulaoshi.com/n/20160219/1606996.html

延伸阅读
标签: 美容
核心提示:在这里我们不会多说关于吸烟有害健康、会导致死亡的唠叨话了,如果这些都没办法说服你戒烟,那我只能告诉你,吸烟会让你越变越丑。所以今天的主题就是——戒烟让你更漂亮的6个真相。 看起来更年轻 香烟绝不会让你看起来更...
标签: 宝宝
怎样让宝宝更漂亮可爱        每个妈妈都希望让自己的宝宝漂亮、可爱,女宝宝的妈妈更是看中在意这一点,那么漂亮的前提就是皮肤好。那么吃什么食物能让宝宝皮肤好呢? 1、含维生素A的食物保护皮肤 维生素A能够生成肌肤真皮层内的胶原蛋白和弹力纤维,促进调节并保护机体,维护皮肤、上皮组织的正常功...
标签: 胎教 宝宝
孕期巧饮食宝宝更漂亮 你想让你的宝宝健康么?你想让你的宝宝聪明么?这些问题我在这里不予回答,我现在要谈的问题是:如何能让你未来的宝宝变漂亮。 要做妈妈了,这是件令所有女性欣喜、兴奋的事儿。可是,在欢喜的同时,也许你还会生出几分忧虑:孩子他爸个子不高,怎么才能让我的宝贝将来长成高个呢?我们两口子皮肤都有点黑...
标签: 育儿知识
怎样让宝宝更漂亮可爱 每个妈妈都希望让自己的宝宝漂亮、可爱,女宝宝的妈妈更是看中在意这一点,那么漂亮的前提就是皮肤好。那么吃什么食物能让宝宝皮肤好呢? 1、含维生素A的食物保护皮肤 维生素A能够生成肌肤真皮层内的胶原蛋白和弹力纤维,促进调节并保护机体,维护皮肤、上皮组织的正常功能,让肌肤紧致、有弹性。宝宝常用...
轻松实现类VC界面 作者:浙江省温岭电信局 王骏 下图是一个类似VC的界面,左边、底下有两个可浮动、可变大小的控制窗口。许多朋友都希望在自己的程序中实现类似的界面,因为此种类型的界面用途很广、通用性很强,所以笔者总结了一下实现的步骤,辑此一文,并提供源代码供大家参考! 下载本文示例工程 44.3...

经验教程

825

收藏

41
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部