普通函數 流程
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
1
. 添加
"
頭檔案
"
2
. 繼承
"
類“
3
. 使用相應代碼
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
control 流程
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
1. 引入"atlddx.h"
2. 繼承CWinDataExchange<self_class>
3. 聲明BEGIN_DDX_BEGIN(self_class)
4. 自定義control_class類, 繼承對應control_class
5. 聲明自定義類對象control_object
6. 使用DDX_CONTROL(CONTROL_ID, control_object)
7. Initial中 啟動DoDataExachange(DDX_LOAD)初始化連接配接
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
notify 流程
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
1
. 父視窗需要繼承自 CWindowImpl
2
. 父視窗使用BEGIN_MSG_MAP_EX
3
. 父視窗添加 REFLECT_NOTIFICATIONS()
4
. 子視窗接收MSG_OCM_DRAWITEM(OnReflectedDrawItem)
5
. 子視窗添加DEFAULT_REFLECTION_HANDLER() 預設處理
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
custom draw 流程
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
1
. REFLECT_NOTIFICATIONS()
1
. 繼承CCustomDraw
<
CBuffyTreeCtrl
>
2
. (
1
)REFLECTED_NOTIFY_CODE_HANDLER_EX(TVN_ITEMEXPANDING, OnItemExpanding)
(
2
)MSG_OCM_DRAWITEM(OnDrawItem)<- 由MSG_MSG_DRAWITEM轉化來
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
ActiveX control 流程
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
1
.
"
atlcom.h
"
"
atlhost.h
"
2
. 繼承public CAxDialogImpl
<
CMainDlg
>
3
. 初始化AtlAxWinInit();
4
. 最好傳給_Module.Init(NULL, hInstance,
&
LIBID_ATLLib);
使用
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
清單
reflect 消息 : 18個
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
這裡列舉了18個可以反映的消息:
o Control notifications: WM_COMMAND, WM_NOTIFY, WM_PARENTNOTIFY
o Owner drawing: WM_DRAWITEM, WM_MEASUREITEM, WM_COMPAREITEM, WM_DELETEITEM
o List Box keyboard messages : WM_VKEYTOITEM, WM_CHARTOITEM
o Others: WM_HSCROLL, WM_VSCROLL, WM_CTLCOLOR
*
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
WTL控件 : X
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
o 使用者控件: CStatic, CButton, CListBox, CComboBox,
CEdit, CScrollBar, CDragListBox
o 普通控件: CImageList, CListViewCtrl (CListCtrl
in
MFC),
CTreeViewCtrl (CTreeCtrl
in
MFC),
CHeaderCtrl,CToolBarCtrl,
CStatusBarCtrl, CTabCtrl,
CToolTipCtrl,
CTrackBarCtrl (CSliderCtrl
in
MFC),
CUpDownCtrl(CSpinButtonCtrl
in
MFC),
CProgressBarCtrl, CHotKeyCtrl,
CAnimateCtrl, CRichEditCtrl, CReBarCtrl,
CComboBoxEx,CDateTimePickerCtrl,
CMonthCalendarCtrl, CIPAddressCtrl
o 普通控件(MFC中沒有的): CPagerCtrl, CFlatScrollBar, CLinkCtrl
o 這裡還有一些 WTL
-
Specific 類:
CBitmapButton,
CCheckListViewCtrl (list view control with check boxes),
CTreeViewCtrlEx andCTreeItem (used together, CTreeItem wraps an HTREEITEM),
CHyperLink (clickable hyperlink, available on all OSes)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
Custom Draw控件 : 7個
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
Header controls
List
-
view controls
Rebar controls
Toolbar controls
Tooltip controls
Trackbar controls
Tree
-
view controls
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)