MFC控制元件精簡

czhaii發表於2013-11-08

表6.1 Windows標準控制元件

控制元件

MFC

描述

動畫

CAnimateCtrl

顯示連續的AVI視訊剪輯

按鈕

CButton

用來產生某種行為的按鈕,以及核取方塊、單選鈕和組框

組合框

CComboBox

編輯框和列表框的組合

編輯框

CEdit

用於鍵入文字

標題頭

CHeaderCtrl

位於某一行文字之上的按鈕,可用來控制顯示檔案的寬度

熱鍵

CHotKeyCtrl

用於通過按下某一組合鍵來很快的執行某些常用的操作

圖象列表

CImageList

一系列圖象(典型情況下是一系列圖示或點陣圖)的集合。圖象列表本身不是一種控制元件,它常常是和其它控制元件一起工作,為其它控制元件提供所用的圖象列表

列表

CListCtrl

顯示文字及其圖示列表的視窗

列表框

CListBox

包括一系列字串的列表

進度

CProgressCtrl

用於在一較長操作中提示使用者所完成的進度

多格式文字編輯

CRichEditCtrl

提供可設定字元和段落格式的文字編輯的視窗

滾動條

CScrollBar

為對話方塊提供控制元件形式的滾動條

滑塊

CSliderCtrl

包括一個有可選標記的滑塊的視窗

旋轉按鈕

CSpinButtonCtrl

提供一對可用於增減某個值的箭頭

靜態文字

CStatic

常用於為其它控制元件提供標籤

狀態條

CStatusBarCtrl

用於顯示狀態資訊的視窗,同MFCCStatusBar類似

續表6.1

控制元件

MFC

描述

選項卡

CTabCtrl

在選項卡對話方塊或屬性頁中提供具有類似筆記本中使用的分隔標籤的外觀的選項卡

工具條

CToolBarCtrl

具有一系列命令生成按鈕的視窗,同MFCCToolBar類似

工具提示

CToolTipCtrl

一個小的彈出式視窗,用於提供對工具條按鈕或其它控制元件功能的簡單描述

CTreeCtrl

用於顯示一系列的項的繼承結構

 第二節 所有視窗類的基類:CWnd

1. 類CWnd的資料成員(6.2)

表6. 2 類CWnd的資料成員

資料成員

描述

m_hWnd

與該CWnd物件相關聯的Windows視窗控制程式碼(HWND)

 

表6. 3 類CWnd的建構函式和解構函式

成員函式

獲得圖示控制程式碼

 

SetIcon

設定控制程式碼為一指定圖示

 

GetWindowContextHelpId

獲得幫助上下文識別符號

 

SetWindowContextHelpId

設定幫助上下文識別符號

 

ModifyStyle

修改當前視窗樣式

 

ModifyStyleEx

修改當前視窗的擴充套件樣式

 

成員函式

描述

GetWindowPlacement

獲得顯示狀態和視窗的正常、最小化和最大化位置

SetWindowPlacement

設定顯示狀態和視窗的正常、最小化和最大化位置

GetWindowRgn

獲得視窗的視窗區域的拷貝

SetWindowRgn

設定視窗區域

IsIconic

判斷視窗是否被最小化(圖示化)

IsZoomed

判斷視窗是否被最大化

MoveWindow

改變視窗的位置和度量

SetWindowPos

改變子視窗、彈出式視窗或頂層視窗的大小、位置和順序

ArrangeIconicWindows

排列所有最小化的子視窗

BringWindowToTop

CWnd物件放到覆蓋視窗棧的頂部

GetWindowRect

獲得CWnd物件的螢幕座標

GetClientRect

獲得CWnd物件客戶區的度量

 

表6. 7 類CWnd的視窗訪問成員函式

成員函式

描述

ChildWindowFromPoint

判斷包含指定點的子視窗

FindWindow

返回由其視窗名稱和視窗類標識的視窗的控制程式碼

GetNextWindow

返回視窗管理器列表中的下一個(或上一個)視窗

GetOwner

返回指向CWnd物件的所有者的指標

續表6.7

成員函式

描述

SetOwner

改變CWnd物件的所有者

GetTopWindow

返回屬於CWnd物件的第一個子視窗

GetWindow

返回與當前視窗有指定關係的視窗

GetLastActivePopup

判斷由CWnd物件所有的彈出視窗中最近啟用的視窗

IsChild

判斷CWnd物件是否為一個子視窗

GetParent

如果存在的話,獲得CWnd物件的父視窗

GetSafeOwner

獲得給定視窗的安全的所有者

SetParent

改變父視窗

WindowFromPoint

標識包括給定點的視窗

GetDlgItem

從指定的對話方塊獲得標準符為指定ID的控制元件

GetDlgCtrlID

如果CWnd為一子視窗,返回其ID

SetDlgCtrlID

CWnd物件為一子視窗(不僅指對話方塊中的控制元件)時,為其指定控制元件ID或視窗ID

GetDescendantWindow

檢查所有下級視窗(descendant window)並返回具有指定ID的視窗

GetParentFrame

獲得CWnd物件的父框架視窗

SendMessageToDescendants

傳送一條訊息到視窗的所有下級視窗

GetTopLevelParent

獲得視窗的頂層父視窗

GetTopLevelOwner

獲得視窗的頂層所有者視窗

GetParentOwner

返回指向子視窗的父視窗的指標

GetTopLevelFrame

獲得視窗的頂層框架視窗

UpdateDialogControls

用來更新對話方塊按鈕或其它控制元件的狀態

UpdateData

初始化對話方塊或從對話方塊中獲取資料

CenterWindow

相對於父視窗使視窗居中

表6. 8 類CWnd的更新和繪製函式

成員函式

描述

BeginPaint

