| 网站首页 | JAVA文章 | AppServers | Web开发 | 应用开发 | 资源下载 | 论坛
    想学好编程,学好外语很重要  [enadd  2006年12月25日]        
设为首页 加入收藏 联系站长
您现在的位置: 编程笔记网 >> 应用开发 >> vc >> VC实例 >> 文章正文
扩展MFC类库建立自己的界面类库(1)        【字体:
扩展MFC类库建立自己的界面类库(1)
作者:-    文章来源:-    点击数:    更新时间:2006-4-20

    除非应用程序只是给自己使用,否则它的价值必须由别人决定。应用程序的界面对用户的影响很大——无论程序代码如何高效,功能如何强大,如果用户发现它太难使用,那么这个程序就不会得到广泛的应用。摘自《Visual C++图形用户界面开发指南》

如何建立一个优秀的应用程序界面呢,当然通过MFC可以很轻松的生成应用程序的基本框架,使得应用程序有着标准的WINDOWS程序的“面容”,不过如果你想给它整整容那就需要扩展MFC类库建立自己的界面类库。

按钮类

CObject类的派生结构

CObject
|-CCmdTarget
|-CWnd
|-CButton
|-CBitmapButton

【说 明】CButton类提供Windows按钮控件的功能。常用的按钮控件风格有检取框风格、单选按钮风格和标准风格。按钮控件的风格由成员函数Create在初始化时指定。从CButton类派生的CBitmapButton类支持创建用位图代替文本的按钮控件。CBitmapButton可以具有几个独立的位图分别代表按钮的上、下、聚焦和禁止状态。当CButton类的对象被点击时将向父窗口发送消息.应用程序可以从对话模板创建按钮控件,也可用代码直接创建。在两种情况中,都要首先调用构造函数Cbutton()构造CButton类的对象;然后调用成员函数Create()创建Windows按钮控件,并将它附着于CButton类的对象。用CButton创建按钮可以一步实现。在派生类中设计构造函数,并在其中直接调用Create函数。如果希望处理由按钮控件向其父窗口类发送Windows的通告消息则需要在相应的父窗口类中添加消息映射入口和消息处理函数。

每个消息映射入口都具有以下形式:

ON_Notification(id,memberFxn)

其中id指定了发送通告信息的控件id,而memberFxn则指定了用于处理控件通告的消息成员函数。
消息处理函数如下:

afx_msg void memberFxn();

【库 名】
【成员函数】
(1)CButton(); //构造一个空的CButton类的对象。
(2)BOOL Create(LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);

【返回值】该成员函数调用成功返回非零值,否则返回零。

【参 数】

