COleControl

COleControl類是一個開發OLE控制項的功能強大的基類。它由CWnd類派生,繼承了Windows視窗對象的所有功能,並加上了OLE獨有的功能,例如事件觸發、支持方法和特性等。

基本介紹

  • 中文名:COleControl
  • 基類:OLE控制項的功能
  • 派生:CWnd類
  • 繼承了:Windows視窗對象
簡介,作用,

簡介

OLE控制項可以插入到OLE包容器中,並通過事件觸發和包容器引發方法和特性的雙向系統相互通訊和聯繫。注意,標準的OLE包容器僅支持OLE控制項的基本功能,而不支持OLE控制項的擴展特性。當在控制項中採取某個動作,就會向包容器發出一個事件,稱為事件觸發。相反,包容器引發一系列的類似於C++類的成員函式數據成員的方法和特性來與控制項進行通訊。這種方法使開發者可以控制控制項的外觀,並在產生某些動作時通知包容器。

作用

無視窗控制項
OLE控制項可在沒有視窗的情況下使用。無視窗控制項是十分有用的:
·無視窗控制項可以是透明和無形的。
·無視窗控制項減小了實例的尺寸和創建對象的時間。
控制項並不需要視窗。一個視窗提供的服務可以容易地通過一個單一的共享視窗(通常是包容器的)和分派碼的一位來提供。有一個視窗通常使對象的複雜度增加。
當使用無視窗激活時,包容器(它有一個視窗)將負責提供本來應由控制項自己的視窗提供的服務。例如,如果你的控制項需要查詢鍵盤輸入焦點、查詢滑鼠位置或獲取一個設備上下文等,都由包容器來提供支持。
COleControl無視窗操作成員函式將調用包容器上的這些操作。
當不能使用無視窗激活時,包容器會向控制項的IOleInPlaceObjectWindowless界面(支持無視窗的IOleInPlaceObject的擴展)傳送輸入訊息。在適當調整滑鼠坐標後,COleControl實現這些該界面時通過控制項的訊息映射圖分派這些訊息。可以通過增加訊息映射圖的入口點,同處理普通的視窗訊息一樣處理這些訊息。
在無視窗控制項中,通常需要使用COleControl成員函式來代替相應的成員函式或相關的Windows API函式。
只有在OLE控制項對象活動時,它們也能創建視窗。但是對象進行不活動-活動切換的工作量增大,速度也會下降。這可能會引發一些問題:
例如在文本框的柵格中,當游標在列間上下移動時,每個控制項都先被就地激活,然後取消。這樣不活動/活動切換的速度將直接影響滾動的速度。
#include <afxctl.h>
COleControl類的成員
構造函式/析構函式
創建一個COleControl對象
RecreateControlWindow
銷毀並重建控制項的視窗
初始化
InitializeIIDs
將控制項將要使用的IIDs通知基類
ResetStockProps
初始化COleControl的標準特性為預設值
ResetVersion
將版本數設定為給定值
SetInitialSize
設定一個OLE控制項第一次在包容器中顯示的尺寸
控制項修改函式
GetControlFlags
存取控制項標誌設定
IsModified
判定控制項的狀態是否已經改變
改變一個控制項的修改狀態
ExchangeExtent
串列化控制項的寬度和高度
ExchangeStockProps
串列化控制項的標準特性
ExchangeVersion
串列化控制項的版本號
IsConvertingVBX
允許OLE控制項的指定裝入
SerializeExtent
串列化或初始化控制項的顯示空間
SerializeStockProps
串列化或初始化COleControl標準特性
SerializeVersion
串列化或初始化控制項的版本信息
改變控制項的修改狀態
WillAmbientsBeValidDuringLoad
決定環境特性在控制項下次裝入時是否可用
更新/繪畫函式
DoSuperclassPaint
重畫一個從Windows控制項派生的OLE控制項
InvalidateControl
使一個已經顯示的控制項的區域無效,導致重畫控制項
IsOptimizedDraw
指示包容器是否支持當前繪畫操作的最佳化
SelectFontObject
為一個設備上下文選定自定義Font特性
SelectStockFont
為一個設備上下文選定標準Font特性
TranslateColor
將OLE_COLOR值轉換為一個COLORREF值
分派異常
GetNotSupported
禁止用戶存取控制項的特性
SetNotPermitted
指示編輯請求失敗
SetNotSupported
禁止用戶修改控制項的特性
ThrowError
OLE控制項出錯時發出信號
環境屬性函式
AmbientBackColor
返迴環境BackColor特性的值
AmbientDisplayName
返回由包容器說明的控制項名稱
AmbientForeColor
返迴環境ForeColor特性的值
AmbientFont
返迴環境Font特性的值
AmbientLocaleID
返回包容器的本地標識(ID)
AmbientScaleUnits
返回包容器使用的單位名稱
AmbientShowGrabHandles
決定是否要顯示抓取句柄
AmbientShowHatching
決定是否顯示陰影
AmbientTextAlign
返回包容器說明的文本對齊方式
AmbientUIDead
決定控制項是否要回響用戶動作
AmbientUserMode
決定包容器模式
GetAmbientProperty
返回指定的環境變數值
事件觸發函式
FireClick
觸發標準Click事件
FireDblClick
觸發標準DblClick事件
FireError
觸發標準Error事件FireEvent觸發一個自定義事件
FireKeyDown
觸發標準KeyDown事件
FireKeyPress
觸發標準KeyPress事件
FireKeyUp
觸發標準KeyUp事件
FireMouseDown
觸發標準MouseDown事件
FireMouseMove
觸發標準MouseMove事件
FireMouseUp
觸發標準MouseUp事件
FireReadyStateChange
當控制項的就緒狀態改變時,觸發一個事件
標準方法和屬性
DoClick
執行標準DoClick方法
重畫控制項外觀
GetAppearance
返回標準Appearance特性的值
SetAppearance
設定標準Appearance特性的值
GetBackColor
返回標準BackColor特性的值
SetBackColor
設定標準BackColor特性的值
GetBorderStyle
返回標準BorderStyle特性的值
SetBorderStyle
設定標準BorderStyle特性的值
GetEnabled
發揮標準Enabled 特性的值
SetEnabled
設定標準Enabled 特性的值
GetForeColor
返回標準ForeColor特性的值
SetForeColor
設定標準ForeColor特性的值
GetFont
返回標準Font特性的值
SetFont
設定標準Font特性的值
返回標準Text或Caption特性的值
SetText
設定標準Text或Caption特性的值
GetFontTextMetrics
返回CFontHolder對象的度量
GetStockTextMetrics
返回標準Font特性的度量
InternalGetFont
返回CFontHolder對象的標準Font特性的值
InternalGetText
獲取標準Text或Caption特性
SelectStockFont
選擇控制項的標準Font特性到設備上下文中
GetHwnd
返回標準hWnd特性的值
OLE控制項的尺寸函式
GetControlSize
返回OLE控制項的位置和尺寸
SetControlSize
設定OLE控制項的位置和尺寸
GetRectInContainer
返回控制項相對它的包容器的矩形邊界
SetRectInContainer
設定控制項相對它的包容器的矩形邊界
OLE數據綁定函式
BoundPropertyChanged
通知包容器,說明綁定特性已經改變
BoundPropertyRequestEdit
申請編輯特性值的許可許可權
簡單框架函式
EnableSimpleFrame
使控制項支持簡單框架
OLE控制項位置函式
ControlInfoChanged
控制項處理的助記符改變後調用該函式
GetClientSite
查詢在包容器內的對象的當前客戶區指針
GetExtendedControl
獲取屬於該包容器的一個擴展控制項對象的指針
LockInPlaceActive
決定控制項能否被包容器取消
TransformCoords
在包容器和控制項之間變換坐標
PreModalDialog
通知包容器,說明將顯示一個模態對話框
PostModalDialog
通知包容器,說明一個模態對話框已被關閉
無視窗操作
ClipCaretRect
一個脫字元號被控制項覆蓋,調整它的矩形邊界
決定一個無視窗、活動控制項對象是否獲得滑鼠捕獲焦點
獲取控制項客戶區的尺寸
提供無視窗控制項從它的包容器獲得設備上下文的途徑
決定一個控制項是否具有輸入焦點
GetWindowlessDropTarget
覆蓋該函式,允許無視窗控制項成為拖放操作的目標
使包容器視窗的客戶區在給定區域內無效。用於重畫該區域內的無視窗控制項
OnWindowlessMessage
處理無視窗控制項的視窗訊息(滑鼠和鍵盤訊息除外)
釋放滑鼠捕獲焦點
釋放無視窗控制項的包容器的顯示設備上下文
允許無視窗控制項在螢幕上滾動它的活動圖象的一個區域
使控制項的包容器視窗取代控制項的滑鼠捕獲焦點
使控制項的包容器視窗取代控制項的輸入焦點
非活動指針處理函式
ClientToParent
將相對控制項原點的點平移到相對它的包容器原點的點
GetActivationPolicy
改變支持IPointerInactive界面的控制項的預設激活行為
GetClientOffset
獲取控制項矩形區域左上角和它的客戶區左上角的差別
OnInactiveMouseMove
覆蓋該函式,使滑鼠指示下的非活動控制項的包容器向控制項分派WM_MOUSEMOVE訊息
OnInactiveSetCursor
覆蓋該函式,使滑鼠指示下的非活動控制項的包容器像控制項分派WM_SETCURSOR訊息
ParentToClient
將相對包容器原點的點平移到相對它的控制項原點的點
異步控制函式
GetReadyState
返回控制項的就緒狀態
InternalSetReadyState
設定控制項的就緒狀態,觸發就緒狀態改變事件
重新設定先前的異步數據,初始化新裝控制項異步特性
可覆蓋的函式
DisplayError
向控制項用戶顯示標準Error事件
串列化COleControl對象特性
GetClassID
獲取控制項的OLE類標識
GetMessageString
為選單項提供狀態欄文本
IsSubclassedControl
判定控制項是否為Windows控制項的子類
調用它觸發標準Click事件
OnDoVerb
執行一個控制項動詞後調用該函式
當用戶要求重畫時調用該函式
OnDrawMetaFile
當控制項請求使用一個元檔案設備上下文重畫時,包容器調用該函式
OnEdit
包容器調用以激活OLE控制項的用戶界面
可覆蓋的函式
OnEnumVerbs
由包容器調用以為控制項的動詞技術
OnEventAdvise
當事件處理函式和控制項建立或下線時調用該函式
OnKeyDownEvent
當觸發標準KeyDown事件後調用該函式
OnKeyPressEvent
當觸發標準KeyPress事件後調用該函式
OnKeyUpEvent
當觸發標準KeyUp事件後調用該函式
OnProperties
當執行控制項的"Properties"動詞後調用該函式
OnResetState
設定控制項特性為預設值
改變通知函式
OnAppearanceChanged
當標準Appearance特性改變時調用該函式
OnBackColorChanged
當標準BackColor特性改變時調用該函式
OnBorderStyleChanged
當標準BorderStyle特性改變時調用該函式
OnEnabledChanged
當標準Enabled特性改變時調用該函式
OnFontChanged
當標準Font特性改變時調用該函式
OnForeColorChanged
當標準ForeColor特性改變時調用該函式
OnTextChanged
當標準Text或Caption特性改變時調用該函式
OLE界面通知函式
OnAmbientPropertyChange
當環境特性改變時調用該函式
OnClose
通知控制項,說明調用了IOleControl::Close
OnFreezeEvents
當控制項事件凍結或解凍時調用該函式
OnGetControlInfo
向包容器提供助記符信息
OnMnemonic
當控制項的助記符輸入時調用該函式
OnRenderData
框架調用以獲取指定格式的數據
OnRenderFileData
框架調用以從檔案獲取指定格式的數據
OnRenderGlobalData
框架調用以從全局記憶體獲取指定格式的數據
OnSetClientSite
通知控制項,說明調用了IOleControl::SetClientSite
OnSetData
將控制項的數據替換成另一個值
OnSetExtent
當控制項的範圍改變時調用該函式
OnSetObjectRects
當控制項的維改變時調用該函式
可覆蓋的IViewObject界面通知函式
OnGetColorSet
通知控制項,說明調用了IOleObject::GetColorSet
OnGetNaturalExtent
覆蓋該函式以獲取控制項最接近計畫尺寸和擴展模式的顯示尺寸
OnGetViewExtent
覆蓋該函式以獲取控制項顯示區域的尺寸
OnGetViewRect
覆蓋該函式將控制項尺寸轉換為從以指定位置開始的矩形
OnGetViewStatus
覆蓋該函式以獲取控制項的視圖狀態
OnQueryHitPoint
覆蓋該函式以詢問控制項的顯示是否覆蓋了一個指定點
OnQueryHitRect
覆蓋該函式以詢問控制項的顯示是否覆蓋了一個指定矩形內的任意點
就地激活函式
OnGetInPlaceMenu
請求將和包容器選單合併的控制項選單的句柄
OnHideToolBars
當控制項UI取消時,包容器調用該函式
OnShowToolBars
當控制項UI 激活時,包容器調用該函式
屬性瀏覽函式
OnGetDisplayString
調用該函式以取得代表一個特性值的字元串
OnGetPredefinedStrings
返回代表一個特性的所有可能值的一組字元串
OnGetPredefinedValue
返回對應一個預定義字元串的值
OnMapPropertyToPage
指示用哪個特性頁編輯一個特性

相關詞條

熱門詞條

聯絡我們