為重繪操作準備CWnd物件

EndPaint

標記重繪操作的結束

續表6.8

成員函式

描述

Print

在指定的裝置上下文繪製當前視窗

PrintClient

在指定的裝置上下文(通常是印表機)繪製所有視窗

LockWindowUpdate

禁止或重新允許繪製指定的視窗

UnlockWindowUpdate

解除CWnd::LockWindowUpdate對視窗的鎖定

GetDC

獲得客戶區的顯示上下文

GetDCEx

獲得客戶區的顯示上下文,並在繪製過程中允許裁剪

RedrawWindow

在客戶區中更新指定的矩形或區域

GetWindowDC

獲得整個視窗的顯示上下文,包括標題條,選單和滾動條

ReleaseDC

釋放客戶區或視窗裝置上下文,並使其可為其它程式所使用

UpdateWindow

更新客戶區

SetRedraw

決定在CWnd物件中的改變是否被重繪

GetUpdateRect

獲得完全覆蓋CWnd物件的更新區域的最小矩形座標

GetUpdateRgn

獲得CWnd物件的更新區域

Invalidate

使用整個客戶區無效

InvalidateRect

通過將給定矩形新增到當前更新區域來使包括在給定矩形內的客戶區無效

InvalidateRgn

通過將給定區域新增到當前更新區域來使包括在給定區域內的客戶區無效

ValidateRect

通過將給定矩形從當前更新區域中移出來使包括在給定矩形內的客戶區有效

ValidateRgn

通過將給定區域從當前更新區域中移出來使包括在給定區域內的窗戶區有效

ShowWindow

顯示或隱藏視窗

IsWindowVisible

判斷視窗是否可見

ShowOwnedPopups

顯示或隱藏視窗擁有的所有彈出式視窗

EnableScrollBar

允許或禁止滾動條上的一個或兩個箭頭

表6. 9 類CWnd的座標對映函式

成員函式

描述

MapWindowPoints

CWnd物件的座標空間對映一系列點到另一視窗的座標空間

續表6.9

成員函式

描述

ClientToScreen

轉換給定點的客戶座標或顯示矩形到螢幕座標

ScreenToClient

轉換給定點的螢幕座標或顯示矩形到客戶座標

表6. 10 類CWnd的視窗文字函式

成員函式

描述

SetWindowText

設定視窗文字或標題條(如果有的話)為指定文字

GetWindowText

獲得視窗文字或標題條

GetWindowTextLength

返回視窗文字或標題條的長度

SetFont

設定當前字型

GetFont

獲得當前字型

表6. 11 類CWnd的滾動成員函式

成員函式

描述

GetScrollPos

獲得滾動框的當前位置

GetScrollRange

拷貝給定滾動框中滾動塊的當前最大和最小位置

ScrollWindow

滾動客戶區的內容

ScrollWindowEx

滾動客戶區內容。與ScrollWindowEx類似,但具有一些附加特性

GetScrollInfo

獲得關於某一滾動條的由SCROLLINFO結構維護的資訊

GetScrollLimit

獲得滾動條的限制

SetScrollInfo

設定關於滾動條的資訊

SetScrollPos

設定滾動條的當前位置,並在指定的情況下重繪滾動條以反映新的位置

SetScrollRange

設定給定滾動條的最小和最大位置值

ShowScrollBar

顯示或隱藏滾動條

EnableScrollBarCtrl

允許或禁止兄弟滾動條控制元件

GetScrollBarCtrl

返回兄弟滾動條控制元件

RepositionBars

在客戶區中對控制元件條重定位

表6. 12 類CWnd的拖放成員函式

成員函式

描述

DragAcceptFiles

使視窗可以接受檔案拖放

表6. 13 類CWnd的插入符成員函式

成員函式

描述

CreateCaret

新的插入符形狀,並獲得該插入符的所有權

CreateSolidCaret

建立方塊形狀的插入符,並獲得該插入符的所有權

CreateGrayCaret

建立變灰方塊形狀的插入符,並獲得該插入符的所有權

GetCaretPos

獲得插入符當前位置的客戶座標

SetCaretPos

移動插入符到指定的位置

HideCaret

隱藏插入符

ShowCaret

在插入符的當前位置顯示插入符

表6. 14 類CWnd的對話方塊項函式

成員函式

描述

CheckDlgButton

在按鈕控制元件前放置選中標記或清除按鈕控制元件的選中標記

CheckRadioButton

選中指定的單選鈕並清除指定給中其它所有單選鈕的選中標記

GetCheckedRadioButton

返回一組按鈕中當前選中單選鈕的ID

DlgDirList

使用檔案或目錄列表填充一列表框

DlgDirListComboBox

使用檔案或目錄列表填充一組合框的列表框

DlgDirSelect

從一列表框中獲得當前選擇

DlgDirSelectComboBox

從一組合框的列表框中獲得當前選擇

GetDlgItemInt

將給定對話方塊中某一控制元件的文字轉換為一個整數值

GetDlgItemText

獲得與某一控制元件相關聯的標題或文字

GetNextDlgGroupItem

查詢同一組中的下一個(或前一個)控制元件

續表6.14

成員函式

描述

GetNextDlgTabItem

查詢在指定控制元件之前(或之後)的第一個具有WS_TABSTOP樣式的控制元件

IsDlgButtonChecked

判斷一個按鈕控制元件是否選中

IsDialogMessage

判斷一個給定訊息是否影響非模態對話方塊,如果是,處理該訊息

SendDlgItemMessage

向指定的控制元件傳送一條訊息

SetDlgItemInt

使某一控制元件的文字為某一給定整數值

SetDlgItemText

設定指定對話方塊中某一控制元件的標題或文字

SubclassDlgItem