lpszCaption //指定按钮控件的文本内容。
dwStyle //指定按钮控件的风格。按钮可以使用窗口风格和下列按钮风格的组合。
BS_3STATE //创建一个3态检取框风格的按钮控件,当使用者选中一个未被选中过的控件后,该控件的 选择框将不改变其状态,可以使用成员函数SetCheck设置该标记。
BS_AUTO3STATE //类似于3态检取框风格的按钮控件,当使用者选中一个未被选中过的控件后,该控件的选 择框将改变其状态。
BS_AUTOCHECKBOX //类似于检取框风格的按钮控件,当使用者选中一个未被选中过的控件后, 在该控件的选 择框中将出现选中的标记,当使用者再次选中该控件时选中的标记消失。
BS_AUTORADIOBUTTON //类似于单选按钮风格的按钮控件, 当使用者选中一个未被选中过的控件后,该控件将被自 动加亮并在选择框出现选中的标记,同时将同组中带有选中标记且风格一致的控件的选中标 记删除。
BS_B99vMAP //指定在按钮控件上显示一个位图,由成员函数SetBitmap设置具体要显示的位图。
BS_BOTTOM //指定在按钮控件上显示的内容下对齐。
BS_CENTER //指定在按钮控件上显示的内容在水平方向上居中。
BS_CHECKBOX //创建一个检取框风格的按钮控件,不同于BS_AUTOCHECKBOX风格的控件,当使用者 选择了一个未被选中过的控件后,在该控件的选择框中将不会出现选中的标记,此时可以使 用成员函数SetCheck设置该标记。
BS_DEFPUSHBUTTON //创建一个具有深黑色边框的按钮控件,使用者可以通过按Enter键选择该控件,该风格可 以使用户快速的选择出最合适的选项(一般为缺省选项)。
BS_FLAT //指定按钮控件以二维效果显示,而不是默认的三维效果。
BS_GROUPBOX //创建一个可将其它按钮控件分组的按钮控件。该控件的文本将显示在该矩形的左上角。
BS_ICON //指定在按钮控件上显示一个图标,由成员函数SetIcon设置具体要显示的图标。
BS_LEFT //指定在按钮控件上显示的内容左对齐。
BS_LEFTTEXT //当与检取框风格、单选按钮风格或3态检取框风格组合使用时选择框出现在该控件的右侧。
BS_MULTILINE //当在按钮控件上显示的字符太多,该风格允许文本在按钮上显示多行。
BS_NOTIFY //指定按钮控件在被双击、聚焦和失去焦点时向父窗口发送消息。
BS_OWNERDRAW //创建一个自画的按钮控件,当该控件在视觉外观发生变化时,将调用成员函数DrawItem, CBitmapButton类必须设置该风格。
BS_PUSHBUTTON //创建一个标准风格的按钮控件,在使用者选择了该控件后,该控件将向其父窗口发送一条 WM_COMMAND消息。
BS_PUSHLIKE //与检取框风格、单选按钮风格或3态检取框风格组合使用,使该控件外表与标准按钮控件 一致。当该控件没有被按下或选中时控件外表凸起,当该控件被按下或选中时控件外表凹陷。
BS_RADIOBUTTON //创建一个单选按钮风格的按钮控件, 当使用者选中一个未被选中过的控件后,该控件将被 自动加亮,但不会移动选中的标记,可以使用成员函数SetCheck设置该标记。
BS_RIGHT //指定在按钮控件上显示的内容右对齐。
BS_RIGHTBUTTON //当与检取框风格、单选按钮风格或3态检取框风格组合使用时选择框出现在该控件的右侧。
BS_TEXT //指定在按钮控件上显示文本,文本内容可以在初始化时指定也可以由成员函数 SetWindowText设置。如控件没有设置BS_ICON或BS_B99vMAP风格则默认为BS_TEXT。
BS_TOP //指定在按钮控件上显示的内容上对齐。
BS_VCENTER //指定在按钮控件上显示的内容在垂直方向上居中。
rect //指定按钮控件在父窗口中的位置和大小。
pParentWnd //指定按钮控件的父窗口,不能为NULL。
nID //指定按钮控件使用的资源标识。

【注 释】应用程序用两步构造一个CButton类的对象。首先调用构造函数,然后调用Create创建Windows按钮控件,并将它附着于CButton类的对象。

(3)virtual void DrawItem(LPDRAW99vEMSTRUCT lpDrawItemStruct);
【参 数】 lpDrawItemStruct //一个指向DRAW99vEMSTRUCT结构的长整型指针,该结构中包含有关被绘制项的信息和 要求的绘制类型。
【注 释】当自画风格的按钮控件的可见部分发生变化时,此成员函数被调用来重绘控件。
(4)HB99vMAP GetBitmap() const;
【返回值】获得由成员函数SetBitmap设置的位图的句柄。
(5)UINT GetButtonStyle() const;
【返回值】返回某个按钮控件风格的代码,它只返回按钮控件风格的代码而不会返回按钮控件的窗口风格代码。含义参见成员函数SetButtonStyle。
(6)int GetCheck() const;
【返回值】返回某个检取框风格、单选按钮风格或3态检取框风格按钮控件的检取状态。含义参见成员函数SetCheck。

[1] [2] [3] 下一页  

文章录入:enadd    责任编辑:enadd 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • Windows网络编程经典入门

  • 制作自动循环播放的MP3播放器…

  • ping的源程序

  • 制作自动循环播放的MP3播放器…

  • 明明白白看MFC之程序框架(一…

  • 使用GDI在内存中转换图片类型

  • 在BMP文件中隐藏信息(一)

  • VC下ADO开发实践之一

  • 明明白白看MFC之程序框架(二…

  • VC制作具有声音效果的动画桌…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |