版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、目錄TOC o 1-5 h z HYPERLINK l bookmark0 1引言1 HYPERLINK l bookmark2 1.1目的1 HYPERLINK l bookmark4 1.2參考資料1 HYPERLINK l bookmark6 2GRID控件介紹1 HYPERLINK l bookmark8 2.1功能介紹1 HYPERLINK l bookmark10 2.2框架介紹2 HYPERLINK l bookmark12 2.3主要類介紹4 HYPERLINK l bookmark14 CGridCtrl類4 HYPERLINK l bookmark16 CGridCellC
2、heck類5 HYPERLINK l bookmark20 CGridCellCombo類72.4控件類CGRIDCTRL常用函數(shù)說明102.4.1行和列的設(shè)置10 HYPERLINK l bookmark46 2.4.2單元格信息設(shè)置132.4.3控件操作16 HYPERLINK l bookmark92 2.4.4外觀和特征設(shè)置202.4.5顏色設(shè)置242.4.6控件消息介紹26 HYPERLINK l bookmark142 3實例制做27 HYPERLINK l bookmark144 3.1實例圖片27 HYPERLINK l bookmark146 3.2實例制做過程介紹28 HY
3、PERLINK l bookmark148 3.2.1新建項目28 HYPERLINK l bookmark150 初使化GridCtrl控件283.2.3設(shè)置固定行和列303.2.4向單元格插入圖片31 # HYPERLINK l bookmark152 設(shè)置CheckBox列32 HYPERLINK l bookmark154 設(shè)置ComboBox列33 HYPERLINK l bookmark156 3.2.7設(shè)置行背景顏色和列背景顏色34 HYPERLINK l bookmark158 3.2.8添加消息處理35 HYPERLINK l bookmark160 4實例以外的思考36 1
4、引言1.1目的本文記錄了作者在學習了解并使用GridCtrl的過程中的心得體會,希望能夠?qū)窈髮W習使用GridCtrl控件的其他同事有所幫助,使其更快上手。參考資料1)CGridCtrl學習指南網(wǎng)址:/blog/static/21769242200822911559438/CGridCtrl使用詳解網(wǎng)址: HYPERLINK /incwar/archive/2009/01/17/3807283.aspx /incwar/archive/2009/01/17/3807283.aspxCGridCtrl源代碼一份。需要的同事,可以O(shè)A上發(fā)郵件給我。作者親手制做的對于CGridCtrl的使用實例:G
5、ridCtrlTest。需要的同事,可以O(shè)A上發(fā)郵件給我。2Grid控件介紹功能介紹GridControl控件是一款非常優(yōu)秀的網(wǎng)格控件,在VC平臺上的用途非常廣泛也非常靈活。可以將其看做上是在CListCtrl基礎(chǔ)上的定制和延伸。GridControl具備以下操作和功能:使用鼠標可以進行單元格的選擇,還可以輔助Ctrl和shift的組合鍵進行選擇。也可以取消選擇。單元格可以有不同文本和背景顏色的個性化設(shè)置單元格可以有字體的個性化設(shè)置單元格可以標注只讀或者其他的狀態(tài)設(shè)置及檢測單元格的拖放動作可以對任何列或行固定Ctrl-c,Ctrl-X和Ctrl-V執(zhí)行拷貝、剪切、粘貼操作,Ctrl-A全選當單
6、元格成為焦點,并且在單元格的編輯區(qū)域按下字符鍵,就意味著在那個單元格進行編輯了可以在單元格中加入圖片對大型數(shù)據(jù)可以使用虛擬模式充分的打印支持,支持文檔/瀏覽環(huán)境(包括打印預(yù)覽)或是基于會話的應(yīng)用(不支持打印預(yù)覽)可選的列表模式,包括對行的全選或單選,還有單擊列標題提示進行插入的操作。眾多的虛函數(shù)可以很容易對控件進行功能擴充單元格的標題提示太小不能顯示數(shù)據(jù)可以隱藏行和列行和列可以按照大小進行重排,還可以取消對行、列或兩者的排序。雙擊區(qū)分點,行或者列可以按照大小自動排序框架介紹GridControl包含一個拖曳對象(CGridDropTarget)和一個標題提示對象(CTitleTip),前者處理
7、拖曳操作,后者在單元格物理空間在最大限度內(nèi)不足以顯示其內(nèi)容時可以顯示出其內(nèi)容。而CCellID類是一個用來參考單元格范圍的便利的輔助類。此外,GridControl還包含從CGridCell派生下來的單元格對象。圖1Grid單元格可以是任何類型,這些類型都是從CGridCell派生下來的,基類中定義了基本的數(shù)據(jù)存儲和編輯操作。擴充的兩個類CGridCellCombo和CGridLCellCheck示范了如何創(chuàng)建自己的單元格類。圖2單元格有兩種主要狀態(tài)即固定和非固定。固定的單元格通常在Grid的左上方,并且不會隨著Grid的卷動而移動,并且不能進行編輯,通常即這些單元格包含列和行的標題部分。而非
8、固定的單元格構(gòu)成了Grid的內(nèi)部,你可以對它進行編輯和選擇。2.3主要類介紹CGridCtrl類CGridCtrl是控件類,派生于CWnd類,代表整個網(wǎng)格對象,具備了針對網(wǎng)格的所有基本操作,如設(shè)置網(wǎng)格行和列,設(shè)置網(wǎng)格外觀,設(shè)置單元格信息等。下面介紹控件初使化過程中的一個重要函數(shù)CGridCtrl:Create:函數(shù)申明:BOOLCGridCtrl:Create(constRECT&rect,CWnd*pParentWnd,UINTnID,DWORDdwStyle)函數(shù)作用:創(chuàng)建控件參數(shù)說明:rect:控件位置信息pParetWnd:父窗口指針nID:為控件指定的ID,作為本次創(chuàng)建的控件對象的標
9、識dwStyle:控件風格,默認值為:WS_CHILD|WS_BORDER|WS_TABSTOP|WS_VISIBLE。常用風格請參見下表:控件風格ID說明WS_CHILD說明窗口為子窗口WS_OVERLAPPED重疊窗口,通常有標題條和邊界WS_POPUP彈出式窗口,不能與WS_CHILD起使用WS_BORDER有邊界WS_VISIBLE窗口可見WS_DISABLED初使狀態(tài)為禁止WS_VSCROLL具有垂直滾動條WS_HSCROLL具有水平滾動條WS_TABSTOP可用TAB鍵移動到下一個具有WS_TABSTOP風格的控件結(jié)果返回:成功返回true;失敗則返回FALSE注:關(guān)于CGridC
10、TrL的其它常用函數(shù)請參見本文2.4CGridCellCheck類CGridCellCheck繼承于CGridCell,是一個復(fù)選框風格的單元格類。主要函數(shù)GetCellExtent(重載)函數(shù)申明:virtualCSizeGetCellExtent(CDC*pDC);函數(shù)作用:獲得單元格大小參數(shù)說明:pDC:設(shè)備對象指針結(jié)果返回:CSize對象,描述單元格大小OnClick(重載)函數(shù)申明:virtualvoidOnClick(CPointPointCellRelative);函數(shù)作用:單擊時,改變復(fù)選框狀態(tài)參數(shù)說明:PointCellRelative:單元格的相對坐標結(jié)果返回:voidGe
11、tTextRect(重載)函數(shù)申明:virtualBOOLGetTextRect(LPRECTpRect);函數(shù)作用:獲取單元格文本的位置信息參數(shù)說明:pRect:輸出文本的位置信息結(jié)果返回:成功返回TRUE;失敗返回FALSEDraw(重載)函數(shù)申明:virtualBOOLDraw(CDC*pDC,intnRow,intnCol,CRectrect,BOOLbEraseBkgnd);函數(shù)作用:根據(jù)當前復(fù)選框的狀態(tài)重繪復(fù)選框參數(shù)說明:pDC:設(shè)備對象指針nRow:扌旨定行IndexnCol:指定列Indexrect:重繪區(qū)域bEraseBkgnd:重繪前是否擦除背景結(jié)果返回:成功返回TRUE;
12、失敗返回FALSESetCheck函數(shù)申明:voidCGridCellCheck:SetCheck(BOOLbChecked)函數(shù)作用:設(shè)置復(fù)選框的狀態(tài)參數(shù)說明:bChecked:設(shè)置復(fù)選框的狀態(tài)結(jié)果返回:voidGetCheck函數(shù)申明:BOOLCGridCellCheck:GetCheck()函數(shù)作用:獲取復(fù)選框的狀態(tài)參數(shù)說明:bChecked:設(shè)置復(fù)選框的狀態(tài)結(jié)果返回:復(fù)選框被選中,返回TRUE;否則返回FALSE設(shè)置單元格類型若要設(shè)置某一個單元格為復(fù)選框類型,則需調(diào)用:BOOLCGridCtrl:SetCellType(intnRow,intnCol,CRuntimeClass*pRu
13、ntimeClass)若要讓所有新創(chuàng)建的單元格都是復(fù)選框類型的的,則需調(diào)用:BOOLCGridCtrl:SetDefaultCellType(CRuntimeClass*pRuntimeClass)注:詳情參見:本文章節(jié)2.4.2CGridCellCombo類CGridCellCombo繼承于CGridCell,是一個下拉框風格的單元格類。主要函數(shù)GetCellExtent(重載)函數(shù)申明:virtualCSizeGetCellExtent(CDC*pDC);函數(shù)作用:獲得單元格大小參數(shù)說明:pDC:設(shè)備對象指針結(jié)果返回:CSize對象,描述單元格大小Edit(重載)函數(shù)申明:virtualB
14、OOLEdit(intnRow,intnCol,CRectrect,CPointpoint,UINTnID,UINTnChar);函數(shù)作用:用戶觸發(fā)此事件,控件進入編輯狀態(tài)。本質(zhì)上就是創(chuàng)建ComboBox控件來負責編輯參數(shù)說明:nRow:扌旨定行IndexnCol:指定列Indexrect:編輯區(qū)域point:無意義nID:被創(chuàng)建的ComboBox的IDnChar:當通過按鍵觸發(fā)該編輯事件時,表示按下的第一個鍵結(jié)果返回:成功返回TRUE;否則返回FALSE3)EndEdit(重載)函數(shù)申明:virtualBOOLEndEdit();函數(shù)作用:編輯結(jié)束參數(shù)說明:無結(jié)果返回:成功返回TRUE;失敗
15、返回FALSEGetTextRect(重載)函數(shù)申明:virtualBOOLGetTextRect(LPRECTpRect);函數(shù)作用:獲取單元格文本的位置信息參數(shù)說明:pRect:輸出文本的位置信息結(jié)果返回:成功返回TRUE;失敗返回FALSEDraw(重載)函數(shù)申明:virtualBOOLDraw(CDC*pDC,intnRow,intnCol,CRectrect,BOOLbEraseBkgnd);函數(shù)作用:重繪單元格控件參數(shù)說明:pDC:設(shè)備對象指針nRow:扌旨定行IndexnCol:指定列Indexrect:重繪區(qū)域bEraseBkgnd:重繪前是否擦除背景結(jié)果返回:成功返回TRUE
16、;失敗返回FALSESetStyle函數(shù)申明:voidSetStyle(DWORDdwStyle)函數(shù)作用:設(shè)置ComboBox控件的風格參數(shù)說明:dwStyle:ComboBox風格。詳見下表:風格ID說明CBS_SIMPLE下拉列表總是可見,控件可編輯CBS_DR0PD0WN下拉列表在用戶點擊時可見,控件可編輯CBS_DROPDOWNLIST下拉列表在用戶點擊時可見,控件不可編輯CBS_SORT下拉列表選擇項排序CBS_AUTOHSCROLL下拉列表自動添加滾動條CBS_UPPERCASE下拉列表選擇項英文大寫顯示CBS_LOWERCASE下拉列表選擇項英文小寫顯示CBS_DISABLEN
17、OSCROLL下拉列表滾動條禁用結(jié)果返回:voidGetStyle函數(shù)申明:DWORDGetStyle()函數(shù)作用:獲得ComboBox控件的風格屬性參數(shù)說明:無結(jié)果返回:返回ComboBox控件的風格屬性SetOptions函數(shù)申明:voidSetOptions(constCStringArray&ar)函數(shù)作用:設(shè)置ComboBox下拉列表選項參數(shù)說明:ar:傳入字符串數(shù)組,作為下拉列表選項結(jié)果返回:void設(shè)置單元格類型若要設(shè)置某一個單元格為下拉框類型,則需調(diào)用:BOOLCGridCtrl:SetCellType(intnRow,intnCol,CRuntimeClass*pRuntim
18、eClass)若要讓所有新創(chuàng)建的單元格都是下拉框類型的的,則需調(diào)用:BOOLCGridCtrl:SetDefaultCellType(CRuntimeClass*pRuntimeClass)注:詳情參見:本文章節(jié)2.4.22.4控件類CGridCtrl常用函數(shù)說明行和列的設(shè)置SetRowCount函數(shù)原型:BOOLSetRowCount(intnRows)函數(shù)作用:設(shè)置行的數(shù)目(包括固定行)參數(shù)說明:nRows:行數(shù)目結(jié)果返回:如果成功,返回TRUE;否則返回FALSESetColumnCount函數(shù)原型:BOOLSetColumnCount(intnCols)函數(shù)作用:設(shè)置列的數(shù)目(包括固定
19、列)參數(shù)說明:nCols:列數(shù)目結(jié)果返回:如果成功,返回TRUE;否則返回FALSESetFixedRowCount函數(shù)原型:BOOLSetFixedRowCount(intnFixedRows=1)函數(shù)作用:設(shè)置固定行的數(shù)目參數(shù)說明:nFixedRows:固定行數(shù)目結(jié)果返回:如果成功,返回TRUE;否則返回FALSESetFixedColumnCount函數(shù)原型:BOOLSetFixedColumnCount(intnFixedCols=1)函數(shù)作用:設(shè)置固定列的數(shù)目參數(shù)說明:nFixedRows:固定列數(shù)目結(jié)果返回:如果成功,返回TRUE;否則返回FALSEGetRowHeight函數(shù)原型
20、:intGetRowHeight(intnRow)const函數(shù)作用:獲取由nRow指定行的高度參數(shù)說明:nRow:指定行Index結(jié)果返回:返回指定行高度SetRowHeight函數(shù)原型:BOOLSetRowHeight(introw,intheight)函數(shù)作用:設(shè)定由row指定行的高度為height參數(shù)說明:row:扌旨定行Indexheight:設(shè)置的高度結(jié)果返回:如果成功,返回TRUE;否則返回FALSEGetColumnWidth函數(shù)原型:intGetColumnWidth(intnCol)const函數(shù)作用:獲取由nCol指定列的寬度參數(shù)說明:nCol:指定列Index結(jié)果返回:
21、返回指定列寬度SetColumnWidth函數(shù)原型:BOOLSetColumnWidth(intcol,intwidth)函數(shù)作用:設(shè)定由col指定列的寬度為width參數(shù)說明:col:指定列width:設(shè)置的寬度結(jié)果返回:如果成功,返回TRUE;否則返回FALSEGetFixedRowHeight函數(shù)原型:intGetFixedRowHeight()const函數(shù)作用:獲取固定行的高度參數(shù)說明:無結(jié)果返回:返回固定行的高度GetFixedColumnWidth函數(shù)原型:intGetFixedColumnWidth()const函數(shù)作用:獲取固定列的高度參數(shù)說明:無結(jié)果返回:返回固定列的高度G
22、etVirtualHeight函數(shù)原型:longGetVirtualHeight()const函數(shù)作用:獲取所有行的合并高度參數(shù)說明:無結(jié)果返回:返回所有行的合并高度GetVirtualWidth函數(shù)原型:longGetVirtualWidth()const函數(shù)作用:獲取所有列的合并寬度參數(shù)說明:無結(jié)果返回:返回所有列的合并寬度結(jié)果返回:如果成功,返回TRUE;否則返回FALSE 2.4.2單元格信息設(shè)置SetCellType函數(shù)原型:BOOLSetCellType(intnRow,intnCol,CRuntimeClass*pRuntimeClass);函數(shù)作用:定義響應(yīng)單元格類的類型參數(shù)說
23、明:nRow:指定行nCol:指定列pRunTimeClass:單元格類型,在實際傳入該參數(shù)時,需要以RUN_TIIME(類名)的形式。比如RUN_TIME(CGridCellChecK)、RUN_TIME(CGridCellComBo)、RUN_TIME(CGridCellNumeric)、RUN_TIME(CGridDefaultCell)結(jié)果返回:如果成功,返回TRUE;否則返回FALSESetDefaultCellType函數(shù)原型:BOOLSetDefaultCellType(CRuntimeClass*pRuntimeClass);函數(shù)作用:為之后新創(chuàng)建的單元格設(shè)置默認屬性參數(shù)說明:
24、pRunTimeClass:單元格類型,在實際傳入該參數(shù)時,需要以RUN_TIIME(類名)的形式。比如RUN_TIME(CGridCellChecK)、RUN_TIME(CGridCellComBo)、RUN_TIME(CGridCellNumeric)、RUN_TIME(CGridDefaultCell)結(jié)果返回:如果成功,返回TRUE;否則返回FALSESetItemText函數(shù)原型:BOOLSetltemText(intnRow,intnCol,LPCTSTRstr)函數(shù)作用:設(shè)置指定單元格的文本內(nèi)容參數(shù)說明:nRow:指定行nCol:指定列str:字符串SetItemImage函數(shù)原
25、型:BOOLSetltemlmage(intnRow,intnCol,intiImage)函數(shù)作用:設(shè)置指定單元格的圖形索引。調(diào)用函數(shù)前,需要設(shè)置控件圖形列表。詳見SetImageList參數(shù)說明:nRow:指定行nCol:指定列ilmage:圖形索引,從0開始結(jié)果返回:如果成功,返回TRUE;否則返回FALSESetItemState函數(shù)原型:BOOLSetltemState(intnRow,intnCol,UINTstate)函數(shù)作用:設(shè)置給定單元格的狀態(tài)參數(shù)說明:nRow:指定行nCol:指定列state:狀態(tài)ID。詳見下表:狀態(tài)ID狀態(tài)說明GVIS_FOCUSED單元格成為焦點GVIS
26、_SELECTED單元格被選中GVIS_DROPHILITED單兀格被高亮顯示GVIS_READONLY單元格只讀GVIS_FIXED單元格固定GVIS_FIXEDROW單元格是固定行的一部分GVIS_FIXEDCOL單元格是固定列的一部分GVIS_MODIFIED單元格被修改過 結(jié)果返回:如果成功,返回TRUE;否則返回FALSE SetItemBkColour函數(shù)原型:BOOLSetitemBkColour(intnRow,intnCol,COLORREFcr=CLR_DEFAULT)函數(shù)作用:設(shè)置指定單元格的背景顏色參數(shù)說明:nRow:指定行nCol:指定列cr:顏色,可以通過宏RGB(
27、int,int,int)來構(gòu)建結(jié)果返回:如果成功,返回TRUE;否則返回FALSESetItemFont函數(shù)原型:BOOLSetItemFont(intnRow,intnCol,LOGFONT*lf)函數(shù)作用:設(shè)置指定單元格的字體參數(shù)說明:nRow:指定行nCol:指定列l(wèi)f:字體格式。LOGFONT是Windows內(nèi)部字體的邏輯結(jié)構(gòu),主要用于設(shè)置字體格。詳見LOGFONT結(jié)構(gòu)體定義。結(jié)果返回:如果成功,返回TRUE;否則返回FALSESetItemFgColour函數(shù)原型:BOOLSetItemFgColour(intnRow,intnCol,COLORREFcr=CLR_DEFAULT)函
28、數(shù)作用:設(shè)置指定單元格的前景顏色參數(shù)說明:nRow:指定行nCol:指定列cr:顏色,可以通過宏RGB(int,int,int)來構(gòu)建2.4.3控件操作InsertColumn函數(shù)原型:intInsertColumn(LPCTSTRstrHeading,UINTnFormat,intnCol=-1)函數(shù)作用:在nCol指定的地方插入一列參數(shù)說明:StrHeading:列標題頭nFormat:列的格式。格式選項見下表:選項ID說明DT_TOP豎直居上對齊DT_LEFT水平居左對齊DT_CENTER水平居中對齊DT_RIGHT水平居右對齊DT_VCENTER豎直居中對齊DT_BOTTOM豎直居下對
29、齊DT_WORDBREAK斷開字DT_SINGLELINE單行模式nCol:指定列,如果nCol0則在末尾插入一列.結(jié)果返回:返回插入列的位置InsertRow函數(shù)原型:intInsertRow(LPCTSTRstrHeading,intnRow=-1)函數(shù)作用:在nRow處插入一行,此行的單元格的格式與其同列的第一行單元格格式相同參數(shù)說明:StrHeading:行標題頭nRow:指定行,如果nRow0則在末尾插入一行結(jié)果返回:返回插入行的位置DeleteColumn函數(shù)原型:BOOLDeleteColumn(intnColumn)函數(shù)作用:刪除nColumn指定的列參數(shù)說明:nColumn:
30、扌旨定列結(jié)果返回:如果成功,返回TRUE;否則返回FALSEDeleteRow函數(shù)原型:BOOLDeleteRow(intnRow)函數(shù)作用:刪除nColumn指定的列參數(shù)說明:nRow:扌旨定行結(jié)果返回:如果成功,返回TRUE;否則返回FALSEDeleteAllItems函數(shù)原型:BOOLDeleteAllltems()函數(shù)作用:刪除Grid中的所有行和內(nèi)容參數(shù)說明:無結(jié)果返回:如果成功,返回TRUE;否則返回FALSEDeleteNonFixedRows函數(shù)原型:BOOLDeleteAllltems()函數(shù)作用:刪除所有非固定行參數(shù)說明:無結(jié)果返回:如果成功,返回TRUE;否則返回FAL
31、SEAutoSizeRow函數(shù)原型:BOOLAutoSizeRow(intnRow,BOOLbResetScroll二TRUE)函數(shù)作用:自動調(diào)整行的大小與最大行一樣參數(shù)說明:nRow:扌旨定行bResetScroll:如果bResetScroll是TRUE那么滾動條也會被重置結(jié)果返回:如果成功,返回TRUE;否則返回FALSEAutoSizeColumn函數(shù)原型:BOOLAutoSizeColumn(intnCol,UINTnAutoSizeStyle=GVS_DEFAULT,BOOLbResetScroll=TRUE)函數(shù)作用:自動調(diào)整列的大小與最大列一樣參數(shù)說明:nCol:指定列nAut
32、oSizeStyle:調(diào)整的方式。詳見下表:選項ID說明GVS_Default默認GVS_HEADER僅用于列的固定單元格數(shù)據(jù)GVS_DATA僅用于列的非固定單元格數(shù)據(jù)GVS_BOTH固定列和非固定列都適用bResetScroll:如果bResetScroll是TRUE那么滾動條也會被重置結(jié)果返回:如果成功,返回TRUE;否則返回FALSEAutoSizeRows函數(shù)原型:voidAutoSizeRows()函數(shù)作用:自動調(diào)整所有行的大小參數(shù)說明:無結(jié)果返回:voidAutoSizeColumns函數(shù)原型:voidAutoSizeColumns(UINTnAutoSizeStyle=GVS_D
33、EFAULT)函數(shù)作用:自動調(diào)整所有列的大小參數(shù)說明:nAutoSizeStyle:調(diào)整的方式。詳見下表:選項ID說明GVS_Default默認GVS_HEADER僅用于列的固定單元格數(shù)據(jù)GVS_DATA僅用于列的非固定單元格數(shù)據(jù)GVS_BOTH固定列和非固定列都適用結(jié)果返回:voidAutoSize函數(shù)原型:voidAutoSize(UINTnAutoSizeStyle=GVS_DEFAULT)函數(shù)作用:自動調(diào)整所有行和列的大小參數(shù)說明:nAutoSizeStyle:調(diào)整的方式。詳見下表:選項ID說明GVS_Default默認GVS_HEADER僅用于列的固定單元格數(shù)據(jù)GVS_DATA僅用于
34、列的非固定單元格數(shù)據(jù)GVS_BOTH固定列和非固定列都適用結(jié)果返回:voidRedrawRow函數(shù)原型:BOOLRedrawRow(introw)函數(shù)作用:重畫指定行參數(shù)說明:row:指定行結(jié)果返回:如果成功,返回TRUE;否則返回FALSERedrawColumn函數(shù)原型:BOOLRedrawColumn(intcol)函數(shù)作用:重畫指定列參數(shù)說明:row:指定列結(jié)果返回:如果成功,返回TRUE;否則返回FALSERefresh函數(shù)原型:BOOLRefresh。函數(shù)作用:重畫整個Grid參數(shù)說明:無結(jié)果返回:如果成功,返回TRUE;否則返回FALSE2.4.4外觀和特征設(shè)置SetImageL
35、ist函數(shù)原型:voidSetlmageList(CImageList*pList)函數(shù)作用:設(shè)置Grid的當前圖形列表,它拷貝的只是列表的指針而非列表本身參數(shù)說明:pList:圖形列表對象結(jié)果返回:voidSetGridLines函數(shù)原型:voidSetGridLines(intnWhichLines=GVL_BOTH)函數(shù)作用:設(shè)置哪些(如果有的話)線條不可見參數(shù)說明:nWhichLines:網(wǎng)格線的選擇,詳見下表:選項ID說明GVL_NONE無網(wǎng)格線GVL_HORZ僅僅有水平網(wǎng)格線GVL_VERT僅僅有垂直網(wǎng)格線GVL_BOTH水平和垂直網(wǎng)格線都有結(jié)果返回:voidSetEditable
36、函數(shù)原型:voidSetEditable(B00LbEditable=TRUE)函數(shù)作用:設(shè)置Grid是否可以編輯參數(shù)說明:bEditable:是否可編輯結(jié)果返回:voidSetSingleRowSelection函數(shù)原型:voidSetSingleRowSelection(B00LbSing=TRUE)函數(shù)作用:將Grid設(shè)置成(或不是)單行選擇模式,這種模式只有在排序模式下有效。當處在這種模式下,每次只能選擇一行,所以整個Grid表現(xiàn)看起來就好象是一個多列的列表框參數(shù)說明:bSing:是否單選結(jié)果返回:voidSetSingleColSelection函數(shù)原型:voidSetSingleC
37、olSelection(BOOLbSing=TRUE)函數(shù)作用:將Grid設(shè)置成(或不是)單列選擇模式,在這種模式下,每次只能選擇一列參數(shù)說明:bSing:是否單選結(jié)果返回:voidEnableSelection函數(shù)原型:voidEnableSelection(B00LbEnable=TRUE)函數(shù)作用:設(shè)置Grid的單元格是否可選參數(shù)說明:bEnable:是否可選結(jié)果返回:voidSetFixedColumnSelection函數(shù)原型:voidSetFixedColumnSelection(BOOLbSelect)函數(shù)作用:設(shè)置當點擊固定列時,是否選擇其下面的單元格參數(shù)說明:bSelect:
38、是否選擇其下面的單元格結(jié)果返回:voidSetFixedRowSelection函數(shù)原型:voidSetFixedRowSelection(BOOLbSelect)函數(shù)作用:設(shè)置當點擊固定行時,是否選擇其旁邊的單元格參數(shù)說明:bSelect:是否選擇其旁邊的單元格結(jié)果返回:voidEnableDragAndDrop函數(shù)原型:voidEnableDragAndDrop(BOOLbAllow=TRUE)函數(shù)作用:設(shè)置是否開啟拖曳動作參數(shù)說明:bAllow:是否開啟拖曳動作結(jié)果返回:voidSetHandleTabKey函數(shù)原型:voidSetHandleTabKey(BOOLbHandleTab=
39、TRUE)函數(shù)作用:設(shè)置是否啟用TAB鍵來移動選擇單元格參數(shù)說明:bHandleTab:是否啟用TAB鍵來移動選擇單元格結(jié)果返回:voidEnableTitleTips函數(shù)原型:voidEnableTitleTips(B00LbEnable=TRUE)函數(shù)作用:設(shè)置是否使用標題提示參數(shù)說明:bEnable:是否使用標題提示結(jié)果返回:voidSetTrackFocusCell函數(shù)原型:voidSetTrackFocusCell(BOOLbTrack)函數(shù)作用:設(shè)置同行/列中的固定單元格作為焦點單元格時是否高亮顯示并且使用凹陷邊緣參數(shù)說明:bTrack:是否高亮顯示并且使用凹陷邊緣結(jié)果返回:voi
40、dSetFrameFocusCell函數(shù)原型:voidSetFrameFocusCell(BOOLbFrame)函數(shù)作用:設(shè)置焦點單元格是否高亮顯示并且加上外邊框參數(shù)說明:bFrame:是否高亮顯示并且加上外邊框結(jié)果返回:void2.4.5顏色設(shè)置SetGridBkColor函數(shù)原型:voidSetGridBkColor(COLORREFclr)函數(shù)作用:設(shè)置控件的背景顏色(固定和非固定單元格之外的區(qū)域)參數(shù)說明:clr:背景顏色??捎肦GB(int,int,int)來構(gòu)建結(jié)果返回:voidSetGridLineColor函數(shù)原型:voidSetGridLineColor(COLORREFcl
41、r)函數(shù)作用:設(shè)置網(wǎng)格線的顏色參數(shù)說明:clr:網(wǎng)格線的顏色??捎肦GB(int,int,int)來構(gòu)建結(jié)果返回:voidSetTitleTipBackClr函數(shù)原型:voidSetTitleTipBackClr(COLORREFclr=CLR_DEFAULT)函數(shù)作用:設(shè)置標題提示的背景顏色參數(shù)說明:clr:標題提示的背景顏色??捎肦GB(int,int,int)來構(gòu)建結(jié)果返回:voidSetTitleTipTextClr函數(shù)原型:voidSetTitleTipTextClr(C0L0RREFclr=CLR_DEFAULT)函數(shù)作用:設(shè)置標題提示的文本顏色參數(shù)說明:clr:標題提示的文本顏色
42、??捎肦GB(int,int,int)來構(gòu)建結(jié)果返回:voidSetTextColor函數(shù)原型:voidSetTextColor(C0L0RREFclr)函數(shù)作用:設(shè)置非固定單元格中的文本顏色參數(shù)說明:clr:非固定單元格中的文本顏色。可用RGB(int,int,int)來構(gòu)建結(jié)果返回:voidSetTextBkColor函數(shù)原型:voidSetTextBkColor(COLORREFclr)函數(shù)作用:設(shè)置非固定單元格的背景顏色參數(shù)說明:clr:非固定單元格的背景顏色??捎肦GB(int,int,int)來構(gòu)建結(jié)果返回:voidSetFixedTextColor函數(shù)原型:voidSetFixe
43、dTextColor(C0L0RREFclr)函數(shù)作用:設(shè)置固定單元格的文本顏色參數(shù)說明:clr:固定單元格的文本顏色??捎肦GB(int,int,int)來構(gòu)建結(jié)果返回:voidSetBkColor函數(shù)原型:voidSetBkColor(COLORREFclr)函數(shù)作用:設(shè)置控件的背景顏色(單元格之外的區(qū)域)參數(shù)說明:clr:控件的背景顏色??捎肦GB(int,int,int)來構(gòu)建結(jié)果返回:voidSetFixedBkColor函數(shù)原型:voidSetFixedBkColor(COLORREFclr)函數(shù)作用:設(shè)置固定單元格的背景顏色(單元格之外的區(qū)域)參數(shù)說明:clr:固定單元格的背景顏
44、色??捎肦GB(int,int,int)來構(gòu)建結(jié)果返回:void2.4.6控件消息介紹常用消息消息ID消息名稱函數(shù)原型NM_CLICK左鍵單擊voidOnClick(NMHDR*pNMHDR,LRESULT*pResult)NM_DBLCLK左鍵雙擊voidOnDblClk(NMHDR*pNMHDR,LRESULT*pResult)NM_KILLFOCUS控件失去鼠標焦點voidOnKillFocus(NMHDR*pNMHDR,LRESULT*pResult)NM_RCLICK右鍵單擊voidOnRClick(NMHDR*pNMHDR,LRESULT*pResult)NM_RDBCLK右鍵雙擊
45、voidOnRdbClk(NMHDR*pNMHDR,LRESULT*pResult)NM_SETFOCUS控件獲得鼠標焦點voidOnSetFocus(NMHDR*pNMHDR,LRESULT*pResult)GVN_BEGINDRAG發(fā)生左鍵拖曳時voidOnBeginDrag(NMHDR*pNMHDR,LRESULT*pResult)GVN_BEGINLABELEDIT編輯Label時voidOnBeginLabelEdit(NMHDR*pNMHDR,LRESULT*pResult)GVN_BEGINRDRAG發(fā)生右鍵拖曳時voidOnBeginRDrag(NMHDR*pNMHDR,LRE
46、SULT*pResult)GVN_COLUMNCLICK單擊一列時voidOnColumnClick(NMHDR*pNMHDR,LRESULT*pResult)GVN_DELETEITEM刪除某一項時voidOnDeleteItem(NMHDR*pNMHDR,LRESULT*pResult)GVN_ENDLABELEDIT結(jié)束Label編輯時voidOnEndLabelEdit(NMHDR*pNMHDR,LRESULT*pResult)GVN_SELCHANGING選擇改變時voidOnSelChanging(NMHDR*pNMHDR,LRESULT*pResult)GVN_SELCHANGE
47、D選擇改變后voidOnSelChanged(NMHDR*pNMHDR,LRESULT*pResult)GVN_GETDISPINFOvoidOnGetDispInfo(NMHDR*pNMHDR,LRESULT*pResult)GVN_ODCACHEHINTvoidOnOdcachehint(NMHDR*pNMHDR,LRESULT*pResult)添加消息映射若想針對CGridCtrl添加消息處理,只需要在父窗口中通過0N_N0TIFY添加消息映射,并實現(xiàn)響應(yīng)函數(shù)即可。消息映射方式如下:ON_NOTIFY(消息ID,控件ID,響應(yīng)函數(shù))如下圖所示:BEGIN_MESSAGE_l1AF(CGr
48、idCtrlTe5tDlg,CDialog)/GetWindowRect(&rect2);獲取對話框窗口的位置信息訐(pWnd)pWnd-GetWindowRect(&rectl);/獲取占位控件的位置信息創(chuàng)建控件m_GridCtrl=newCMyGridCtrl();m_GridCtrl-Create(CRect(rect1.left-rect2.1eft-cxframe,rect1.top-rect2.top-cyframe-captionHeight,rectl.left+rect1.Width()-rect2.1eft,rect1.top+rect1.Height()-rect2.to
49、p-captionHeight),this,IDC_GRID)設(shè)置行數(shù)和列數(shù)m_GridCtrl-SetColumnCount(5);m_GridCtrl-SetRowCount(5);這樣一個簡單的實例就已經(jīng)制做成功。點擊運行,效果如下圖:圖53.2.3設(shè)置固定行和列固定行和列相關(guān)于GridCtrl的標題行和標題列。通過以下代碼,我們對實例中的grid的標題行、標題列進行設(shè)置:設(shè)置第一行和第一列為控件固定行和列,即標題行和標題列m_GridCtrl-SetFixedRowCount(l);m_GridCtrl-SetFixedColumnCount(l);m_GridCtrl-AutoSiz
50、eColumn(0);第一列自動調(diào)節(jié)寬度設(shè)置固定行標題m_GridCtrl-SetItemText(O,O,序號);m_GridCtrl-SetItemText(0,1,圖片);m_GridCtrl-SetItemText(0,2,狀態(tài));m_GridCtrl-SetItemText(0,3,主題);設(shè)置固定列序號for(inti=l;iv5;i+)CStrings;s.Format(%d,i);m_GridCtrl-SetItemText(i,O,s);運行后,效果圖如下所示:圖63.2.4向單元格插入圖片插入的圖片的格式是.bmp格式,將這個bmp圖片拷到資源文件中,然后導(dǎo)入到程序中,定義
51、其資源ID為IDB_BITMAP_S。加載圖片列表的代碼已經(jīng)封裝到了CMyGridCtrl:LoadImageList(intnlmageld,intnSize)中,具體如下:m_ImageList.Create(nImageId,nSize,1,RGB(255,255,255);this-SetImageList(&m_ImageList);在GridTestDlg類中,加入如下代碼:加載圖片列表m_GridCtrl-LoadImageList(IDB_BITMAP_S,16);圖片大小為16*16設(shè)置第二列圖片for(i=l;iv5;i+)m_GridCtrl-SetItemImage(i,1,i%4);設(shè)置所插入圖片在圖片列表的Index運行后效果如下圖所示:圖73.2.5設(shè)置CheckBox列設(shè)置單元格類型為CGridCellCheck類型,為了方便操作,已被封裝到了CMyGridCtrl:SetCellCheck(intnRow,intnCol,boolisCheck)中,具體代碼如下:設(shè)置單元格類型this-SetCellType(nRow,nCol,RUNTIME_CLASS(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度木制玩具設(shè)計與制造木工分包合同范本4篇
- 2025年度內(nèi)墻膩子施工技術(shù)培訓與推廣合同2篇
- 二零二五年度全國連鎖培訓學校股權(quán)合作框架合同
- 課題申報參考:岷江流域西南官話語法內(nèi)部差異及歷史演變研究
- 2025版二零二五年度教育信息化項目實施合同范本3篇
- 二零二五年度工業(yè)用地面積調(diào)整補充合同4篇
- 二零二五年度農(nóng)民工就業(yè)創(chuàng)業(yè)扶持政策合作協(xié)議2篇
- 2025年度國產(chǎn)嬰幼兒奶粉品牌全國分銷合同4篇
- 基于大數(shù)據(jù)分析的2025年度農(nóng)產(chǎn)品市場需求預(yù)測合同2篇
- 二零二五年度住宅室內(nèi)軟裝搭配合同4篇
- 《社區(qū)康復(fù)》課件-第三章 社區(qū)康復(fù)的實施
- 胰島素注射的護理
- 云南省普通高中學生綜合素質(zhì)評價-基本素質(zhì)評價表
- 2024年消防產(chǎn)品項目營銷策劃方案
- 聞道課件播放器
- 03軸流式壓氣機b特性
- 五星級酒店收入測算f
- 大數(shù)據(jù)與人工智能ppt
- 人教版八年級下冊第一單元英語Unit1 單元設(shè)計
- GB/T 9109.5-2017石油和液體石油產(chǎn)品動態(tài)計量第5部分:油量計算
- 邀請函模板完整
評論
0/150
提交評論