+ -
当前位置:首页 → 问答吧 → CProgressCtrl内部为什么要通过消息来实现?

CProgressCtrl内部为什么要通过消息来实现?

时间:2011-11-29

来源:互联网

今天翻看MFC的代码发现控件是用发送消息来实现的,例如
_AFXCMN_INLINE COLORREF CProgressCtrl::SetBkColor(COLORREF clrNew)
{ ASSERT(::IsWindow(m_hWnd)); return (COLORREF) ::SendMessage(m_hWnd, PBM_SETBKCOLOR, 0, (LPARAM) clrNew); }
_AFXCMN_INLINE void CProgressCtrl::SetRange(short nLower, short nUpper)
{ ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, PBM_SETRANGE, 0, MAKELPARAM(nLower, nUpper)); }
望高手给予解惑,不胜感激!

作者: chenqi0623   发布时间: 2011-11-29

木有人知道吗?自己顶一下!!!

作者: chenqi0623   发布时间: 2011-11-29

不都是发消息吗?过去sdk编程,都是发消息。

作者: jennyvenus   发布时间: 2011-11-29

引用 2 楼 jennyvenus 的回复:

不都是发消息吗?过去sdk编程,都是发消息。


我想问的是为什么要通过发消息来实现,成员函数是在哪里?这样做比直接赋值的优越性在哪里?

作者: chenqi0623   发布时间: 2011-11-29

F11进入函数内部看看,源代码面前无真相(侯杰说的)

作者: VisualEleven   发布时间: 2011-11-29

发消息挺好的

作者: Kaile   发布时间: 2011-11-29

引用 3 楼 chenqi0623 的回复:
引用 2 楼 jennyvenus 的回复:

不都是发消息吗?过去sdk编程,都是发消息。


我想问的是为什么要通过发消息来实现,成员函数是在哪里?这样做比直接赋值的优越性在哪里?

一开始就是发消息的,先有sdk编程,后有mfc。发消息的好处就太多了,跨线程,跨进程,跨过好多不能跨的东西。

作者: jennyvenus   发布时间: 2011-11-29