windows处处是消息

来源:互联网 发布:光子嫩肤 效果 知乎 编辑:程序博客网 时间:2024/06/09 20:12

以前经常看到书上说,Windows是基于消息机制的。

虽然知道这个概念,但一直没有很深刻的体会。

最近在学习SDK编程时,才发现,在windows里面,处处是消息啊。


比如以前用MFC时,要在ListCtrl里增加一栏:

CListCtrl lctrl;LVCOLUMN lvc;lvc.xxx = xxx;lctrl.InsertColumn(n, &lvc);

然而,在SDK里却是这样的:

HWND hWndList = ::GetDlgItem(hDlg, IDC_LIST);LVCOLUMN lvc;lvc.xxx = xxx;::SendMessage(hWndList, LVM_INSERTCOLUMN, 0, (LPARAM)&lvc);

实际上,在MFC里,CListCtrl的成员函数InsertColumn也是通过发消息来实现的:

_AFXCMN_INLINE int CListCtrl::InsertColumn(int nCol, const LVCOLUMN* pColumn){ ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, LVM_INSERTCOLUMN, nCol, (LPARAM)pColumn); }










原创粉丝点击