钩子函数对按钮控件修改

钩子函数对按钮控件修改

ID:43565980

大小:210.50 KB

页数:7页

时间:2019-10-11

钩子函数对按钮控件修改_第1页
钩子函数对按钮控件修改_第2页
钩子函数对按钮控件修改_第3页
钩子函数对按钮控件修改_第4页
钩子函数对按钮控件修改_第5页
资源描述:

《钩子函数对按钮控件修改》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、//首先创建一个按钮类CDrawButton类。CDrawButton类的代码如下:〃定义按钮状态cnumButtonState{bsNormal,bsHot,bsDown};〃按钮包装类classCDrawButtonpublic:ButtonStatem_State;//按钮当前状态WNDPROCm_OldProc;//记录按钮的窗口函数intm_Flag;//是否释放关联按钮的CDrawButton对象staticintm_Style;〃按钮风格public:CDrawButton()〃构造函数Im_State=bsNorm

2、al;〃设置按钮状态m.OldProc=NULL;//设置窗口函数m.Flag=0;//设置按钮风格)virtual~CDrawButton()〃析构函数{m_State=bsNormal;〃设置按钮状态m.OldProc=NULL;〃设置窗口函数);LRESULTOnPaint(HWNDhWnd)〃绘制窗口吋处理函数{CWnd*pWnd=CWnd::FromHandle(hWnd);CPaintDCdc(pWnd);CStringText;//标题CRectRC;〃区域CFonlFont;〃字体CFont*pOldFont;//

3、原字体CBrushBrush;//ifflj笔CBrush*pOldBrush;//原画笔CPointPT(2,2);dc.SetBkMode(TRANSPARENT);〃设置透明Font.CreateFont(12,0,0,0,FW_HEAVY,0,0,0,ANSI_CHARSET,OUT_TT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,VARIABLE_PITCH

4、FF_SWISS,"MSSansSerif);pOldFont=dc.SelectObject(&F()nt);〃将

5、画笔选入设备环境if(m_Statc==bsNornial)//判断按钮状态if(m_Style==2)CBitmapbmp;bmp.LoadBitmap(IDB_BKBUTTON);//加载图片资源Brush.CreatePattemBrush(&bmp);//根据图片资源创建画笔)elseBrush.CrcatcSolidBrush(RGB(200,200,200));//用颜色创建画笔dc.SetTextColor(RGB(80,80,80));〃设置文本颜色)elseif(m_State==bsDown)〃判断按钮是否按卜

6、{Brush.CrcatcSolidBrush(RGB(160,160,160));//MJ颜色创建画笔dc.SetTextColor(RGB(50,50,250));〃设置文本颜色)elseif(m_State==bsHol)〃判断按钮是否热点{Brush.CrcatcSolidBrush(RGB(100,100,180));//MJ颜色创建画笔dc.SetTextColor(RGB(250、250.0));//设置文本颜色)pOldBrush=dc.SeleciObject(&Brush);〃将画刷选入设备环境中pWnd->G

7、etClientRect(&RC);//获得客户区域dc.RoundRcct(&RC,PT);〃绘制圆角矩形HRGNhRgn=CreateRectRgn(RC.left,RC.top,RC.right,RC.bottom);〃创建一个炉形区域pWnd->SetWindowRgn(hRgn,TRUE);〃设置窗口区域DeleteObject(hRgn);pWnd->GetWindowText(Text);〃获得窗口显示文本dc.DrawTcxt(Text,&RC,DT.CENTER

8、DT.VCENTER

9、DT_SINGLELINE)

10、;〃绘制文木dc.SclcctObjcct(pOldFont);dc.SelectObject(pOldBrush);returnTRUE;)LRESULTOnLButtonDown(HWNDhWnd,UINTnFlags,CPointpoint)〃鼠标左键按下时处理函数Im_State=bsDown;//设置按钮状态SetCapture(hWnd);//捕获鼠标SetFocus(hWnd);〃设置焦点InvalidateRect(hWnd,NULL,TRUE);//重绘窗口区域returnTRUE;)LRESULTOnLButt

11、onUp(HWNDhWnd,UINTnFlags,CPointpoint)〃鼠标左键抬起时处理函数{if(m_State!=bsNormai)//判断按钮状态m_Statc=bsNormal;//设置按钮状态RclcascCapturc();〃释放

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。