OnPaint()与OnDrawItem()的区别?

duduniu 2003-11-13 09:12:03
如题
...全文
417 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
petpetg 2004-01-01
  • 打赏
  • 举报
回复
好的,又学多样东西
  • 打赏
  • 举报
回复
自画按钮就用在OnDrawItem中处理.
如果你把它封闭成一个类的话就在OnPaint中处理.
yndfcd 2003-11-13
  • 打赏
  • 举报
回复
OnPaint是WM_PAINT有响应函数,用来绘制视图的。
OnDrawItem是WM_DRAWITEM的响应函数,只有自有OWNERDRAW属性的控件才会发送WM_DRAWITEM消息。
blueideakk 2003-11-13
  • 打赏
  • 举报
回复
up
topwork 2003-11-13
  • 打赏
  • 举报
回复
可以这样理解,OnDrawItem是画窗口中的子控件的,因为它的入口参数LPDRAWITEMSTRUCT带入不同子控件的相关参数,而且,你得把字控件设置成“自画”类型,才会调用到OnDrawItem,顺便说一下自画,不是所有设置成自画类型的控件都会调用父窗口的OnDrawItem,例如ListBox的自画,你就必须重载CListBox的DrawItem方法和MeasureItem方法才可以,但象菜单,按钮等的自画则会调用OnDrawItem。OnPaint和OnDrawItem不在一个范畴内,他是WM_PAINT的响应函数,凡是基于CWnd的类都有OnPaint事件发生,就是说凡是窗口都有WM_PAINT事件发生。(不知道我理解的对不对)
carbon107 2003-11-13
  • 打赏
  • 举报
回复
OnPaint()这个函数是在已经有形的控件上进行画图的
OnPaint()
{
在这里只是画原控件没有的图形
}

OnDrawItem()这个函数是自已去绘画一个控件,根据你想要的形状,图案.它是建立一个控件的外表而用到的
dzqsuper 2003-11-13
  • 打赏
  • 举报
回复
那要看你是在基于什么的工程里了
要是是文档类的话
那你一建成不就有个OnPaint吗
说明这个比较重要了
他是在你的程序每次都要重画的东东放里面
而另外一个则不然
blueideakk 2003-11-13
  • 打赏
  • 举报
回复
关注!

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