用过CButtonST类的朋友给小弟指导一下

danxuezx 2009-05-23 04:54:16
我想实现这样的功能:
捕获按键消息,当键盘按下时设置一个butoon为红色,弹起时设置button为绿色。使用MFC自带的好像没办法搞,之前发帖有朋友指点用CButtonST,可我试验了一下没效果。
我知道是我用法不对,所以恳请用过的朋友们指点一下了~~,贴点实例代码最好了~~

另外如果有朋友知道用MFC的button类可以实现的话也麻烦指点一下,小弟先谢过了
...全文
116 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
feilinhe 2009-05-25
  • 打赏
  • 举报
回复
初始化的时候使用下面函数就可以了:
// TODO: Add extra initialization here
m_btnST.SetActiveBgColor(RGB(0,0,255));//设置鼠标放上去的颜色

m_btnST.SetInactiveBgColor(RGB(255,0,255));//设置鼠标未放上去的颜色
m_btnST为CButtonST对象

zjfhgdx 2009-05-25
  • 打赏
  • 举报
回复
好像对按钮不能设置颜色的说,要重载一下按钮类的相关函数吧
hendriclee 2009-05-25
  • 打赏
  • 举报
回复
daocaoyu 2009-05-25
  • 打赏
  • 举报
回复
用mfc 好像不能直接设置颜色 可以设置button的Owner Draw属性 然后在drawItem里面画两种状态 设置两个bool型变量 分别在buttondown和buttonup的时候设置为true就ok了
stuarts740 2009-05-25
  • 打赏
  • 举报
回复
顶!
yuanhuan799 2009-05-25
  • 打赏
  • 举报
回复

void SetButtonColor(CButtonST* btn)
{
btn->SetColor(CButtonST::BTNST_COLOR_BK_OUT, RGB(40, 35, 252)); // 鼠标没进入时背景色
btn->SetColor(CButtonST::BTNST_COLOR_BK_IN, RGB(140, 169, 250)); // 鼠标进入背景色
btn->SetColor(CButtonST::BTNST_COLOR_BK_FOCUS, RGB(140, 169, 250)); // 获得焦点背景色
btn->SetColor(CButtonST::BTNST_COLOR_FG_OUT, RGB(255, 255, 255)); // 相应的前景色...
btn->SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(255, 255, 255));
btn->SetColor(CButtonST::BTNST_COLOR_FG_FOCUS, RGB(255, 255, 255));
}

lzg350 2009-05-24
  • 打赏
  • 举报
回复
给你个提示,是不是要自己拦截窗口消息,处理WM_KEYDOWN 和WM_KEYUP,
或者你可以使用CWnd::OnKeyDown 和 CWnd::OnKeyUp 试一试.
具体用法查看一下msdn
biweilun 2009-05-24
  • 打赏
  • 举报
回复
CButtonST::SetColor
  DWORD SetColor(BYTE byColorIndex, COLORREF crColor, BOOL bRepaint = TRUE)
  注释:
  调用此函数可以设置按钮在各种状态下显示指定的底色。
  参数:
  byColorIndex : 状态索引值。具体含义可以参见OffsetColor函数中的参数(byColorIndex)说明。
  crColor : 颜色值。设置按钮指定状态的底色。
  bRepaint: 值为TRUE则马上重绘按钮。
  返回值:
  BTNST_OK: 函数执行成功。
  BTNST_INVALIDINDEX: 无效的状态索引值。
zhaokemin 2009-05-23
  • 打赏
  • 举报
回复
用MFC应该可以实现的,让按钮相应相应的消息,在消息中进行设置.
oyljerry 2009-05-23
  • 打赏
  • 举报
回复
CButtonST中应该可以设置按钮颜色,你在键盘按下时,修改对应的颜色,同时重画按钮,弹起时再设置另一个颜色,重画

---可能还要你修改一些CButtonST实现等,可以参考它的代码

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