MFC文本控件设置背景透明后出现文字重叠。

yunmoon 2009-08-17 03:19:34
我通过添加ON_WM_CTLCOLOR()消息修改了文本控件背景透明

if(nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT);
return HBRUSH(GetStockObject(HOLLOW_BRUSH));

}


当此时我用一个按钮响应修改文本框的内容,点击添加后出现新增的文字和以前的内容重叠了。也就是感觉以前的内容没有删除,直接把以前的内容做为背景了。

比如本来文本内容是“哈哈”,响应按钮后修改内容为“好好”,发现文本框里显示的是“哈哈”与“好好”重叠了。但如果在初始化的时候就修改内容是正常的。

我用GetDlgItem(IDC_2222)->SetWindowText("好好好");修改内容。
...全文
359 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsviking2 2010-11-30
但是控件刷新很闪啊
回复
yunmoon 2009-08-17
[Quote=引用 1 楼 fishion 的回复:]
最简单的方法是修改完
GetDlgItem(IDC_2222)->SetWindowText("好好好");
GetDlgItem(IDC_2222)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_2222)->ShowWindow(SW_SHOW);
[/Quote]

谢谢!这样可以的

3楼的不行的。
回复
hhwei1985 2009-08-17
UP
回复
oyljerry 2009-08-17
刷新一下控件,UpdateWindow()等
回复
shakeyou123 2009-08-17
在修改内容前先清空
GetDlgItem(IDC_2222)->SetWindowText("");
GetDlgItem(IDC_2222)->SetWindowText("好好好");
回复
fishion 2009-08-17
最简单的方法是修改完
GetDlgItem(IDC_2222)->SetWindowText("好好好");
GetDlgItem(IDC_2222)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_2222)->ShowWindow(SW_SHOW);
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告