MFC怎么样设置动态文本的背景色为透明的?

来源:百度知道 编辑:UC知道 时间:2024/05/22 20:04:48
当我设置一个静态文本,用CDC::SetBkMode(TRANSPARENT)或CDC::SetBkColor(0)可以设置为透明的.
而当我设置一个运行的时间时,用CDC::SetBkMode(TRANSPARENT)或CDC::SetBkColor(0)就会出问题,
运行的第一秒没问题,然后,后面出现的时间就会把前面出现的时间重叠,比如:刚开始打开程序运行
20:58:02然后第二秒的03就会重合02,就看不清了,一直重合,当窗口发生重绘就好了一秒,后面又开始
了.我上面所说的情况是当我做一个ActiveX时间控件的时候碰到的,我把设置时间的文本背景设置为
透明就出现这个问题.我想这个问题是因为用CDC::SetBkMode(TRANSPARENT)
或CDC::SetBkColor(0)这两个函数的时候,系统取背景色是按照上一次背景色取值才会出现这种情况,
可不知道怎么解决,请高手帮忙!谢谢!

你在初始化控件时需要把背景图片BitBlt下来,然后在OnDraw时自己先贴图再TextOut或DrawText

vc中怎样让static文本背景透明:
http://www.jgzsk.com/Article_Show.asp?ArticleID=1126

得先把背景涂抹了再重新写字才不会发生这种情况