ComboBox自绘之编辑框中文本的白色边框的处理

问题:

项目需要对源MFC工程中的所有控件的外观进行自绘,在自绘组合框控件时,发现一个比较棘手的问题。组合框中编辑框在获取焦点时,文本会出现一个刺眼的白色边框,如下图。但是自绘函数并没有绘制该边框的代码,这个边框如何去掉呢?
在这里插入图片描述

解决:

由于我的自绘代码已经确定没有绘制这个边框,所以基本确定这是windows系统的杰作。所以考虑直接修改系统配色来隐藏这一个问题。。。无奈的折中的办法。
通过逐个实验windows系统的颜色定义

#define CTLCOLOR_MSGBOX         0
#define CTLCOLOR_EDIT           1
#define CTLCOLOR_LISTBOX        2
#define CTLCOLOR_BTN            3
#define CTLCOLOR_DLG            4
#define CTLCOLOR_SCROLLBAR      5
#define CTLCOLOR_STATIC         6
#define CTLCOLOR_MAX            7

#define COLOR_SCROLLBAR         0
#define COLOR_BACKGROUND        1
#define COLOR_ACTIVECAPTION     2
#define COLOR_INACTIVECAPTION   3
#define COLOR_MENU              4
#define COLOR_WINDOW            5
#define COLOR_WINDOWFRAME       6
#define COLOR_MENUTEXT          7
#define COLOR_WINDOWTEXT        8
#define COLOR_CAPTIONTEXT       9
#define COLOR_ACTIVEBORDER      10
#define COLOR_INACTIVEBORDER    11
#define COLOR_APPWORKSPACE      12
#define COLOR_HIGHLIGHT         13
#define COLOR_HIGHLIGHTTEXT     14
#define COLOR_BTNFACE           15
#define COLOR_BTNSHADOW         16
#define COLOR_GRAYTEXT          17
#define COLOR_BTNTEXT           18
#define COLOR_INACTIVECAPTIONTEXT 19
#define COLOR_BTNHIGHLIGHT      20

发现将COLOR_WINDOW 通过SetSysColors 修改为红色,该白色边框就变为了红色边框。
在这里插入图片描述

解决!
将该系统颜色改为背景色,实现边框的隐藏。只能做到这一步了,如果大牛们有其他好的解决办法,在不改变系统颜色的情况下解决,希望不吝赐教。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值