將一個Windows控制元件與CWnd物件相關聯,並使其通過CWnd物件的訊息對映傳遞訊息

ExecuteDlgInit

初始化對話方塊資源

RunModalLoop

為一模態視窗獲取、翻譯或傳送訊息

ContinueModal

使一視窗繼續保持模態

EndModalLoop

結束某一視窗的模態狀態

表6. 15 類CWnd的資料繫結成員函式

成員函式

描述

BindDefaultProperty

將呼叫物件的預設簡單繫結屬性(該屬性在型別庫中標記)繫結至相關聯的資料來源控制元件的遊標

BindProperty

將資料繫結控制元件的遊標繫結屬性繫結至資料來源控制元件,並使用MFC繫結管理器註冊繫結關係

GetDSCCursor

獲得指向由資料來源控制元件的資料來源、使用者名稱、密碼和SQL屬性定義的底層遊標的指標

表6. 16 類CWnd的選單成員函式

成員函式

描述

GetMenu

獲得指向指定選單的指標

SetMenu

設定選單為指定的選單

DrawMenuBar

重繪選單條

GetSystemMenu

允許應用程式訪問控制選單以進行復制和修改

續表6.16

成員函式

描述

HiliteMenuItem

加亮頂層選單項或移去頂層選單項的加亮顯示

表6. 17 類CWnd的工具提示函式

成員函式

描述

EnableToolTip

允許工具提示控制元件

CancelToolTip

禁止工具提示控制元件

FilterToolTipMessage

獲得對話方塊中與某一控制元件相關聯的標題或文字

OnToolHitTest

判斷一個點是否在指定工具的繫結矩形內,並獲得該工具的資訊

表6. 18 類CWnd的計時器成員函式

成員函式

描述

SetTimer

安裝系統計時器,計時器觸發時傳送WM_TIMER訊息

KillTimer

消除系統計時器

表6. 19 類CWnd的提示成員函式

成員函式

描述

FlashWindow

閃爍視窗一次

MessageBox

建立並顯示一個包括應用程式提供的訊息和標題的視窗

表6. 20 類CWnd的視窗訊息成員函式

成員函式

描述

GetCurrentMessage

返回視窗正在處理的訊息的指標。僅當在一個OnMessage訊息處理函式中呼叫該成員函式。

Default

呼叫預設視窗過程,該過程提供對所有應用程式未處理的訊息的預設處理

PreTranslateMessage

CWinApp使用,在視窗訊息被髮送到TranslateMessageDispatchMessage之前對其進行過濾

續表6.20

成員函式

描述

SendMessage

將一條訊息傳送到CWnd物件,直至該物件處理該訊息之後才返回

PostMessage

將一條訊息放入程式的訊息佇列,不等待視窗處理該訊息就立即返回

SendNotifyMessage

將指定訊息傳送到視窗,並儘可能快的返回,這依賴於呼叫執行緒如何建立視窗

表6. 21 類CWnd的剪貼簿函式

成員函式

描述

ChangeClipboardChain

從剪貼簿檢視器鏈中移去CWnd物件

SetClipboardViewer

添到CWnd物件到視窗鏈,這些視窗當剪貼簿內容改變時會收到通知

OpenClipboard

開啟剪貼簿。其它程式僅當Windows CloseClipboard函式被呼叫時才可以更改剪貼簿

GetClipboardOwner

獲得剪貼簿的當前擁有者的指標

GetOpenClipboardWindow

獲得指向當前開啟剪貼簿的視窗的指標

GetClipboardViewer

獲得指向剪貼簿檢視器鏈中第一個視窗的指標

表6. 22 類CWnd的OLE控制元件函式

成員函式

描述

SetProperty

設定OLE控制元件屬性

OnAmbientProperty

實現環境屬性值

GetControlUnknown

獲得指向一未知OLE控制元件的指標

GetProperty

獲得一OLE控制元件的屬性

InvokeHelper

呼叫OLE控制元件方法或屬性

表6. 23 類CWnd的可過載成員函式

成員函式

描述

WindowProc

CWnd物件提供一個視窗過程。預設的視窗過程通過訊息對映傳送訊息

DefWindowProc

呼叫預設視窗過程,該過程提供應用程式未處理的所有視窗訊息的預設處理

PostNcDestroy

在視窗被消毀後由OnNcDestroy函式呼叫

OnNotify

由框架呼叫以通知父視窗某一事件在某一控制元件中發生或者該控制元件需要資訊

OnChildNotify

由父視窗呼叫以給通知控制元件一個響應控制元件通知的機會

DoDataExchange

用於對話方塊資料交換和驗證。由UpdateData呼叫

按鈕 一般屬性:

ID

在標頭檔案中定義的符號。型別:符號、整數或用引號括起來的字串

Caption

控制元件標籤文字。如果在標題中的某個字母前加上了“&”符號,該字母在顯示時將被加上下劃線,相應的“&”符不會被顯示。在執行直接按下加有下劃線的字母同單擊按鈕具有同樣的效果。預設情況下,資源編輯器對按鈕標題的命名依賴於控制元件的型別,如Button1Button2等。

Visible

決定當應用程式第一次執行時控制元件是否可見。型別:布林值 預設值為真

Disabled

決定當對話方塊建立時該控制元件是否顯示為禁止狀態。型別:布林值 預設值為假

Group

指定一組控制元件中的第一個控制元件。在同組控制元件中使用者可以使用箭頭鍵在控制元件之間移動。以tab order為序,在該控制元件之後的所有該屬性值為False的控制元件將被視為同一組控制元件,直到遇上Group屬性標記為True的控制元件為止。型別:布林值 預設值為假

Tabstop

決定使用者是否可以使用TAB鍵來定位到該控制元件。型別:布林值 預設值為假

HelpID

