VC设置静态文本透明显示,动态更新内容,不重叠

本文介绍了如何使用C++在Windows环境下实现静态文本的透明显示,并解决动态更新内容时出现的重叠问题。通过InvalidateRect函数来避免窗口闪烁,注意到不应在InvalidateRect前附加GetDlgItem IDC_STA,以防止意外行为。
摘要由CSDN通过智能技术生成

静态文本透明显示,和控制显示字体,在上一篇中已经解决,通过CSDN的论坛和网络的力量。

但是在动态更新静态文本内容的时候会出现重叠现象,论坛里也有多处讨论,最后在这里找到了答案
http://wenku.baidu.com/view/4e45f9a10029bd64783e2c9f.html###

代码如下:

void CTransstaDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CRect rect;
	GetDlgItem(IDC_STA)->GetWindowRect(&rect);
	ScreenToClient(&rect);
	InvalidateRect(&rect);
//	Invalidate();

	CString str;
	str.Format("%d", point.x);
	m_static.SetWindowText(str);
	
	CDialog::OnLButtonDown(nFlags, point);
}
注意:
1.ScreenToClient(&rect);这句必须要有,上一句得到的是整个屏幕的矩形,要把矩形区域变换到用户区(对话框)上。我试过得
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值