普通函数 流程
1
. 添加
"
头文件
"
2
. 继承
"
类“
3
. 使用相应代码
control 流程
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)初始化连接
notify 流程
1
. 父窗口需要继承自 CWindowImpl
2
. 父窗口使用BEGIN_MSG_MAP_EX
3
. 父窗口添加 REFLECT_NOTIFICATIONS()
4
. 子窗口接收MSG_OCM_DRAWITEM(OnReflectedDrawItem)
5
. 子窗口添加DEFAULT_REFLECTION_HANDLER() 默认处理
custom draw 流程
1
. REFLECT_NOTIFICATIONS()
1
. 继承CCustomDraw
<
CBuffyTreeCtrl
>
2
. (
1
)REFLECTED_NOTIFY_CODE_HANDLER_EX(TVN_ITEMEXPANDING, OnItemExpanding)
(
2
)MSG_OCM_DRAWITEM(OnDrawItem)<- 由MSG_MSG_DRAWITEM转化来
ActiveX control 流程
1
.
"
atlcom.h
"
"
atlhost.h
"
2
. 继承public CAxDialogImpl
<
CMainDlg
>
3
. 初始化AtlAxWinInit();
4
. 最好传给_Module.Init(NULL, hInstance,
&
LIBID_ATLLib);
使用
列表
reflect 消息 : 18个
这里列举了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
*
WTL控件 : X
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)
Custom Draw控件 : 7个
Header controls
List
-
view controls
Rebar controls
Toolbar controls
Tooltip controls
Trackbar controls
Tree
-
view controls