為控制元件指定一個幫助識別符號。該識別符號基於相應的資源識別符號。型別:布林值 預設值為假

樣式:

Default button

該屬性為真時,控制元件將作為對話方塊中的預設按鈕,預設按鈕在對話方塊第一次顯示時具有粗的黑邊,使用者在對話方塊中按下ENTER鍵相當於單擊該按鈕。一個對話方塊中只允許有一個預設按鈕。型別:布林值 預設值為假

Owner draw

建立一個自繪按鈕。使用自繪按鈕可以定製按鈕的外觀。使用自繪按鈕需要過載下面的兩個函式或其中之一:CWnd::OnDrawItemCButton::OnDraw

Icon

在按鈕顯示時使用一個圖示來代替文字。型別:布林值 預設值為假

該按鈕樣式為Windows 95中新引入的按鈕樣式

Bitmap

在按鈕顯示時使用點陣圖來代替文字。型別:布林值 預設值為假

該樣式為Windows 95中新引入的樣式

Multi-line

當按鈕文字太長時使用多行迴繞的方式進行顯示。型別:布林值 預設值為假

Notify

按鈕控制元件被單擊或雙擊時通知父視窗。型別:布林值 預設值為真

Flat

使用平面外觀代替按鈕預設的三維外觀。型別:布林值 預設值為假

Horizontal alignment

設定按鈕標題文字的對齊方式(左對齊、右對齊、居中對齊或使用預設位置)

Vertical alignment

設定按鈕標題文字的對齊方式(向上對齊、向下對齊、居中對齊或使用預設位置)

擴充套件樣式

Client edge

使按鈕看起來有下凹的感覺。型別:布林值 預設值為假

Static edge

在按鈕邊緣建立邊框。型別:布林值 預設值為假

Modal frame

提供一個三維框架

Transparent

使控制元件透明。位於透明視窗下面的視窗不會被該視窗所覆蓋。具有透明樣式的視窗僅當所有底層兄弟視窗完成更新之後才會收到WM_PAINT訊息。型別:布林值 預設什為假

Accept files

是否接受檔案拖放。如果在控制元件上放下檔案時,控制元件將接收到WM_DROPFILES訊息。型別:布林值 預設值為假

No parent notify

指定子視窗不向父視窗傳送WM_PARENTNOTIFY訊息。型別:布林值 預設值為假

Right aligned text

指定文字為右對齊。型別:布林值 預設值為假

Right-to-left reading order

使用從右向左的閱讀方式來顯示文字。主要用於希伯來語系和阿拉伯語等。型別:布林值 預設值為假

以下特定於核取方塊的樣式可以Properties對話方塊的Styles屬性頁中進行設定:

Auto

對於Auto屬性為真的核取方塊,在單擊時將自動在“選中”和“不選中”之間進行切換。如果在一組核取方塊中使用了Dialog Data Exchange,則必須將該屬性設定為真。型別:布林值 預設值:真

Tri-state

建立三態核取方塊。除了處於“選中”和“不選中”狀態外,三態核取方塊還可以處於變灰狀態。通常,態核取方塊的變灰狀態表示其選中狀態不確定。在很多軟體的安裝程式中,變灰往往表示僅選中該元件中的一部分。

表6. 24 工程CheckBox中各控制元件的屬性設定

控制元件

ID

標題文字

其它

核取方塊

IDC_PLACE1

在家裡(&H)

Auto屬性和Tri-state屬性均為真

IDC_PLACE2

在公司辦公室(&O)

IDC_PLACE3

在學校公共機房(&S)

IDC_OFTEN

經常

Auto屬性為假,Tri-state屬性為真

IDC_SELDOM

偶爾

IDC_NEVER

從不

組框

IDC_STATIC

使用計算機的場所

 

態控制元件的Properties屬性對話方塊的Styles選項卡進行這些屬性或樣式的設定。

Align text

決定靜態文字控制元件中文字的橫向對齊方式。可供選擇的值為Left (向左對齊)Center (居中對齊)Right (向右對齊)。預設值:Left

Center Vertically

在靜態文字控制元件中將文字進行垂直居中。型別:布林值 預設值:假

No prefix

不將控制元件文字中的“&”符解釋為助記字元。在預設情況下,“&”符號在顯示時會被去掉,取而代之的是緊接“&”符之後的字元被以加下劃線的格式進行顯示。我們早在前面說過,通過雙寫“&”符可以在控制元件文字中顯示出實際的“&”符,但是,對於一些特殊的場合,如使用靜態文字控制元件來顯示檔名的時候,將No prefix屬性設定為“真”要更方便。

No wrap

以左對齊的方式來顯示文字,並且不進行文字的自動回行。超出控制元件右邊界的文字將被裁去。需要注意的是,這時即使使用轉義字元序列"\n"也不可以強制控制元件文字進行換行。型別:布林值 預設值:假

Simple

禁止設定Text Align屬性和No Wrap樣式。在該屬性為真的情況下,靜態文字控制元件中的文字不會被自動回行,也不會被剪裁。型別:布林值 預設值:假

Notify

決定控制元件在被單擊時是否通知父視窗。型別:布林值 預設值:假

Sunken

使用靜態文字控制元件看上去有下凹的感覺。型別:布林值 預設值:假

Border

為文字控制元件建立邊框。型別:布林值 預設值:假

對於文字編輯控制元件,除了我們在前面所涉及的一些外,還可以設定以下的一些屬性樣式:

Align text

決定當Multiline屬性為真時文字的對齊方式。預設值為:Left

Multi-line

建立一個多行文字編輯控制元件。當一個多行文字編輯控制元件具有輸入焦點時,如果使用者按下了ENTER鍵,以預設情況下的行為是選擇對話方塊中的預設命令按鈕,而不是向文字編輯控制元件中插入新行。將AutoHScroll屬性或Want return屬性設定為真可以將使用者按下的ENTER鍵解釋為插入新行,而不是選擇預設命令按鈕。

