该函数向指定的窗体添加一个矩形,然后窗口客户区域的这一部分将被重新绘制。

  BOOL InvalidateRect(

  HWND hWnd, // handle of window with changed update region

  CONST RECT *lpRect, // address of rectangle coordinates

  BOOL bErase // erase-background flag

  );

  参数:

  hWnd:要更新的客户区所在的窗体的句柄。如果为NULL,则系统将在函数返回前重新绘制所有的窗口, 然后发送   WM_ERASEBKGNDWM_NCPAINT 给窗口过程处理函数。

  lpRect:无效区域的矩形代表,它是一个结构体指针,存放着矩形的大小。如果为NULL,全部的窗口客户区域将被增加到更新区域中。

  bErase:指出无效矩形被标记为有效后,是否重画该区域,重画时用预先定义好的画刷。当指定TRUE时需要重画。

  返回值:

  函数成功则返回非零值,否则返回零值。

  说明:被标记为无效矩形的区域直到WM_PAINT消息被处理完之后才会消失,或者使用ValidateRect(),ValidateRgn()函数来使之有效。当应用程序的消息队列中为空时,并且窗体要更新的区域非空时,系统会发送一个WM_PAINT消息到窗体。

    实例:

void CbackdropDlg::OnButton1()
 {
   bkbmp=!bkbmp;
   if(bkbmp) GetDlgItem(IDC_BUTTON1)->SetWindowText("改变背景图");
   else GetDlgItem(IDC_BUTTON1)->SetWindowText("固定背景图");

InvalidateRect(NULL,TRUE);

}

VC++ InvalidateRect相关推荐

  1. VC窗口刷新InvalidateRect和…

    学习了 原文地址:VC窗口刷新InvalidateRect和UpdateWindow 作者:玩世不恭 首先说说WM_PAINT这个重要的消息: The WM_PAINT message is gene ...

  2. 【转】VC窗口刷新InvalidateRect和UpdateWindow RedrawWindow

    首先说说WM_PAINT 这个重要的消息: The WM_PAINT message is generated by the system and should not be sent by an a ...

  3. VC++ 关于窗口刷新的几个函数InvalidateRect、UpdateWindow、RedrawWindow

    在前面写了那么多自绘控件,有必要对这几个接口做下声明解释: 这几个接口都是对执行窗体重绘的消息,那么什么时候才会发生重绘窗口的消息?答案是:当窗体需要更新内容或是重绘外观背景的时候,应用程序通常会发送 ...

  4. 100个vc小项目开发:二、一步一点设计音乐播放器 [I]

    100个vc小项目开发:二.一步一点设计音乐播放器 [源码解读] 文章作者: July 软件来源:开源 ================== 1.有不正之处,恳请指正. 2.本文贴出的是关键实现代码部 ...

  5. VC++屏幕抓词的技术实现

    屏幕上的文字大都是由gdi32.dll的以下几个函数显示的:TextOutA.TextOutW.ExtTextOutA.ExtTextOutW.实现屏幕抓词的关键就是截获对这些函数的调用,得到程序发给 ...

  6. 使用VC++2015 实现XP按钮效果

    VC++2015,新建一个对话框工程: 添加4个按钮: 添加对话框类成员变量: 把变量类型由CButton改为CXPButton:为变量起一个名字:一般为m_xxxx: 运行一下:XP按钮效果有了: ...

  7. VC++ 自定义消息学习总结

    VC添加自定义消息 http://blog.csdn.net/jinnee_cumtb/article/details/4524375     VC的ClassWizard不允许增加用户自定义消息,所 ...

  8. vc下c语言网络编程,用VC编写C/S消息传送程序

    下载本文示例代码 网络编程已经成为一种时髦,以TCP/IP协议的网络更为流行.自己编一个服务器与客户机互相传送消息的程序,以便增加自己网络编程的经验.下面我就介绍一下我编的程序. 首先介绍服务器程序: ...

  9. VC小技巧(网上搜的)

    一.打开CD-ROM  mciSendString("Set cdAudio door open wait",NULL,0,NULL);  二.关闭CD_ROM  mciSendS ...

最新文章

  1. 用漫画了解 Linux 内核到底长啥样!
  2. 一文告诉你,NIPS 2017有多火爆 | 附PPT、视频、代码大总结
  3. 我的Ubuntu9.10配置(随时更新)
  4. 关于用 ABAP 代码手动触发 SAP CRM organization Model 自动决定的研究
  5. HDU 3709 Balanced Number (数位DP)
  6. Linux加密框架 crypto 算法模板 HMAC模板举例
  7. java 多线程工具_多线程测试工具groboutils的使用
  8. mybatis mysql 事务处理_详解Java的MyBatis框架中的事务处理
  9. 4thweek.P_problemB .poj1505copy books.二分法
  10. CeBIT 2017热点:从5G到AI和物联网
  11. JUnit编写单元测试代码注意点小结
  12. Python--sort()函数的用法
  13. ez-ipupdate的移植
  14. 计算机术语多态意思,计算机外文翻译测试多态的关系的准则.doc
  15. 线程安全的单例模式C++实现
  16. iOS中的gzip解压
  17. webdriver-helper安装说明
  18. 收藏,光纤光缆60条必备知识!
  19. Linux配置无密登录
  20. SQL数据库查询 左连接、右连接、内连接 实例

热门文章

  1. nginx关闭/重启/启动的操作方法
  2. 超分辨论文阅读笔记:Non-local
  3. 修改本地的host文件
  4. CLion: rsync is not installed or not avaiable in PATH on remote host
  5. 直流电机驱动模块开发,为电子设备提供动力之源
  6. 电机驱动电路之H桥基本知识---Trinamic电机驱动芯片
  7. [CTF]-反弹shell[2]
  8. MATLAB中如何作随时间变化图
  9. Java-append()方法
  10. 小型数控钻铣床C31