求9,MFC中Static控件透明,重影,长度问题 怎么解决
这个问题,我看了很多资料都是说得有头没尾。中心意思大家都明,到底怎么实现它不要出现重影,在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.}
这函数来得太神马了。。。求分解呀。