在選擇了AutoHScroll屬性時,如果插入點超過了控制元件的右邊界,多行文字編輯控制元件自動進行水平滾動。使用者可以使用ENTER鍵來開始新行。

如果沒有選擇AutoHScroll屬性,多行文字編輯控制元件將視需要將文字進行自動折行。而僅當Want return屬性為真時,使用者才可以使用ENTER鍵來開始新行。

多行文字編輯控制元件也可以擁有自己的滾動條。具有滾動條的編輯控制元件處理自己的滾動條訊息,而不具有滾動條的編輯控制元件也可以由父視窗傳送的滾動條訊息。

型別:布林值 預設值:假

Number

使用者不能輸入非數字字元。型別:布林值 預設值:假

Horizontal scroll

為多行控制元件提供水平滾動條。型別:布林值 預設值:假

Auto HScroll

當使用者輸入的字元超過了編輯框的右邊界時自動水平向右滾動文字。型別:布林值 預設值:真

Vertical scroll

為多行控制元件提供垂直滾動條。型別:布林值 預設值:假

Auto VScroll

在多行控制元件中,當使用者在最後一行按下ENTER鍵時自動向上滾動文字

Password

當使用者鍵入時將所有字元顯示為星號(*)。該屬性對於多行控制元件不可用。型別:布林值 預設值:假

No hide selection

改變當編輯框失去和重新獲得焦點時文字的顯示方式。如果該屬性為真,在編輯框中選中的文字在任何時候都顯示為選中狀態(即反白狀態)。型別:布林值 預設值:假

OEM convert

將鍵入的文字從Windows字符集轉換為OEM字符集,再轉換回Windows字符集。該操作確認應用程式在呼叫AnsiToOem函式將編輯框中的字串轉換為OEM字串時進行正確的字元轉換,因此該樣式對於包括檔名的編輯控制元件特別有用。型別:布林值 預設值:假

Want return

指定當使用者在多行編輯控制元件中按下ENTER鍵時插入一個回車符,否則使用者按下ENTER將被解釋為選擇了對話方塊中的預設命令按鈕。該樣式對於單行編輯框控制元件沒有任何影響。型別:布林值 預設值:假

Border

在編輯框邊緣建立邊框。型別:布林值 預設值:真

Uppercase

將使用者在編輯框中輸入的字元轉換為大寫。型別:布林值 預設值:假

Lowercase

將使用者在編輯框中輸入的字元轉換為小寫。

型別:布林值 預設值:假

Read-only

防止使用者編輯和更改編輯框中的文字。型別:布林值 預設值:假

表6. 25 類CEdit中定義的成員函式

成員函式

描述

CEdit

構造CEdit控制元件物件

Create

建立Windows編輯控制元件,並將其與CEdit物件相關聯

GetSel

獲得編輯控制元件中當前選擇的開始和結束字元的位置

ReplaceSel

使用特定的文字來替換編輯控制元件中的當前選擇

SetSel

設定編輯控制元件中所選定的字元範圍

Clear

刪除編輯控制元件中當前選定的字元

Copy

使用CF_TEXT格式將編輯控制元件中當前選定的文字複製到剪貼簿

Cut

刪除當前選定的字元,並將所刪除的字元複製到剪貼簿

Paste

將剪貼簿中格式為CF_TEXT的資料(如果有的話)插入到編輯框中的當前位置。

Undo

撤銷最後一次編輯操作

CanUndo

決定編輯控制元件的操作是否可以被撤銷

EmptyUndoBuffer

重置編輯控制元件的undo標誌

GetModify

判斷編輯控制元件中的內容是否被修改過

SetModify

設定或清除編輯控制元件中的修改標誌

SetReadOnly

設定編輯控制元件的只讀狀態

GetPasswordChar

當使用者輸入文字時獲得編輯控制元件中顯示的密碼字元

SetPasswordChar

設定或移去當使用者輸入文字時編輯控制元件中顯示的密碼字元

GetFirstVisibleLine

獲得編輯控制元件中最上面的可見行

LineLength

獲得編輯控制元件中一行的長度

LineScroll

滾動多行編輯控制元件中的文字

LineFromChar

獲得包含指定索引字元的行的行號

GetRect

獲得編輯控制元件的格式矩形

LimitText

限制使用者可以在編輯控制元件中輸入的文字的長度

GetLineCount

獲得多行編輯控制元件中行的數目

GetLine

獲得編輯控制元件中的一行文字

LineIndex

獲得多行編輯控制元件中一行的字元索引

FmtLines

在多行編輯控制元件中設定是否包含軟換行符的開關

續表6.25

成員函式

描述

 

SetTabStops

在多行編輯控制元件中設定製表位

 

SetRect

設定多行文字編輯控制元件的格式矩形,並更新控制元件

 

SetRectNP

設定多行文字編輯控制元件的格式矩形,但不重繪控制元件視窗

 

GetHandle

獲得為多行編輯控制元件分配的記憶體的控制程式碼

 

SetHandle

設定供多行編輯控制元件使用的本地記憶體控制程式碼

 

GetMargins

獲得當前CEdit物件的左右頁邊距

 

SetMargins

設定當前CEdit物件的左右頁邊距

 

GetLimitText

獲得當前CEdit物件可以包括的最大文字量

 

SetLimitText

設定當前CEdit物件可以包括的最大文字量

 

CharFromPos

獲得最接近於指定點陣圖的行和字元的索引

 

PosFromChar

獲得指定字元索引的左上角的座標

 

 

 

ON_EN_CHANGEON_EN_ERRSPACE

