天天看點

WTL_代碼使用 流程

普通函數 流程

WTL_代碼使用 流程
1
   . 添加 
   "
   頭檔案
   "
   

   2
   . 繼承 
   "
   類“
   

   3
   . 使用相應代碼
        
WTL_代碼使用 流程

control 流程

WTL_代碼使用 流程
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)初始化連接配接
        
WTL_代碼使用 流程

notify 流程

WTL_代碼使用 流程
1
   .  父視窗需要繼承自 CWindowImpl

   2
   .  父視窗使用BEGIN_MSG_MAP_EX

   3
   .  父視窗添加 REFLECT_NOTIFICATIONS()

   4
   .  子視窗接收MSG_OCM_DRAWITEM(OnReflectedDrawItem)

   5
   .  子視窗添加DEFAULT_REFLECTION_HANDLER() 預設處理
        
WTL_代碼使用 流程

custom draw 流程

WTL_代碼使用 流程
1
   . REFLECT_NOTIFICATIONS()


   1
   . 繼承CCustomDraw
   <
   CBuffyTreeCtrl
   >
   

   2
   . (
   1
   )REFLECTED_NOTIFY_CODE_HANDLER_EX(TVN_ITEMEXPANDING, OnItemExpanding)
   (
   2
   )MSG_OCM_DRAWITEM(OnDrawItem)<- 由MSG_MSG_DRAWITEM轉化來
  
  
     
        
WTL_代碼使用 流程

ActiveX control 流程

WTL_代碼使用 流程
1
   . 
   "
   atlcom.h
   "
    
   "
   atlhost.h
   "
   

   2
   .  繼承public CAxDialogImpl
   <
   CMainDlg
   >
   

   3
   .  初始化AtlAxWinInit();

   4
   .  最好傳給_Module.Init(NULL, hInstance, 
   &
   LIBID_ATLLib);

   使用
        
WTL_代碼使用 流程

清單

reflect 消息 : 18個

WTL_代碼使用 流程
這裡列舉了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_代碼使用 流程

WTL控件 : X

WTL_代碼使用 流程
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)
        
WTL_代碼使用 流程

Custom Draw控件 : 7個 

WTL_代碼使用 流程
Header controls
List
   -
   view controls
Rebar controls
Toolbar controls
Tooltip controls
Trackbar controls
Tree
   -
   view controls
        
WTL_代碼使用 流程

繼續閱讀