CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

麻烦给分析一下新建工程中系统自动生成的OnPaint()各条语句的意思!

楼主xiaoxinxin7(上帝啊!)2006-03-19 15:53:56 在 VC/MFC / 基础类 提问

void   CTestDlg::OnPaint()    
  {  
  if   (IsIconic())  
  {  
  CPaintDC   dc(this);   //   device   context   for   painting  
   
  SendMessage(WM_ICONERASEBKGND,   (WPARAM)   dc.GetSafeHdc(),   0);  
   
  //   Center   icon   in   client   rectangle  
  int   cxIcon   =   GetSystemMetrics(SM_CXICON);  
  int   cyIcon   =   GetSystemMetrics(SM_CYICON);  
  CRect   rect;  
  GetClientRect(&rect);  
  int   x   =   (rect.Width()   -   cxIcon   +   1)   /   2;  
  int   y   =   (rect.Height()   -   cyIcon   +   1)   /   2;  
   
  //   Draw   the   icon  
  dc.DrawIcon(x,   y,   m_hIcon);  
  }  
  else  
  {  
  CDialog::OnPaint();  
  }  
   
  }  
  问题点数:40、回复次数:4Top

1 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2006-03-19 16:02:11 得分 25

if   (IsIconic())  
  {  
  //如果窗口最小化了,显示Icon  
  CPaintDC   dc(this);   //   device   context   for   painting  
   
  SendMessage(WM_ICONERASEBKGND,   (WPARAM)   dc.GetSafeHdc(),   0);  
   
  //   Center   icon   in   client   rectangle  
  int   cxIcon   =   GetSystemMetrics(SM_CXICON);  
  int   cyIcon   =   GetSystemMetrics(SM_CYICON);  
  CRect   rect;  
  GetClientRect(&rect);  
  int   x   =   (rect.Width()   -   cxIcon   +   1)   /   2;  
  int   y   =   (rect.Height()   -   cyIcon   +   1)   /   2;  
   
  //   Draw   the   icon  
  dc.DrawIcon(x,   y,   m_hIcon);  
  }  
  else  
  {  
  //CDialog的默认处理  
  CDialog::OnPaint();  
  }  
  Top

2 楼xiaoxinxin7(上帝啊!)回复于 2006-03-19 16:20:42 得分 0

那这个显示ICON有什么实际意义呢?  
  请详细说明哈Top

3 楼soaroc(会飞的猪)回复于 2006-03-19 16:26:15 得分 15

就是窗口最小化时所显示的图标。Top

4 楼xiaoxinxin7(上帝啊!)回复于 2006-03-19 17:12:38 得分 0

但是如果没有这段语句,窗口最小化时仍然会显示图标,那要这个有什么用?Top

相关问题

  • 一个关于从另一个sql server2000数据库中生成的T_sql语句新建数据库,导致记录无法更新的解决办法?
  • 急需帮助生成SQL语句!!!!!
  • 如何察看生成的SQL语句
  • 怎么动态生成SQL语句?
  • ??关于生成SQL语句的问题??
  • 如何动态生成asp语句?
  • 怎样生成这样的语句?
  • SQL语句生成0-10000的数
  • 想用ASP 生成 SQL 插入语句
  • 想用ASP 生成 SQLSERVER 建库语句

关键词

  • dc
  • cyicon
  • cxicon
  • onpaint
  • rect
  • getsystemmetrics
  • cdialog
  • sm
  • 窗口最小化
  • 显示

得分解答快速导航

  • 帖主:xiaoxinxin7
  • DentistryDoctor
  • soaroc

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo