如何实现Office式样的扁平组合框

2016-01-29 12:03 55 1 收藏

如何实现Office式样的扁平组合框,如何实现Office式样的扁平组合框

【 tulaoshi.com - C语言心得技巧 】

如何实现Office式样的扁平组合框


作者/NorthTibet

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

下载源代码


    MS Office家族产品中常常见到扁平式组合框,本文将介绍一个C++类:CXTFlatComboBox ,用这个类可以在自己的程序中轻松实现扁平式组合框,也就是让标准的CComboBox控件外观扁平化。CXTFlatComboBox类是codejoke开发工具包Xtreme Toolkit的一个成员。任何人都可以免费使用这个类的源代码。

使用方法:
    将CXTFlatComboBox类的头文件 XTFlatComboBox.h 和实现文件 XTFlatComboBox.cpp添加到工程中,然后在使用这个类的文件中包含头文件:

      #include "XTFlatComboBox.h"      
接着在实现文件中声明类实例,你可以用类向导(Class Wizard)先添加一个CComboBox成员变量:(Class Wizard -> Member Variables Tab -> Add Variable ),然后将CComboBox改为CXTFlatComboBox。成员变量主要是用来对组合框进行控制。

本文例子是一个典型的基于对话框的程序,对话框里有两个组合框,每个组合框都有一个复选按钮控制其屏蔽状态,可编辑的组合框还带一个“自动完成”的功能控制。图一是本文例子程序的运行画面:


图一 例子程序

下面是程序代码的简单的说明:

头文件:

例子程序的两个组合框式样分别为Droplist 和 Dropdown,它们的区别就不用多说了,前者可以输入内容,后者则不能。
//{{AFX_DATA(CFlatComboDemoDlg)enum { IDD = IDD_FLATCOMBODEMO_DIALOG };//声明类实例成员变量CXTFlatComboBoxm_DDCombo;CXTFlatComboBoxm_DLCombo;//声明其它的成员变量BOOLm_bDDAutoComp;BOOLm_bDDDisable;BOOLm_bDLDisable;//}}AFX_DATA      
实现文件:在 DoDataExchange(CDataExchange* pDX)函数中实现对话框里控制之间的数据交换。
//{{AFX_DATA_MAP(CFlatComboDemoDlg)DDX_Control(pDX, IDC_DROPDOWN_COMBO, m_DDCombo);DDX_Control(pDX, IDC_DROPLIST_COMBO, m_DLCombo);DDX_Check(pDX, IDC_DROPDOWN_AUTOCOMP, m_bDDAutoComp);DDX_Check(pDX, IDC_DROPDOWN_DISABLE, m_bDDDisable);DDX_Check(pDX, IDC_DROPLIST_DISABLE, m_bDLDisable);//}}AFX_DATA_MAP      
消息映射函数代码:
BEGIN_MESSAGE_MAP(CFlatCmboxDlg, CDialog)//{{AFX_MSG_MAP(CFlatCmboxDlg)ON_WM_SYSCOMMAND()ON_BN_CLICKED(ID_APP_ABOUT,OnAbout)ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_DROPDOWN_DISABLE, OnDropdownDisable)ON_BN_CLICKED(IDC_DROPLIST_DISABLE, OnDroplistDisable)ON_BN_CLICKED(IDC_DROPDOWN_AUTOCOMP, OnDropdownAutocomp)ON_WM_CTLCOLOR()//}}AFX_MSG_MAPEND_MESSAGE_MAP()      
例子程序里OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 是 WM_CTLCOLOR 消息的处理例程,通过它可以改变对话框子窗口(也就是对话框里的各个控制如按钮、编译框、组合框等)的字体颜色和背景颜色。有一点要注意:运行一下例子程序就会发现,程序中式样为 Dropdown 的组合框其字体颜色和背景颜色改变代码不工作。一时还没找到好的办法。如果哪位知道,别忘了告诉我.......

来源:http://www.tulaoshi.com/n/20160129/1484425.html

延伸阅读
标签: Web开发
导言: 本文探讨的是圆角框的终极解决方案,其核心关键词是圆滑、完美、兼容、重用性、语义,这些技术都是收集目前网络上最流行的做法。纵观种种方法,各有其优势,请针对不同的环境分别使用。 圆角框,因为其样式比直角框漂亮,所以成为设计师心中偏爱的设计元素。现在的web标准下大量的网页、博客都采用圆角框设计,成为一道亮丽的风...
标签: Web开发
这是采用ajax技术,刷新是肯定的,是在我们察觉不到的速度完成.XMLHTTP牺牲页面的方法,我们之所以看不见刷新,是因为所有的工作都是在牺牲页面上进行的,里面"翻江倒海"的"折腾",我们看不见,效率上差些! AjaxPro.dll 下载地址  http://ajaxpro.schwarz-interactive.de/download/ajaxpro.zip Web.Config ?xml version="1....
标签: Web开发
区域中 --> [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
标签: ASP
  先建两个下拉选框(单选,SELECT),分别为select_month和select_day,在select_month被改变时触发change_it()函数,(select_month.onchange=change_it;)下面是该函数的源码: function change_it() { get_select=select_month.selectedIndex; select_item_m=select_month.options[get_select].text switch(select_item_m) { ca...
鼻子的漂亮与否关系着整个脸部的美观程度,高挺的鼻子不仅显得整个人精神有灵性,而且可以把高贵迷人的气质衬托出来,不过现实总是不尽人意,鼻子扁平的人比比皆是,可能会有很多的人说,天生的鼻子扁平是没办法改变的,其实这种想法是错误的。那么,鼻子扁平该怎么办? 其实造成鼻子扁平的最主要原因是鼻根低平或没有鼻根,随着高科...

经验教程

958

收藏

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