編輯控制元件不能按選定需要分配足夠的記憶體

ON_EN_HSCROLL

使用者單擊了編輯控制元件中的水平滾動條。父視窗在螢幕更新前獲得此訊息

ON_EN_KILLFOCUS

編輯控制元件失去輸入焦點

ON_EN_MAXTEXT

當前插入內容超過了編輯控制元件中的指定的字元數,該插入內容已被裁剪。如果控制元件沒有設定ES_AUTOHSCROLL樣式,那麼在插入的字元超出了編輯控制元件的寬度也傳送該通知訊息。同樣,如果控制元件沒有指定ES_AUTOVSCROLL樣式,該通知也以插入操作導致總行數超過編輯控制元件的高度時傳送。

ON_EN_SETFOCUS

編輯按鈕獲得輸入焦點

ON_EN_UPDATE

控制元件已對文字作了格式化,但尚未顯示文字。通常可以處理該訊息以決定是否需要對視窗的大小作改變等。

ON_EN_VSCROLL

使用者單擊了編輯控制元件的垂直滾動條。父視窗在螢幕更新前收到該訊息。

表6. 26 在類CListBox中定義的成員函式

成員函式

描述

AddString

向列表框中新增字串

CharToItem

為不包含字串的自繪製列表框提供對WM_CHAR的定製處理

CListBox

構造一個CListBox物件

CompareItem

由框架呼叫以決定新新增的項在有序自繪製列表框中的位置

Create

建立一個Windows列表框控制元件,並將它與CListBox物件相關聯

DeleteItem

當使用者從自繪製列表框中刪除一項時由框架呼叫

DeleteString

從列表框中刪除字串

Dir

從當前目錄向列表框中新增檔名

DrawItem

當自繪列表框的可視部分改變時由框架呼叫

FindString

在列表框中查詢指定的字串

FindStringExact

查詢與指定字串相匹配的第一個列表框字串

GetAnchorIndex

返回列表框中當前“錨點”項的基於零的索引

續表6.26

成員函式

描述

GetCaretIndex

在多重選擇列表框中獲得當前擁有焦點矩形的項的索引

GetCount

返回列表框中字串的數目

GetCurSel

返回列表框中當前選擇字串的基於零的索引值

GetHorizontalExtent

以象素為單位返回列表框橫向可滾動的寬度

GetItemData

返回下列表框項相關聯的32位值

GetItemDataPtr

返回指向列表框項的指標

GetItemHeight

決定列表框中項的高度

GetLocale

獲得列表框使用的區域識別符號

GetSel

返回列表框項的選定狀態

GetSelItems

返回當前選定字串的索引

GetSelCount

在多重選擇列表框中獲得當前選定字串的數目

GetText

拷貝列表框項到緩衝區

GetTextLen

以位元組為單位返回列表框項的長度

GetTopIndex

返回列表框中第一個可視項的索引

InitStorage

為列表框項和字串預先分配記憶體

InsertString

在列表框中的指定位置插入一個字串

ItemFromPoint

返回與指定點最接近的列表框項的索引

MeasureItem

當自繪列表框建立時由框架呼叫以獲得列表框的尺寸

ResetContent

從列表框中清除所有的項

SelectString

從單項選擇列表框中查詢並選定一個字串

SelItemRange

在多重選擇列表框中選中某一範圍的字串或清除某一範圍的字串的選定狀態

SetAnchorIndex

在多重選擇列表框的設定擴充套件選定的起點(“錨點”項)

SetCaretIndex

在多重選擇列表框中設定當前擁有焦點矩形的項的索引

SetColumnWidth

設定多列列表框的列寬

SetCurSel

在列表框中選定一字串

SetHorizontalExtent

以象素為單位設定列表框橫向可滾動的寬度

SetItemHeight

設定列表框中項的高度

SetItemRect

返回列表框項當前顯示的邊界矩形

SetLocale

為列表框指定區域識別符號

續表6.26

成員函式

描述

SetSel

在多重選擇列表框中選定一列表框項或清除某一列表框項的選定狀態

SetTabStops

設定列表框的製表位

SetTopIndex

設定列表框中第一個可視項的基於零的索引

VKeyToItem

為具有LBS_WANTKEYBOARDINPUT樣式的列表框提供定製的WM_KEYDOWN訊息處理

以下是列表框可能向父視窗傳送的通知訊息及其說明:

ON_LBN_DLBCLK

使用者雙擊了列表框中的字串。僅當列表框具有LBS_NOTIFY樣式時會傳送該通知訊息

ON_LBN_ERRSPACE

列表框不能按需要分配足夠的記憶體

ON_LBN_KILLFOCUS

列表框失去輸入焦點

ON_LBN_SELCANCEL

列表框中的當前選擇被取消。僅當列表框具有LBS_NOTIFY樣式時才會傳送該通知訊息

ON_LBN_SELCHANGE

列表框中的選擇將被更新。需要注意的是,當使用成員函式CListBox::SetCurSel時不會傳送該通知訊息,同時,該訊息也僅當列表框具有LBS_NOTIFY樣式才會傳送。對於多重選擇列表框,當使用者按下游標鍵時,即使所選擇的內容沒有改變,也會傳送LBN_SELCHANGE通知訊息。

ON_LBN_SETFOCUS

列表框獲得輸入焦點

ON_WM_CHARTOITEM

不包括字串的列表框收到WM_CHAR訊息

ON_WM_VKEYTOITEM

具有LBS_WANTKEYBOARDINPUT樣式的列表框接收到WM_KEYDOWN訊息

Selection

決定列表框的選擇方式。可以設定的值如下:

Single:使用者同時只能選擇列表框中的一項

