




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、7.1標(biāo)準(zhǔn)控件以及對(duì)應(yīng)的標(biāo)準(zhǔn)控件以及對(duì)應(yīng)的MFC類類控件MFC類說明按鈕(button)CButton命令按鈕,端框,復(fù)選框靜態(tài)框(static)CStatic顯示文本和圖像文本框(edit)CEdit接收用戶的文本輸入列表框(listbox)CListBox文本串列表組合框ComboBox CComboBox文本框+列表框滾動(dòng)條ScrollBarCScrollBar水平/垂直 WM_COMMAND wNotifyCode = HIWORD(wParam); / notification code wID = LOWORD(wParam); / item, control, or accele
2、rator identifier hwndCtl = (HWND) lParam; / handle of control 7.1.1 按鈕與按鈕與CButton樣式樣式 push button 按壓式(命令)按鈕按壓式(命令)按鈕 radio button 單選按鈕單選按鈕 check box 復(fù)選框復(fù)選框 group box 群組框群組框通知消息通知消息: BN_CLICKED,BN_DOUBLECLICKED成員函數(shù)成員函數(shù):int Cbutton:GetCheck() 獲得單選或復(fù)選按鈕的狀態(tài):獲得單選或復(fù)選按鈕的狀態(tài):1-checked 0-unchecked UINT GetSta
3、te()Mask 0 x0003 0-unchecked 1-checked 0 x0004 1-hilighted 0 x0008 1-has focusTabstop屬性屬性Group屬性屬性 Tabstop屬性屬性:Tab和和Shift+Tab鍵將輸入焦鍵將輸入焦點(diǎn)從一個(gè)控件移到另一個(gè)控件。點(diǎn)從一個(gè)控件移到另一個(gè)控件。 Group屬性屬性:按按Tab順序順序 在其后的控件都在其后的控件都屬于一組。如果隨后的控件也有屬于一組。如果隨后的控件也有Group屬性,則開始新的一組。屬性,則開始新的一組。使用命令按鈕:使用命令按鈕:為指定為指定id的命令按鈕響應(yīng)的命令按鈕響應(yīng)BN_CLICKED消
4、息通消息通知碼知碼使用群組框:使用群組框: 不需對(duì)其作任何消息響應(yīng),其作用只是直觀的不需對(duì)其作任何消息響應(yīng),其作用只是直觀的告訴用戶同一組操作告訴用戶同一組操作使用單選按鈕:使用單選按鈕: 用戶按下用戶按下 表示選中,響應(yīng)表示選中,響應(yīng)BN_CLICKED 使用復(fù)選框:使用復(fù)選框: 用用GetCheck()或或GetState()函數(shù)獲取其是否選中函數(shù)獲取其是否選中創(chuàng)建自畫式按鈕資源編輯: 在對(duì)話框資源模板中添加一個(gè)命令按鈕 設(shè)置按鈕的 BS_OWNERDRAW屬性 設(shè)置ID和Caption 創(chuàng)建四個(gè)位圖 ID設(shè)置為如下的字符串 按鈕的Caption+ “U” UP 按鈕的Caption+ “
5、D” DOWN 按鈕的Caption+ “F” FOCUS 按鈕的Caption+ “E” ENABLE對(duì)CDialog派生類編碼 添加成員變量 CBitmapButton m_bmpbtn; 在InitDialog函數(shù)中調(diào)用 m_bmpbtn.AutoLoad (IDC_BUTTON,this)7.1.2 文本框與文本框與CEdit樣式:單行編輯文本框樣式:單行編輯文本框 多行編輯文本框多行編輯文本框通知消息:通知消息:EN_CHANE,EN_UPDATECWnd成員函數(shù):成員函數(shù): CWnd:GetWindowText() 獲取單行編輯文本框輸入內(nèi)容獲取單行編輯文本框輸入內(nèi)容 CEdit成
6、員函數(shù):成員函數(shù):獲取輸入信息int GetLineCount( ) const; 獲取輸入行數(shù)int GetLine( int nIndex, LPTSTR lpszBuffer ) const;int GetLine( int nIndex, LPTSTR lpszBuffer, int nMaxLength ) const;獲取指定行的輸入內(nèi)容int LineLength( int nLine = -1 ) const;獲取指定行的字符串長度文本框狀態(tài)文本框狀態(tài)BOOL GetModify( ) const;void SetModify( BOOL bModified = TRUE );
7、BOOL CanUndo( ) const;選中字符串選中字符串DWORD GetSel( ) const;void GetSel( int& nStartChar, int& nEndChar ) const;void SetSel( DWORD dwSelection, BOOL bNoScroll = FALSE );void SetSel( int nStartChar, int nEndChar, BOOL bNoScroll = FALSE );編輯剪貼編輯剪貼 void ReplaceSel( LPCTSTR lpszNewText, BOOL bCanUndo
8、= FALSE ); BOOL Undo( ); void Clear( ); void Copy( ); void Cut( ); void Paste( );口令口令 TCHAR GetPasswordChar( ) const; void SetPasswordChar( TCHAR ch );7.1.3列表框與列表框與CListBox STYLE: LBS_NOTIFY 通知碼 LBN_DBLCLK LBN_SELCHANGE ClistBox主要成員函數(shù)int GetCurSel( ) const;單選框被選中項(xiàng)的索引值int GetCount( ) const;選項(xiàng)個(gè)數(shù)GetSel
9、Items(int max,LPINT index)多選框被選中項(xiàng)的索引值int GetSel( int nIndex ) const;判斷某一項(xiàng)是否被選中int GetText( int nIndex, LPTSTR lpszBuffer ) const;void GetText( int nIndex, CString& rString ) const;指定索引項(xiàng)的字符串增減表項(xiàng)int AddString( LPCTSTR lpszItem );int DeleteString( UINT nIndex );int InsertString( int nIndex, LPCTSTR
10、 lpszItem );void ResetContent( );使用列表框1.設(shè)置屬性 單選或多選 是否排序 2.初始化 添加列表項(xiàng)AddString();3.響應(yīng)響應(yīng)LBN_DBLCLK或 LBN_SELCHANGE4.獲取用戶選項(xiàng)信息 單選列表框:調(diào)用調(diào)用 GetCurSel( )獲得選中項(xiàng)索引獲得選中項(xiàng)索引調(diào)用調(diào)用GetText()獲得字符串信息()獲得字符串信息多選列表框:調(diào)用調(diào)用GetSelItems()獲得選中項(xiàng)索引獲得選中項(xiàng)索引調(diào)用調(diào)用GetText()獲得字符串信息()獲得字符串信息7.1.4組合框與CComboBox組合框的使用:1.設(shè)置組合框樣式 CBS_DROPDOWN
11、 CBS_DROPDOWNLIST CBS_SIMPLE 2.初始化 添加列表項(xiàng)(同列表框) 設(shè)置缺省選項(xiàng)消息說明CBN_DBLCLK項(xiàng)目被雙擊時(shí)發(fā)送CBN_SELCHANGE選項(xiàng)被修改時(shí)發(fā)送CBN_SELENDOK選中某一項(xiàng)時(shí)發(fā)送CBN_SELENDCANCEL取消選擇時(shí)發(fā)送CBN_EDITUPDATE編輯框中的文本將要被更改時(shí)發(fā)送CBN_EDITCHANGE編輯框中的文本已經(jīng)被更改時(shí)發(fā)送CBN_KILLFOCUS組合框失去輸入焦點(diǎn)時(shí)發(fā)送3.響應(yīng)通知消息CBN_SELCHANGE4.獲取用戶選項(xiàng)信息 int GetCurSel()int GetLBText()7.1.5滾動(dòng)條v消息: WM_
12、HSCROLL WM_VSCROLLv通知碼: SB_LINEUP SB_LINEDOWN SB_PAGEUP SB_PAGEDOWN SB_LINELEFT SB_LINERIGHT SB_PAGELEFT SB_PAGERIGHT SB_THUMBPOSITION SB_THUMBTRACK 操作說明GetScrollPos獲取滾動(dòng)條的當(dāng)前位置SetScrollPos設(shè)置滾動(dòng)條的當(dāng)前位置SetScrollRange設(shè)置最小和最大位置GetScrollRange獲取當(dāng)前的最小和最大位置ShowScrollBar顯示或隱藏滾動(dòng)條CScrollBarCScrollBar類類v使用滾動(dòng)條:使用滾動(dòng)
13、條: 1. 初始化:設(shè)定滾動(dòng)范圍,初始位置void SetScrollRange( int nMinPos, int nMaxPos, BOOL bRedraw = TRUE ) int SetScrollPos( int nPos, BOOL bRedraw = TRUE );SetScrollInfo() BOOL SetScrollInfo( LPSCROLLINFO lpScrollInfo, BOOL bRedraw = TRUE );typedef struct tagSCROLLINFO UINT cbSize; UINT fMask; /SIF_ALL(SIF_PAGE, SI
14、F_POS, SIF_RANGE, and SIF_TRACKPOS) int nMin; int nMax; UINT nPage; int nPos; int nTrackPos; SCROLLINFO; typedef SCROLLINFO FAR *LPSCROLLINFO; 2.響應(yīng)WM_HSCROLL或WM_VSCROLL消息分別就不同的通知碼,獲取滾動(dòng)條的新位置 afx_msg void OnVScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar ); npos for SB_THUMBPOSITION or SB_THU
15、MBTRACK; 調(diào)用調(diào)用SetScrollPos函數(shù)重新設(shè)置滾動(dòng)函數(shù)重新設(shè)置滾動(dòng)條的位置條的位置7.2 使用通用控件使用通用控件 WM_NOTIFY消息消息 進(jìn)度條進(jìn)度條 滑桿滑桿 微調(diào)按鈕微調(diào)按鈕 列表控件列表控件 樹狀控件樹狀控件 時(shí)間日期控件時(shí)間日期控件 動(dòng)畫控件動(dòng)畫控件WM_NOTIFY消息消息 wParam 控件的子窗口控件的子窗口ID lParam NMHDR * typedef struct tagNMHDR HEND hwndFrom; UINT idFrom; UINT code; NMHDR; 通知碼 說 明NM_CLICK鼠標(biāo)左鍵單擊控件NM_DBLCLK鼠標(biāo)左鍵雙擊控
16、件NM_RCLICK鼠標(biāo)右鍵單擊控件NM_RDBLCLK鼠標(biāo)右鍵雙擊控件NM_RETURN控件具有輸入焦點(diǎn)時(shí)按下 Enter 鍵NM_KILLFOCUS控件失去輸入焦點(diǎn)NM_SETFOCUS控件獲得輸入焦點(diǎn)7.2.1 7.2.1 滑塊控件滑塊控件 滑塊控件的樣式滑塊控件的樣式樣式說明TBS_HORZ水平放置滑桿TBS_VERT豎直放置滑桿TBS_LEFT刻度線畫在豎直滑桿的左側(cè)TBS_RIGHT刻度線畫在豎直滑桿的右側(cè)TBS_TOP刻度線畫在水平滑桿的上方TBS_BOTTOM刻度線畫在水平滑桿的下方TBS_BOTH刻度線畫在滑桿的兩側(cè)TBS_NOTICKS清除滑桿的刻度線TBS_AUTOTIC
17、KS在滑桿范圍內(nèi)每個(gè)停止位處畫一條刻線CSliderCtrlCSliderCtrl類類操作說明SetRange設(shè)置滑塊的最小和最大位置GetRange獲取滑塊的最小和最大位置SetPos設(shè)置滑塊的當(dāng)前位置GetPos獲取滑塊的當(dāng)前位置SetTicFreq設(shè)置滑塊上相鄰兩個(gè)標(biāo)記之間的距離(樣式應(yīng)選中 Tickmarks 和 Auto ticks)SetLineSize設(shè)置行的大小,即按鍵盤上的方向鍵時(shí)滑塊位置變化的大小GetLineSize獲取行的大小SetPageSize設(shè)置頁的大小,即按鍵盤上的 Pagedown/Pageup 時(shí)滑塊位置變化的大小GetPageSize獲取頁的大小 控件的初
18、始化控件的初始化 設(shè)置范圍設(shè)置范圍 slider1.SetRange(0,255); 設(shè)置行大小設(shè)置行大小 m_slider1.SetLineSize(3); 設(shè)置頁大小設(shè)置頁大小 m_slider1.SetPageSize(50);消息響應(yīng)消息響應(yīng) WM_HSCROLL WM_HSCROLL 或或 WM_VSCROLLWM_VSCROLL調(diào)用調(diào)用GetPosGetPos()()函數(shù)獲取滑塊位置函數(shù)獲取滑塊位置7.2.2 7.2.2 微調(diào)按鈕控件微調(diào)按鈕控件微調(diào)按鈕控件樣式微調(diào)按鈕控件樣式樣式說 明UDS_HORZ使箭頭呈水平方向UDS_WRAP如果前進(jìn)或后退超出了最大值或最小值,則循環(huán)UDS
19、_NOTHOUSANDS清除千位分割符UDS_SETBUDDYINT微調(diào)按鈕的值改變時(shí),實(shí)時(shí)更新伙伴中的文本UDS_AUTOBUDDY選擇 Tab 順序緊接在它前面的控件為伙伴UDS_ALIGNRIGHT將微調(diào)按鈕填在伙伴控件的右邊緣UDS_ALIGNLEFT將微調(diào)按鈕填在伙伴控件的左邊緣操作說 明SetPos設(shè)置微條按鈕的當(dāng)前值GetPos獲取當(dāng)前值SetRange設(shè)置取值范圍GetRange獲取取值范圍SetBuddy通過指向伙伴的 CWnd 指針來連接兩者GetBuddy獲得指向當(dāng)前伙伴的 CWnd 指針SetAccel設(shè)置持續(xù)按住箭頭時(shí)的加速度GetAccel獲得當(dāng)前的加速度CSpin
20、ButtonCtrlCSpinButtonCtrl類類初始化初始化設(shè)置范圍設(shè)置范圍 m_spin1.SetRange(0,200);設(shè)置當(dāng)前位置設(shè)置當(dāng)前位置 m_spin1.SetPos(20); WM_VSCROLL( WM_VSCROLL(或或WM_HCROLL)WM_HCROLL)消息消息 一般情況下不需要響應(yīng)一般情況下不需要響應(yīng)7.2.3 7.2.3 進(jìn)度條控件和動(dòng)畫控件進(jìn)度條控件和動(dòng)畫控件進(jìn)度條控件進(jìn)度條控件樣式樣式 PBS_VERTICAL PBS_SMOOTH.函數(shù)說 明SetRange為進(jìn)度條設(shè)置范圍,如果不設(shè)置則默認(rèn)為 0 到 100GerRange獲取范圍SetPos設(shè)置當(dāng)
21、前位置GetPos獲取當(dāng)前位置SetStep設(shè)置步長StepIt進(jìn)度條以步長前進(jìn)CProgressCtrlCProgressCtrl類類初始化初始化 設(shè)置范圍設(shè)置范圍 m_progress1.SetRange(0,100); 設(shè)置步長設(shè)置步長 m_progress1.SetStep(10);操作操作StepIt()動(dòng)畫控件動(dòng)畫控件 播放播放avi格式的文件格式的文件 樣式樣式 ACS_CENTER 中間對(duì)齊中間對(duì)齊, 不調(diào)整大小不調(diào)整大小 ACS_TRANSPARENT 背景透明背景透明 ACS_AUTOPLAY 自動(dòng)播放自動(dòng)播放CAnimateCtrl BOOL Open( LPCTSTR
22、lpszFileName );BOOL Play( UINT nFrom, UINT nTo, UINT nRep );BOOL Stop( );BOOL Close( );通知消息通知消息WM_COMMANDACN_START ACN_STOP 7.2.4 7.2.4 圖像列表控件(圖像列表控件(CImageListCImageList) 一系列圖片的集合一系列圖片的集合圖片大小相同圖片大小相同每個(gè)圖片有一個(gè)從零開始的索引號(hào)每個(gè)圖片有一個(gè)從零開始的索引號(hào) 不單獨(dú)使用,可以和以下控件一起使用不單獨(dú)使用,可以和以下控件一起使用 list controls list controls tree c
23、ontrolstree controlstab controlstab controls BOOLBOOL Create(Create( intint cx, , intint cy, , UINTUINT nFlags, , intint nInitial, , intint nGrow );); intint Add(Add( HICONHICON hIcon ););.CImageListCImageList類的成員函數(shù)類的成員函數(shù) #define ILC_MASK 0 x0001 #define ILC_COLOR 0 x0000 #define ILC_COLORDDB 0 x00F
24、E #define ILC_COLOR4 0 x0004 #define ILC_COLOR8 0 x0008 #define ILC_COLOR16 0 x0010 #define ILC_COLOR24 0 x0018 #define ILC_COLOR32 0 x0020nFlagsnFlags7.2.5 7.2.5 列表控件列表控件樣式描述LVS_ICON大圖標(biāo)視圖LVS_SMALLICON小圖標(biāo)視圖LVS_LIST列表視圖LVS_REPORT報(bào)表視圖LVS_ALIGNLEFT在圖標(biāo)和小圖標(biāo)視圖中,項(xiàng)目左對(duì)齊LVS_EDITLABELS允許項(xiàng)文本在原處編輯LVS_NOSORTHEADE
25、R列標(biāo)題不具有按鈕功能LVS_SHAREIMAGELISTS允許圖像列表被多個(gè)列表控件使用LVS_SORTASCENDING以項(xiàng)文本的升序排列LVS_SORTDESCENDING以項(xiàng)文本的降序排列樣式樣式改變樣式改變樣式LONG GetWindowLong( HWND hWnd,LONG GetWindowLong( HWND hWnd,int nIndexint nIndex) )LONG SetWindowLong( HWND hWndLONG SetWindowLong( HWND hWnd, , int nIndexint nIndex, / offset of value to se
26、t, / offset of value to set LONG dwNewLongLONG dwNewLong / new value); / new value); GWL_STYLEGWL_STYLE CWindow:GetWindowLong LONG GetWindowLong( int nIndex ) const;EXAMPEXAMP / Get the current window style. DWORD dwStyledwStyle = GetWindowLong(hwndLV, WL_STYLE); / Only set the window style if the v
27、iew bits have changed. if (dwStyle & LVS_TYPEMASK) != dwView) SetWindowLong(hwndLV, GWL_STYLE, (dwStyle & LVS_TYPEMASK) | dwView); CListCtrlCListCtrl類類函數(shù)說明InsertColumn在列表中插入新列DeleteColumn刪除列表中的一列InsertItem在列表中插入新項(xiàng)DeleteItem刪除列表中的一項(xiàng)DeleteAllItems刪除所有項(xiàng)GetColumn得到某一列的屬性SetColumnWidth設(shè)置報(bào)表或列表視圖中某
28、一列的寬度GetColumnWidth得到報(bào)表或列表視圖中某一列的寬度GetItem得到某一項(xiàng)的屬性GetItemCount得到列表中的項(xiàng)數(shù)SetItemText設(shè)置某一項(xiàng)的文本SetItemState設(shè)置某一項(xiàng)的狀態(tài)設(shè)置圖像列表設(shè)置圖像列表SetImageListSetImageList( CImageList( CImageList* * pImageList pImageList, ,intint nImageList nImageList ) ) LVSIL_NORMAL LVSIL_NORMAL Image list with large icons Image list with
29、large iconsLVSIL_SMALL LVSIL_SMALL Image list with small iconsImage list with small iconsLVSIL_STATE LVSIL_STATE Image list with state imagesImage list with state images添加或插入新列添加或插入新列 int InsertColumn( int nCol, const LVCOLUMN* pColumn ); int InsertColumn( int nCol, LPCTSTR lpszColumnHeading, int nF
30、ormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1 ); struct struct _LVCOLUMN _LVCOLUMN UINT mask; UINT mask;intint fmt fmt; ; intint cx cx; ; LPTSTR pszText LPTSTR pszText; ; int int cchTextMax cchTextMax; ; int int iSubItem iSubItem; ; LVCOLUMN, FAR LVCOLUMN, FAR * *LPLVCOLUMN; LPLVCOLUMN; (
31、mask )( mask )LVCF_FMT LVCF_FMT The fmtThe fmt member is valid. member is valid. LVCF_SUBITEM LVCF_SUBITEM The iSubItemThe iSubItem member is valid member is valid LVCF_TEXT LVCF_TEXT The pszTextThe pszText member is valid member is valid LVCF_WIDTH LVCF_WIDTH The cxThe cx member is valid. member is
32、 valid. ( fmt( fmt ) )LVCFMT_CENTER LVCFMT_CENTER Text is centeredText is centeredLVCFMT_LEFT LVCFMT_LEFT Text is left-alignedText is left-alignedLVCFMT_RIGHT LVCFMT_RIGHT Text is right-aligned.Text is right-aligned. LV_COLUMNLV_COLUMN添加表項(xiàng)添加表項(xiàng) InsertItemInsertItemint InsertItem( const LVITEM* pItem
33、);int InsertItem( int nItem, LPCTSTR lpszItem );int InsertItem( int nItem, LPCTSTR lpszItem, int nImage );int InsertItem( UINT nMask, int nItem, LPCTSTR lpszItem, UINT nState, UINT nStateMask, int nImage, LPARAM lParam ); SetItemBOOL SetItem( const LVITEM* pItem );BOOL SetItem( int nItem, int nSubIt
34、em, UINT nMask, LPCTSTR lpszItem, int nImage, UINT nState, UINT nStateMask, LPARAM lParam structstruct _LVITEM _LVITEM UINT mask; UINT mask; intint iItem iItem; ; intint iSubItem iSubItem; ; UINT state;UINT state; UINT stateMaskUINT stateMask; ; LPTSTR pszTextLPTSTR pszText; ; intint cchTextMax cchT
35、extMax; ; intint iImage iImage; ; LPARAM lParamLPARAM lParam; ; LVITEM, FAR LVITEM, FAR * *LPLVITEM; LPLVITEM; Two important members:Two important members:iItemiItem : : zero-based index of the item zero-based index of the itemiSubItemiSubItem: : one-based index of a subitem one-based index of a sub
36、item(mask)(mask)LVIF_TEXTLVIF_TEXT The pszTextThe pszText member is valid member is valid or must be filled in or must be filled in LVIF_IMAGELVIF_IMAGE The iImageThe iImage member is valid member is valid or must be filled in or must be filled in LV_ITEMLV_ITEM處理消息處理消息 NM_CLICK: NM_CLICK: NM_DBLCLK
37、NM_DBLCLKlpnmlvlpnmlv =( =(LPNMLISTVIEW) lParamLPNMLISTVIEW) lParamtypedef struct tagNMLISTVIEWtypedef struct tagNMLISTVIEW NMHDR hdr NMHDR hdr; ; int iItem int iItem; ; int iSubItem int iSubItem; ; UINT uNewState UINT uNewState; ; UINT uOldState UINT uOldState; ; UINT uChanged UINT uChanged; ; POIN
38、T ptAction POINT ptAction; ; LPARAM lParam LPARAM lParam; ; NMLISTVIEW, FAR NMLISTVIEW, FAR * *LPNMLISTVIEW;LPNMLISTVIEW; UINT GetItemStateUINT GetItemState( int( int nItem nItem, UINT nMask, UINT nMask ) ) const; const; LVIS_SELECTED LVIS_SELECTED UINT GetSelectedCountUINT GetSelectedCount( ) const
39、( ) const CStringCString GetItemText GetItemText( int( int nItem nItem, int, int nSubItem nSubItem ) ) const;const;獲取表項(xiàng)信息獲取表項(xiàng)信息7.2.5 7.2.5 樹狀控件樹狀控件 StylesStyles TVS_HASLINES TVS_LINESATROOT TVS_HASBUTTONS TVS_EDITLABELS . CTreeCtrlCTreeCtrl類類操作說明DeleteAllItems刪除樹中的所有項(xiàng)DeleteItem刪除樹中的某一項(xiàng)Expand展開或折疊某一項(xiàng)
40、的子項(xiàng)GetChildItem獲取某一項(xiàng)的子項(xiàng)GetItemText獲取某一項(xiàng)的文本GetParentItem獲取某一項(xiàng)的父項(xiàng)GetRootItem獲取一棵樹的根GetSelectItem獲取當(dāng)前選擇的項(xiàng)InsertItem在樹中插入新的項(xiàng)SelectItem選擇一個(gè)指定的項(xiàng)SetImageList設(shè)置與樹有關(guān)的圖像列表SetItem設(shè)置某一項(xiàng)的屬性SetItemImage建立圖像與某一項(xiàng)的關(guān)聯(lián)SetItemText設(shè)置某一項(xiàng)的文本初始化初始化 SetImageListSetImageList( ( CImageListCImageList * * pImageList, , intint n
41、ImageListType );); TVSIL_NORMALTVSIL_NORMAL TVSIL_STATETVSIL_STATE HTREEITEM InsertItemHTREEITEM InsertItem( LPCTSTR ( LPCTSTR lpszItem, , intint nImage, , intint nSelectedImage, ,HTREEITEM HTREEITEM hParent = TVI_ROOT, = TVI_ROOT, HTREEITEM HTREEITEM hInsertAfter = = TVI_LAST);TVI_LAST); HTREEITEM
42、InsertItem( LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST ); HTREEITEM InsertItem( LPTVINSERTSTRUCT lpInsertStruct );typedef struct tagTVITEM UINT mask; HTREEITEM hItem; UINT state; UINT stateMask; LPTSTR pszText; int cchTextMax; int iImage; int iSelectedImage; in
43、t cChildren; LPARAM lParam; TVITEM, FAR *LPTVITEM;typedef struct tagTVINSERTSTRUCT HTREEITEM hParent; HTREEITEM hInsertAfter;#if (_WIN32_IE = 0 x0400) union TVITEMEX itemex; TVITEM item; DUMMYUNIONNAME;#else TVITEM item;#endif TVINSERTSTRUCT, FAR *LPTVINSERTSTRUCT;ExempTVINSERTSTRUCT tvInsert;tvInse
44、rt.hParent = NULL;tvInsert.hInsertAfter = NULL;tvInsert.item.mask = TVIF_TEXT;tvInsert.item.pszText = _T(United States);HTREEITEM hCountry = m_tree.InsertItem(&tvInsert);HTREEITEM hPA = m_tree.InsertItem (TVIF_TEXT,_T(Pennsylvania), 0, 0, 0, 0, 0, hCountry, NULL);HTREEITEM hWA = m_tree.InsertIte
45、m (_T(Washington),0, 0, hCountry, hPA);m_tree.InsertItem(_T(Pittsburgh), hPA, TVI_SORT);m_tree.InsertItem(_T(Harrisburg), hPA, TVI_SORT);m_tree.InsertItem(_T(Altoona), hPA, TVI_SORT);m_tree.InsertItem(_T(Seattle), hWA, TVI_SORT);m_tree.InsertItem(_T(Kalaloch), hWA, TVI_SORT);m_tree.InsertItem(_T(Yak
46、ima), hWA, TVI_SORT);消息處理消息處理 TVN_SELCHANGEDTVN_SELCHANGED獲取當(dāng)前選中的項(xiàng)獲取當(dāng)前選中的項(xiàng)HTREEITEM GetSelectedItem( )獲取指定項(xiàng)目的文本獲取指定項(xiàng)目的文本CString GetItemText( HTREEITEM hItem ) const獲取父節(jié)點(diǎn)獲取父節(jié)點(diǎn)HTREEITEM GetParentItem( HTREEITEM hItem )Exampvoid CMyTreeCtrlDlg:OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) NM_TREEV
47、IEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;CString str;HTREEITEM hitem = m_tree.GetSelectedItem(); /獲取當(dāng)前選中的項(xiàng)獲取當(dāng)前選中的項(xiàng)while(hitem) /當(dāng)當(dāng)hitem不為空時(shí)不為空時(shí)str= m_tree.GetItemText(hitem)+/ +str; /獲取指定項(xiàng)目的文本獲取指定項(xiàng)目的文本hitem=m_tree.GetParentItem(hitem); /獲取父節(jié)點(diǎn)獲取父節(jié)點(diǎn)m_edit.SetWindowText(str); /在編輯框中顯示路徑在編輯框中顯示路徑*pResult
48、 = 0;7.3 7.3 使用使用ActiveXActiveX控件控件 基于基于COMCOM(組件對(duì)象模型)和(組件對(duì)象模型)和DCOMDCOM(分布(分布式組件對(duì)象模型)技術(shù)式組件對(duì)象模型)技術(shù) 前身是前身是OLEOLE控件控件 容器(容器(ContainerContainer) 方法、屬性和事件方法、屬性和事件屬性屬性: :控件的外觀和特征方法方法: :執(zhí)行對(duì)控件的各種操作事件事件: :相當(dāng)與普通控件的消息通知碼 Click KeyDown安裝安裝ActiveXActiveX控件控件 拷貝相關(guān)文件到硬盤拷貝相關(guān)文件到硬盤動(dòng)態(tài)連接庫動(dòng)態(tài)連接庫(.DLL .EXE)(.DLL .EXE)幫助幫
49、助(.HLP)(.HLP)許可證許可證(.LIC)(.LIC) 注冊(cè)注冊(cè)WindowsWindows注冊(cè)表中注冊(cè)表中Regsvr32 COMM32.OCXRegsvr32 COMM32.OCX在在MFCMFC程序中使用程序中使用ActiveXActiveX控件控件 設(shè)置應(yīng)用程序窗口為ActiveX控件的容器創(chuàng)建工程時(shí)選中ActiveX控件選項(xiàng)代碼 在StdAfx.h中添加:#include 在InitInstance 函數(shù)中添加:AfxEnableControlContainer(); 在工程中添加ActiveX控件 在資源編輯器中使用在資源編輯器中使用ActiveXActiveX控件控件為工
50、程生成了該控件的封裝類在控件欄中增加代表該控件的圖標(biāo) 設(shè)置設(shè)置ActiveXActiveX控件的屬性控件的屬性 使用使用DDX/DDVDDX/DDV機(jī)制為機(jī)制為ActiveXActiveX控件添加成控件添加成員變量員變量 調(diào)用調(diào)用ActiveXActiveX控件封裝類成員函數(shù)控件封裝類成員函數(shù)設(shè)置屬性調(diào)用方法 響應(yīng)響應(yīng)ActiveXActiveX控件的事件控件的事件typedef struct tagVARIANT VARTYPE vt; unsigned short wReserved1; unsigned short wReserved2; unsigned short wReserved
51、3; union unsigned char bVal; / VT_UI1. short iVal; / VT_I2 . long lVal; / VT_I4 . float fltVal; / VT_R4 . double dblVal; / VT_R8 . VARIANT_BOOL boolVal; / VT_BOOL. SCODE scode; / VT_ERROR. CY cyVal; / VT_CY . DATE date; / VT_DATE. BSTR bstrVal; / VT_BSTR. IUnknown FAR* punkVal; / VT_UNKNOWN. IDispat
52、ch FAR* pdispVal; / VT_DISPATCH. SAFEARRAY FAR* parray; / VT_ARRAY|*. unsigned char FAR* pbVal; / VT_BYREF|VT_UI1. short FAR* piVal; / VT_BYREF|VT_I2. long FAR* plVal; / VT_BYREF|VT_I4. float FAR* pfltVal; / VT_BYREF|VT_R4. double FAR* pdblVal; / VT_BYREF|VT_R8. VARIANT_BOOL FAR* pboolVal; / VT_BYRE
53、F|VT_BOOL. SCODE FAR* pscode; / VT_BYREF|VT_ERROR. CY FAR* pcyVal; / VT_BYREF|VT_CY. DATE FAR* pdate; / VT_BYREF|VT_DATE. BSTR FAR* pbstrVal; / VT_BYREF|VT_BSTR. IUnknown FAR* FAR* ppunkVal; / VT_BYREF|VT_UNKNOWN. IDispatch FAR* FAR* ppdispVal; / VT_BYREF|VT_DISPATCH. SAFEARRAY FAR* FAR* pparray; /
54、VT_ARRAY|*. VARIANT FAR* pvarVal; / VT_BYREF|VT_VARIANT. void FAR* byref; / Generic ByRef. ; VT_EMPTYVT_UI1 An unsigned 1-byte character is stored in bValVT_UI1 | VT_BYREF A reference to an unsigned 1-byte character was passed. A pointer to the value is in pbVal.VT_I2 A 2-byte integer value is store
55、d in iVal. VT_I2 | VT_BYREF A reference to a 2-byte integer was passed. A pointer to the value is in piVal. VT_R4 An IEEE 4-byte real value is stored in fltVal. VT_R4 | VT_BYREF A reference to an IEEE 4-byte real value was passed. A pointer to the value is in pfltVal. VT_BSTR A string was passed; it is stored in bstrVal. VT_BSTR | VT_BYREF A reference to a st
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理三基三嚴(yán)??荚囶}(附答案)
- 中醫(yī)考試題(含參考答案)
- 2025合作伙伴合同終止協(xié)議
- 2025年我愛我家房屋買賣合同樣本
- 農(nóng)業(yè)經(jīng)濟(jì)管理專業(yè)咨詢服務(wù)協(xié)議
- 單位臨時(shí)工雇傭協(xié)議
- 供應(yīng)鏈合作協(xié)議簽訂書
- 財(cái)務(wù)崗筆試題及答案大全
- 浙江國企招聘2025衢州市衢江區(qū)國有企業(yè)春季招聘4人筆試參考題庫附帶答案詳解
- 浙江國企招聘2025臺(tái)州市科創(chuàng)投資集團(tuán)有限公司招聘10人筆試參考題庫附帶答案詳解
- 電力拖動(dòng)自動(dòng)控制系統(tǒng)-第五版 課后習(xí)題答案
- 夏日歷險(xiǎn)夏日歷險(xiǎn)電子書
- 中國傳統(tǒng)故事英文十二生肖二篇
- ETL認(rèn)證的工廠審查
- 中國古代文學(xué)史 馬工程課件(下)05第七編明代文學(xué) 第四章 《水滸傳》
- 威尼斯商人英文劇本(法庭)
- (出讓合同)國有建設(shè)用地使用權(quán)先租后讓合同范本
- 上海中考英語小貓釣魚題型專項(xiàng)練習(xí)
- 教科版科學(xué)五年級(jí)下冊(cè)期末試卷測(cè)試卷(含答案解析)
- 鎂合金片狀、帶狀或條狀,含鎂>50%MSDS危險(xiǎn)化學(xué)品安全技術(shù)說明書
- 預(yù)防校園欺凌主題班會(huì)課件優(yōu)秀
評(píng)論
0/150
提交評(píng)論