Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > WM_DRAWITEM/CWnd::OnDrawItem
【标  题】:WM_DRAWITEM/CWnd::OnDrawItem
【关键字】:WM_DRAWITEM/CWnd,OnDrawItem
【来  源】:http://blog.csdn.net/claider/archive/2007/04/18/1569592.aspx

WM_DRAWITEM/CWnd::OnDrawItem

Your Ad Here 一直以来闹不清楚WM_PAINT和WM_DRAWITEM有什么关系,前者不必多言,后者在自绘控件的相关帖子中被频繁提及。
今日 经过试验以及参考MSDN得出:
WM_DRAWITEM均被控件的父窗体调用和处理。举简单例子如下:
Project有三个主要的类:
1、CApp theApp
2、CDialog Dlg
3、CMyButton Btn;//其parent为dlg

    若要自绘按钮CMyButton,还需重载CMyButton::OnPaint(),而每当需要重绘按钮时,dlg对象的CDialog::OnDrawItem被调用,根据参数可判断当前在重绘哪个控件(子窗体),此时便允许窗体作一些操作。
     OnDrawItem在有MainFrame的程序中被MainFrame调用,而此处并非如此,则call stack为
CDialog::DoModal()
CEblWndApp::InitInstance()

       结论:WM_PAINT与WM_DRAWITEM分属不同的调用层面,经常相继被触发,故容易混淆,其实完全可看作不相关的消息。
WS_CLIPCHILDREN与WS_CLIPSIBLINGS:【上一篇】
.NET(C#)连接各类数据库:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • 《传奇3》关于法师升幻影的一点想法
  • gdb_guide (pdf文件)
  • It's time to talk about Creator Pattern AGAIN!
  • IBM存储河南总代理(郑州汉明)-2006年存储硬件收入排名 EMC领跑IBM夺第二!
  • 用VC+ado进行简易数据库浏览[原创]
  • 选择Thinkpad X60S的理由
  • 架设Nokia J2ME开发环境 Step by Step
  • 用VB实现井字游戏
  • 如何提高linux命令行的工作效率
  • [转载]Linux Kernel Procfs Guide
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.