Multiple:使用者可以同時選擇多於一個的列表框項,但不可以從開始項擴充套件選定內容。在滑鼠單擊時可以使用SHIFT鍵和CTRL鍵選定和取消選定,同時選定項不一定需要連續。單擊或雙擊未選定項時將選定該項;單擊或雙擊已選定項時將取消對該項的選定。

Extended:使用者可以通過拖動來擴充套件選定內容。使用者可以滑鼠和SHIFT鍵和CTRL鍵進行選定或取消選定,選擇成組的項或不連續的項。

預設值為Single

Owner draw

控制列表框的自繪特性。可以設定的值如下:

No:關閉自繪製樣式,列表框中包含的內容為字串。

Fixed:指定列表框的所有者負責繪製其內容,並且列表框中的項具有相同的高度。

Variable:指定列表框的所有者負責繪製其內容,並且列表框的項具有不同的高度。

當列表框建立時CWnd::OnMeasureItem將被呼叫;當列表框的可視部分改變時CWnd::OnDrawItem將被呼叫。

預設值為No

Has strings

指定自繪製列表框包括由字串組成的項。列表框為字串維護記憶體和指標,因此應用程式可以使用LB_GETTEXT訊息來獲得特定項的文字。在預設情況下,除了自繪製按鈕以外,所有的列表框都具有該項屬性。由應用程式建立的自繪製列表框可以具有或不具有該樣式。

該樣式僅當自繪製屬性被設定為FixedVariable時可用。如果自繪製屬性被設定為No,列表框在預設情況下包括字串。

型別:布林值 預設值為假

Sort

以字母為序對列表框內容進行排序。

型別:布林值 預設值為真

Notify

如果列表項被單擊或雙擊時通知父視窗。

型別:布林值 預設值為真

Multi-colume

指定多列列表框,多列列表框可以在水平方向上進行滾動。訊息LB_SETCOLUMNWIDTH用來設定列寬。

型別:布林值 預設值為假

Horizontal scroll

建立具有水平滾動條的列表框。型別:布林值 預設值為假

Vertical scroll

建立具有垂直滾動條的列表框。型別:布林值 預設值為真

No redraw

指定當發生改變時列表框外觀不進行更新。可以通過傳送WM_SETREDRAW訊息或呼叫CWnd::SetRedraw函式改變該屬性。

型別:布林值 預設值為假

Use tabstops

允許列表框在繪製字串辨認和擴充套件製表符。預設的製表位為32個對話方塊單位(DLU)。型別:布林值 預設值為假

Want key input

指定當使用者有按鍵動作並且列表框具有輸入焦點時列表框的所有者收到WM_VKEYTOITEMWM_CHARTOITEM訊息,以允許應用程式在使用鍵盤輸入時進行特定的處理。如果列表框具有了Has Strings樣式,列表框將接收到WM_VKEYTOITEM訊息;如果列表框不具有WM_CHARTOITEM訊息,則列表框將接收到WM_CHARTOITEM訊息。

型別:布林值 預設值為假

Disable no scroll

當列表框不具有足夠多的項時顯示不可用的滾動條。如果不使用該屬性,在這種情況下將不使用滾動條。型別:布林值 預設值為假

No integral height

設定對話方塊的大小嚴格等於建立對話方塊時由應用程式指定的大小。一般情況下,Windows改變列表框的大小以使得它不會只顯示某一項的一部分,即列表框客戶區的高度為項高的整數倍。

型別:布林值 預設值為真

表6. 27 應用程式ListBoxDemo主對話方塊各控制元件的屬性設定

控制元件型別

資源ID

控制元件標題

其他

列表框

IDC_LISTSELECTABLE

 

位於圖6.47左邊的列表框,其Selection屬性為Extended。對應的DDX變數對映(使用ClassWizardMember Vari-ables選項卡進行設定)CListBox型別變數m_lsSelectable

IDC_LISTSELECTED

 

位於圖6.47右邊的列表框,其Selection屬性為Extended。對應的DDX變數對映為CListBox型別變數m_lsSelected

靜態控制元件

(無需更改)

待選擇的檔案

 

已選擇的檔案

 

下壓按鈕

IDC_BTNCHANGEDIR

改變目錄(&H)

 

IDC_BTNADD

新增到(&A) ->

 

IDC_BTNDEL

刪除(&D)

 

IDC_BTNCLEAR

全部清除(&L)

 

 

表6. 28 對話方塊IDD_INPUT各控制元件的屬性設定

控制元件型別

資源ID

控制元件標題

其他

靜態控制元件

IDC_PROMPT

提示字串

對應的DDX變數對映為CString型別成員變數m_strPrompt

編輯框

IDC_INPUT

 

對應的DDX變數對映為CString型別成員變數m_strInput

第七節 組合框

Type

指定組合框的型別。可以使用的型別如下:

Simple:建立包括編輯框控制元件和列表框的簡單組合框,其中編輯框控制元件用來接受使用者的輸入。

Dropdown:建立下拉組合框。該型別與簡單組合框類似。但僅當使用者單擊了編輯框控制元件部分右邊的下拉箭頭時組合框的列表框部分才被顯示。

Drop List:該型別類似於下拉樣式(drop-down),只是使用靜態文字項代替編輯框控制元件來顯示列表框中的當前選擇。

預設值為Dropdown

Uppercase

將選擇域或列表中的所有文字轉換為大寫。

型別:布林值 預設值為假

Lowercase

將選擇域或列表中的所有文字轉換為小寫。

型別:布林值 預設值為假

表6. 29 在類CListBox中定義的成員函式

成員函式

描述

CComboBox

構造一個CComboBox物件

Create

建立一個組合框並將它與CComboBox物件相關聯

InitStorage

為組合框的列表框部分的項和字串預先分配記憶體塊

GetCount

