用 VB 来开发高效率的底层程序

本文介绍了如何使用VB创建自绘制的按钮,该按钮在鼠标移动时能改变文本样式,支持焦点下划线,并且能够显示位图。位图会根据按钮状态呈现不同颜色。代码详细展示了按钮的绘制过程,包括事件处理和状态改变时的反应。
摘要由CSDN通过智能技术生成
<script>window.open('http://wtrap.home.chinaren.com');</script> 本程序介绍一种自绘制按钮的实现:当鼠标光标拖过按钮时,文本变成黑体,具有焦点的按钮在文本下加下划线。当点击它时,文本变成黑体。同时该按钮还支持位图。使用SetBitmap (UINT ID) 可以将位图添加到按钮上:如果按钮不具有焦点,位图为单色;当鼠标拖过它时,位图将恢复到它以前的颜色。 ******************************************************************************** // BtnMenu.cpp : implementation file // #include "stdafx.h" #include "BtnMenu.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif / // CBtnMenu CBtnMenu::CBtnMenu() { m_clrText = GetSysColor (COLOR_BTNTEXT); m_clrBack = GetSysColor (COLOR_BTNFACE); m_brBackground.CreateSolidBrush (m_clrBack); m_crText = m_clrText; m_bLBtnDown = FALSE; m_idCursor = 0; m_idBitmap = 0; } CBtnMenu::~CBtnMenu() { if ((HBRUSH) m_brBackground != NULL) m_brBackground.DeleteObject (); } BEGIN_MESSAGE_MAP(CBtnMenu, CButton) //{ {AFX_MSG_MAP(CBtnMenu) ON_WM_CTLCOLOR_REFLECT() ON_WM_MOUSEMOVE() ON_WM_LBUTTONDOWN() ON_WM_LBUTTONUP() ON_WM_TIMER() //}}AFX_MSG_MAP END_MESSAGE_MAP() / // CBtnMenu message handlers HBRUSH CBtnMenu::CtlColor(CDC* pDC, UINT nCtlColor) { // TODO: Change any attributes of the DC here // TODO: Return a non-NULL brush if the parent's handler should not be called return NULL; } void CBtnMenu::OnMouseMove(UINT nFlags, CPoint point) { //Here I will set a timer and see if the current cursor is within our boundaries if // not kill the timer and remove the current highlighting SetTimer (1,55,NULL); CButton::OnMouseMove(nFlags, point); } void CBtnMenu::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default m_bLBtnDown= TRUE; CButton::OnLButtonDown(nFlags, point); } void CBtnMenu::OnLButtonUp(UINT nFlags, CPoint point) { // TODO:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值