2013 vc 字体 静态文本框_vc静态文本框问题

本文介绍如何在VC++2013中实现静态文本框的颜色动态改变。通过创建自定义类CClrStatic,继承自CStatic,处理WM_MOUSELEAVE和WM_MOUSEMOVE消息,实现鼠标进入和离开时改变文本框颜色的功能。同时,使用SubClassDlgItem进行控件关联,并详细解释了相关代码和颜色控制原理。
摘要由CSDN通过智能技术生成

展开全部

hopeztm的实现思路有些问题:

1)楼主要的是静态文本框,怎么能随便换成CEdit?

必须继承自CStatic

2)消32313133353236313431303231363533e58685e5aeb931333262353362息映射有ON_WM_MOUSELEAVE()这个宏吗?

因为MFC不支持WM_MOUSELEAVE消息,必须将WM_MOUSELEAVE看成是自定义消息,手工添加消息映射宏:ON_MESSAGE(WM_MOUSELEAVE, myFunc);

myFunc的函数签名为:afx_msg LRESULT myFunc(WPARAM, LPARAM);

3)第五条能这样关联吗?

通过SubClassDlgItem进行关联。

我做了个CClrStatic的类,头文件为ClrStatic.h,CPP文件为ClrStatic.cpp。楼主可以看下。

另外需要对做一些解释:

1)WM_MOUSELEAVE可以看成是自定义消息,该消息WINDOWS默认是不会发送给我们的控件的,必须为控件先调用TrackMouseEvent函数才能在鼠标离开控件时,控件能收到WM_MOUSELEAVE

2)当鼠标在控件中时,可以简单捕获WM_MOUSEMOVE消息,需要注意的是在鼠标移动时,不能总是Invalidate,否则控件比较大时,会出现闪屏。当鼠标进入控件或离开时,简单关联一个BOOL变量,让CClrStatic知道,当前鼠标是否在控件里或离开,第一次进入控件即首次获得WM_MOUSEMOVE消息时,将BOOL变量设置成TRUE,并调用一

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值