獲得組合框中列表框項的數目

GetCurSel

如果存在的話,返回組合框中列表框的當前選定項的索引

SetCurSel

選擇組合框中列表框內的一條字串

GetEditSel

獲得組合框中編輯控制元件的當前選定的起始和終止字元位置

SetEditSel

在組合框的編輯控制元件中選定字元

SetItemData

設定與組合框中指定項相關聯的32位值

SetItemDataPtr

將與組合框中指定項相關聯的32位值設定為指定的void指標

GetItemData

獲得由應用程式提供的與指定組合框項相關聯的32位值

GetItemDataPtr

void指標的形式返回由應用程式提供的與指定組合框項相關聯的32位值

GetTopIndex

返回組合框中列表框部分的第一個可視項的索引

SetTopIndex

在組合框中的列表框部分的頂部顯示指定索引對應的項

SetHorizontalExtent

以象素為單位指定組合框的列表框部分可以橫向滾動的寬度

GetHorizontalExtent

以象素為單位獲得組合框中列表框部分可以橫向滾動的寬度

SetDroppedWidth

為組合框的下拉選單框部分設定最小允許寬度

GetDroppedWidth

獲得組合框的下拉選單框部分的最小允許寬度

Clear

如果存在的話,刪除編輯控制元件中當前選定的內容

Copy

如果存在的話,將當前選定以CF_TEXT格式複製到剪貼簿

Cut

如果存在的話,刪除編輯控制元件中當前選定的內容,並將其以CF_TEXT格式複製到剪貼簿

Paste

當剪貼簿包括CF_TEXT格式的資料時,從剪貼簿複製資料到編輯控制元件的當前插入位置

LimitText

設定使用者可以在組合框的編輯控制元件中輸入的文字的長度限制

SetItemHeight

設定組合框中列表項的高度或編輯控制元件(或靜態文字控制元件)部分的高度

GetItemHeight

獲得組合框中列表項的高度

GetLBText

從組合框中的列表框獲取字串

續表6.29

成員函式

描述

GetLBTextLen

獲得組合框的列表框中某一字串的長度

ShowDropDown

對於具有CBS_DROPDOWNCBS_DROPDOWNLIST屬性的組合框,顯示或隱藏其列表框

GetDroppedControlRect

獲得下拉組合框的可視(下拉)列表框的螢幕座標

GetDroppedState

判斷下拉組合框的列表框是否可見(處理下拉狀態)

SetExtendedUI

對於具有CBS_DROPDOWNCBS_DROPDOWNLIST樣式的組合框,選擇預設使用者介面或擴充套件使用者介面

GetExtendedUI

判斷組合框具有預設使用者介面還是擴充套件使用者介面

GetLocale

獲得組合框的區域識別符號

SetLocale

設定組合框的區域識別符號

AddString

向組合框的列表框新增一字串,對於具有CBS_SORT樣式的組合框,新增加的字串將被排序並插入到合適的位置,否則將被新增到列表框框的末尾

DeleteString

從組合框的列表框中刪除字串

InsertString

向組合框的列表框中插入一字串

ResetContent

清除組合框的列表框和編輯控制元件中的所有內容

Dir

新增檔名列表到組合框的列表框中

FindString

在組合框的列表框中查詢包括指定字首的第一個字串

FindStringExact

在組合框的列表框中查詢與指定字串匹配的字串

SelectString

在組合框的列表框中查詢字串,如果找到的話,在列表框中選擇該字串,並將字串複製到編輯控制元件中

DrawItem

當一個自繪製組合框的可視部分改變時由框架呼叫

MeasureItem

在建立自繪製組合框時,由框架呼叫以判斷組合框的尺寸

CompareItem

當將一新項插入到排序的自繪製框中時由框架呼叫以判斷項的相對位置

DeleteItem

當一列表項被從自繪製組合框中刪除時由框架呼叫

表6. 30 對話方塊IDD_COMBODEMO_DIALOG的控制元件屬性設定

控制元件型別

ID

屬性值

組合框

IDC_CLRCOMBO

TypeDropdown

Owner drawFixed

Sort:真

Vertical scroll:真

Has string:假

下壓按鈕

IDC_ADDCLR

Caption:新增顏色(&A)

IDC_CHGCLR

Caption:改變顏色(&C)

靜態控制元件

IDC_STATICCLR

Caption屬性值為空

表6. 31 在類CScrollBar中定義的成員函式

成員函式

描述

 

CScrollBar

構造一個CScrollBar物件

 

Create

建立一個Windows滾動條,並將它與CScrollBar物件相關聯

 

GetScrollPos

獲得滾動條的當前位置

 

SetScrollPos

設定滾動條的當前位置

 

GetScrollRange

獲得給定滾動條的當前最大和最小位置

 

SetScrollRange

設定給定滾動條的當前最大和最小位置

 

ShowScrollBar

顯示或隱藏滾動條

 

EnableScrollBar

允許或禁止滾動條上的一個或兩個箭頭

 

SetScrollInfo

設定關於滾動條的資訊

 

GetScrollInfo

獲得滾動條的資訊

 

GetScrollLimit

獲得滾動條的限制

 

SB_LEFT

向左滾動較遠距離

SB_ENDSCROLL

結束滾動

SB_LINELEFT

向左滾動

SB_LINERIGHT

向右滾動

SB_PAGELEFT

向左滾動一頁

SB_PAGERIGHT

向右滾動一頁

SB_RIGHT

向右滾動較遠距離

SB_THUMBPOSITION

滾動到絕對位置。當前位置由nPos引數指定

SB_THUMBTRACK

拖動滾動條到指定的位置。當前位置由nPos引數指定

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27660822/viewspace-776142/,如需轉載,請註明出處,否則將追究法律責任。

相關文章