Windows Programing OwnDarw Button中的DRAWITEMSTRUCT结构体~
来源:互联网 发布:sql语句学习 编辑:程序博客网 时间:2024/06/05 10:39
看本文先打开《Programming Windows程式开发设计指南》 好书~,ISBN:957-8239-73-4,原作者:Charles
Petzold 第一部分第九章“子视窗控制项”。
按钮类别共有10种,分别是:
BS_PUSHBUTTON
BS_DEFPUSHBUTTON
BS_CHECKBOX
BS_AUTOCHECKBOX
BS_RADIOBUTTON
BS_3STATE
BS_AUTO3STATE
BS_GROUPBOX
BS_AUTORADIOBUTTON
BS_OWNERDRAW
我在学习这一章处看到了建立BS_OWNERDRAW样式的按钮,程序代码上书中都有,其中有一处有一结构体,
LPDRAWITEMSTRUCT,书中没有明确给出,后面不知道有没有给我,我还没有看呢
查MSDN 如下:
typedef struct tagDRAWITEMSTRUCT { ;// dis
UINT ;CtlType; //控件类型
UINT ;CtlID; ; //控件的ID
UINT ;itemID; ;//控件内部的ID号
UINT ;itemAction; //在什么情况下绘制控件
UINT ;itemState; //当前模式
HWND ;hwndItem; //控件名柄
HDC ; hDC; //设备句柄
RECT ;rcItem; //控件范围
DWORD itemData; //数据
} DRAWITEMSTRUCT; 具体见MSDN,查DRAWITEMSTRUCT就可以了~
此程序的重点代码就是 WM_DRAWITEM消息处,按下按钮时,它们就会产生WM_COMMAND讯息,那么
WM_DRAWITEM消息在什么时候会发生呢?只要系统需要重新绘制该控件就会发出该消息,如切换窗口,菜
单下拉等。还有一个坐标的定位~
“在处理WM_DRAWITEM讯息处理期间,lParam讯息参数是指向型态DRAWITEMSTRUCT结构的指标”
“FillRect用白色画刷抹掉按钮的内面,呼叫FrameRect在按钮的周围画上黑框,由此OWNDRAW便启动了
WM_DRAWITEM处理过程。”FillRect和FrameRect分别是两个API,
如果哪一个按纽得到焦点,“呼叫DrawFocusRect,在按钮的边界内画一个虚线的矩形。”
感觉就是是使用OWNERDRAW 样式的button 时,DRAWITEMSTRUCT这个结构体必须深刻理解~
- Windows Programing OwnDarw Button中的DRAWITEMSTRUCT结构体~
- Windows Programing OwnDarw Button中的DRAWITEMSTRUCT结构体~
- DRAWITEMSTRUCT结构体
- DRAWITEMSTRUCT结构体
- DRAWITEMSTRUCT结构体
- DRAWITEMSTRUCT结构体的应用
- DRAWITEMSTRUCT结构
- DRAWITEMSTRUCT 结构
- DRAWITEMSTRUCT结构
- DRAWITEMSTRUCT自绘控件结构体
- DRAWITEMSTRUCT结构文档
- DRAWITEMSTRUCT结构的介绍
- DRAWITEMSTRUCT结构中各域的详解
- DRAWITEMSTRUCT
- DRAWITEMSTRUCT
- DRAWITEMSTRUCT
- [ windows程序设计(programing windows) ]
- [ windows程序设计(programing windows) ]
- CS无限连射--合法的作弊(ALLyeSNO)
- 捡到一块显卡(ZT)
- [半条命2]
- 程序员的酸甜苦辣——告别Coding
- ttt
- Windows Programing OwnDarw Button中的DRAWITEMSTRUCT结构体~
- CVS使用手册
- ZTZTZTVS.net 2005 Beta 下载地址(Express Edition)
- 新年祝福
- 沉默的海洋
- 判断文件是否是可执行文件
- 留言版的灌水
- ASP获取客户端MAC地址
- 较好的分页方法