複製鏈接
請複製以下鏈接發送給好友

COleControl

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

目錄

COleControl簡介

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

COleControl作用

無窗口控件
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
指示用哪個特性頁編輯一個特性