求9,MFC中Static控件透明,重影,长度问题 怎么解决

llglong 2012-12-18 02:16:05
这个问题,我看了很多资料都是说得有头没尾。中心意思大家都明,到底怎么实现它不要出现重影,在edit上也删除不了已经存在的文字。而且在我看的那么多资料中,好象只出自两个人的手。看来看去的都是复制。。即使是复制(个人不反对,好用就行)也得说清楚那些函数如何用,就像下面一个函数,它怎么用,那里来的。我找了很多资料也没有找到。。求解。。。。。。。。。。。。。。。。

1.void CSample::SetText(const TCHAR *pszText)
2.{
3. CDC *pDC = this->GetDC();
4. // 获取文本在当前绘图环境下所占的宽度和高度
5. CSize clSize = pDC->GetTextExtent(pszText, _tcslen(pszText));
6.
7. RECT stRect;
8.
9. // 获取控件当前矩形区域
10. this->GetWindowRect(&stRect);
11. // 调整宽度为新文本所占宽度
12. stRect.right = stRect.left + clSize.cx;
13. // 重要!调用父窗口S2C函数转换坐标
14. this->GetParent()->ScreenToClient(&stRect);
15. // 调整控件大小以适应新文本
16. this->MoveWindow(&stRect);
17.
18. // 重绘控件以避免重影
19. this->GetWindowRect(&stRect);
20. this->GetParent()->ScreenToClient(&stRect);
21. this->GetParent()->InvalidateRect(&stRect, true);
22.}
这函数来得太神马了。。。求分解呀。
...全文
232 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
科比布莱恩特 2012-12-24
  • 打赏
  • 举报
回复
引用 楼主 llglong 的回复:
这个问题,我看了很多资料都是说得有头没尾。中心意思大家都明,到底怎么实现它不要出现重影,在edit上也删除不了已经存在的文字。而且在我看的那么多资料中,好象只出自两个人的手。看来看去的都是复制。。即使是复制(个人不反对,好用就行)也得说清楚那些函数如何用,就像下面一个函数,它怎么用,那里来的。我找了很多资料也没有找到。。求解。。。。。。。。。。。。。。。。 1.vo……
重影是自绘的控件,与原生控件不一样。原生不存在。 长度也一样。不行就用richedit吧,那个稳当。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