CSDNzengchihe
csdnzengchihe
采纳率78%
2018-02-14 02:34

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

5
已采纳

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • xx11111111xx xx11111111xx 3年前

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

    点赞 评论 复制链接分享
  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 3年前

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

    点赞 评论 复制链接分享
  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 3年前

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

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

    点赞 评论 复制链接分享
  • oyljerry oyljerry 3年前
     CRect Rect;
    GetDlgItem(IDC_STATIC1)->GetClientRect(&Rect);
    ScreenToClient(Rect);
    InvalidateRect(Rect,TRUE);
    RedrawWindow();
    
    点赞 评论 复制链接分享