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

来源:互联网 发布:bodymovin插件 mac 编辑:程序博客网 时间:2024/05/22 14:41

静态文本透明显示,和控制显示字体,在上一篇中已经解决,通过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 defaultCRect 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);这句必须要有,上一句得到的是整个屏幕的矩形,要把矩形区域变换到用户区(对话框)上。我试过得到GetClientRect这句话,不行,不知道为什么???

2.InvalidateRect(&rect);这句是使矩形区域失效重画,而Invalidate是使整个窗口失效重画,后者会使整个窗口闪烁。
另外InvalidateRect(&rect);前面不能再加GetDlgItem(IDC_STA)->,不知道为什么???


原创粉丝点击