WEB开发网
开发学院软件开发VC 自绘按钮的实现 阅读

自绘按钮的实现

 2008-01-19 20:25:45 来源:WEB开发网   
核心提示:难点二:下面我们看看DRAWITEMSTRUCE结构为我们提供了哪些有用信息呢?DRAWITEMSTRUCT结构的定义如下:typedef struct tagDRAWITEMSTRUCT {UINT CtlType; //控件类型UINT CtlID;//控件IDUINT itemID;//菜单项、列表框或组合框中某

难点二:

下面我们看看DRAWITEMSTRUCE结构为我们提供了哪些有用信息呢?

DRAWITEMSTRUCT结构的定义如下:

typedef struct tagDRAWITEMSTRUCT {
  UINT  CtlType;            //控件类型
  UINT  CtlID;             //控件ID
  UINT  itemID;            //菜单项、列表框或组合框中某一项的索引值
  UINT  itemAction;          //控件行为
  UINT  itemState;           //控件状态
  HWND  hwndItem;         //父窗口句柄或菜单句柄
  HDC  hDC;              //控件对应的绘图设备句柄
  RECT  rcItem;            //控件所占据的矩形区域
  DWORD itemData;         //列表框或组合框中某一项的值
} DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT;

其实不仅是按钮控件,其它控件,如ComboBox、ListBox、StaticText等都是通过DRAWITEMSTRUCT来记录控件信息的。关于这个结构的详细文档可参考本篇的附录。

也许你早已看到许多自绘按钮的例子,实际上自绘按钮本身的函数结构都是差不多的,它们显示效果的区别主要取决于代码编写者对GDI作图函数的运用与掌握程度。有兴趣的朋友可以研究一下CXPButton类中DrawItem函数的数据结构,其实只要修改一下其中GDI绘图函数的部分代码,马上又能做出另一个自绘按钮控件了。

三、按钮类的使用

下面演示CXPButton类的使用。往对话框中添加一个按钮控件,假设它的ID值为IDC_BUTTON1。进入类向导(Class Wizard)的Member Variables属性页,为IDC_BUTTON1添加一个变量m_btnNormal。确定退出后再进行编译,就可以看到重新定义过XP风格按钮了。

上一页  1 2 3 4 5 6 7  下一页

Tags:按钮 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接