2 csdnzengchihe CSDNzengchihe 于 2018.02.14 10:34 提问

MFC如何在OnTimer中获取静态文本框(ID为IDC_STATIC1)的rect区域 5C

我想使用invalidaterect更新控件区域,所以我需要先获取控件所在的区域,可是在OnTimer中我写了以下函数,却没有效果:
CRect rect;
GetDlgItem(IDC_STATIC1)->GetClientRect(rect);
InvalidateRect(rect);
写完之后发现invalidaterect兵没有起到效果。。
为什么会这样呢,我应该如何解决呢

4个回答

caozhy
caozhy   Ds   Rxr 2018.02.15 00:05

你写在哪个方法里,是不是构造函数了?要写在InitDialog里。

具体看我上次给你的代码,可以获取的。

caozhy
caozhy   Ds   Rxr 2018.02.15 00:07

GetDlgItem(IDC_STATIC1)->GetClientRect(&rect); 这里是取地址,也许是你笔误。

xx11111111xx
xx11111111xx   2018.02.15 11:36

GetDlgItem(IDC__STATIC1)->GetClientRect(&rect);
加&代表取得变量rect的指针(地址),这样变量rect才有值。

oyljerry
oyljerry   Ds   Rxr 2018.02.14 14:47
 CRect Rect;
GetDlgItem(IDC_STATIC1)->GetClientRect(&Rect);
ScreenToClient(Rect);
InvalidateRect(Rect,TRUE);
RedrawWindow();
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!