-
COleControl
鎖定
- 中文名
- 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 | 指示用哪個特性頁編輯一個特性 |
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:7次歷史版本
- 最近更新: 给我O泡yjl