本節包含適用於多個控件之程序設計元素的參考資訊,而不只是套用至特定控件。 大部分控制項都支援函式、巨集、訊息、通知和結構。 例如,大部分的控件都會使用 NM_HOVER 通知來處理滑鼠點選。
綜述
| 主題 | 內容 |
|---|---|
| 關於一般控件的 | 通用控制項是一組由通用控制項連結庫實作的視窗,這是 Windows作系統隨附的 DLL。 |
| 常見控件常見問題 | 此常見問題提供一些常見控件常見問題的解答。 |
Functions
| 主題 | 內容 |
|---|---|
| DoReaderMode | 在視窗中啟用讀取器模式。 |
| DPA_Clone | 複製動態指標陣列 (DPA)。 |
| DPA_Create | 建立 DPA。 |
| DPA_CreateEx | 使用指定的大小和堆積位置建立 DPA。 |
| DPA_DeleteAllPtrs | 從 DPA 移除所有專案,並據以壓縮 DPA。 |
| DPA_DeletePtr | 從 DPA 移除專案。 如有必要,DPA 會壓縮以容納已移除的專案。 |
| DPA_Destroy | 釋放動態指標陣列 (DPA)。 |
| DPA_DestroyCallback | 在 DPA 的每個元素上呼叫 pfnCB,然後釋放 DPA。 |
| DPA_EnumCallback | 逐一查看動態指標陣列 (DPA),並在每個專案上呼叫 pfnCB 。 |
| DPA_GetPtr | 從 DPA 取得專案。 |
| DPA_GetPtrIndex | 取得在 DPA 中找到之相符專案的索引。 |
| DPA_GetSize | 取得 DPA 的大小。 |
| DPA_Grow | 變更 DPA 中的指標數目。 |
| DPA_InsertPtr | 在 DPA 中指定的位置插入新專案。 如有必要,DPA 會擴展以容納新項目。 |
| DPA_LoadStream | 從數據流載入 DPA,方法是呼叫指定的回呼函式來讀取每個專案。 |
| DPA_Merge | 結合兩個 DPA 的內容。 |
| DPA_SaveStream | 藉由寫出標頭,然後呼叫指定的回呼函式來寫入每個專案,將 DPA 儲存至數據流。 |
| DPA_Search | 在 DPA 中尋找專案。 |
| DPA_SetPtr | 將值指派給 DPA 中的專案。 |
| DPA_Sort | 排序動態指標陣列 (DPA) 中的專案。 |
| DrawShadowText | 繪製具有陰影的文字。 |
| DrawTextExPrivWrap | 在指定的矩形中繪製格式化的文字。 此函式會包裝呼叫 drawTextEx 。 |
| DrawTextWrap | 在指定的矩形中繪製格式化的文字。 它會根據指定的方法格式化文字(展開索引標籤、對齊字元、斷行等等)。 此函式會包裝呼叫 drawText。 |
| DSA_Clone | 複製動態結構陣列 (DSA)。 |
| DSA_Create | 建立 DSA。 |
| DSA_DeleteAllItems | 從 DSA 刪除所有專案。 |
| DSA_DeleteItem | 從 DSA 刪除專案。 |
| DSA_Destroy | 釋放 DSA。 |
| DSA_DestroyCallback | 逐一查看 DSA,在每個專案上呼叫指定的回呼函式。 到達陣組結尾時,會釋放 DSA。 |
| DSA_EnumCallback | 逐一查看 DSA,並在每個專案上呼叫 pfnCB 。 |
| DSA_GetItem | 從 DSA 取得專案。 |
| DSA_GetItemPtr | 從 DSA 取得專案的指標。 |
| DSA_GetSize | 取得 DSA 的大小。 |
| DSA_InsertItem | 將新專案插入 DSA。 如有必要,DSA 會展開以容納新專案。 |
| DSA_SetItem | 設定 DSA 中項目的內容。 |
| DSA_Sort | 排序 DSA 中的專案。 |
| ExtTextOutWrap | 使用目前選取的字型、背景色彩和文字色彩繪製文字。 您可以選擇性地提供用於裁剪、不透明度或兩者的維度。 此函式會包裝對 extTextOut 的呼叫。 |
| GetEffectiveClientRect | 計算包含所有指定控制件之工作區中矩形的維度。 |
| GetMUILanguage | 取得特定進程的通用控制項目前使用的語言。 |
| GetTextExtentPoint32Wrap | 計算指定之文字字串的寬度和高度。 此函式會包裝對 GetTextExtentPoint 的呼叫。 |
| InitCommonControls | 註冊並初始化特定通用控制項窗口類別。 此函式已經過時。 新的應用程式應該使用 InitCommonControlsEx 函式。 |
| InitCommonControlsEx | 從通用控件 DLL 註冊特定的通用控件類別。 |
| InitMUILanguage | 可讓應用程式指定與系統語言不同的通用控制項使用的語言。 |
| LoadIconMetric | 使用用戶端指定的系統計量載入指定的圖示資源。 |
| LoadIconWithScaleDown | 載入圖示。 如果圖示不是標準大小,此函式會縮小較大的影像,而不是相應增加較小的影像。 |
| MirrorIcon | 反轉 (鏡像) 圖示,使其在鏡像裝置內容上正確顯示。 |
| PFNDACOMPARE | 定義 DSA_Sort所使用的比較函式原型。 |
| PFNDACOMPARECONST | 定義比較專案為常數物件時,DSA_Sort 所使用的比較函式原型。 |
| PFNDAENUMCALLBACK | 定義 DSA 和 DPA 函式所使用的回呼函式原型。 |
| PFNDAENUMCALLBACKCONST | 當涉及的專案是常數數據的指標時,定義 DSA 和 DPA 函式所使用的回呼函式原型。 |
| PFNDPACOMPARE | 定義 DPA_Sort 和 DPA_Search所使用的比較函式原型。 |
| PFNDPACOMPARECONST | 定義比較專案為常數物件時,DPA_Sort 或 DPA_Search 所使用的比較函式原型。 |
| PFNDPAENUMCALLBACK | 定義 DPA_EnumCallback所使用的回呼函式原型。 |
| PFNDPAMERGE | 定義 DPA_Merge所使用的合併函式原型。 |
| PFNDPAMERGECONST | 使用常數值定義 DPA_Merge所使用之合併函式的原型。 |
| PFNDPASTREAM | 定義 DPA_LoadStream 和 DPA_SaveStream所使用的回呼函式原型。 |
| PFNDSAENUMCALLBACK | 定義 DSA_DestroyCallback所使用的回呼函式原型。 |
| ReaderScroll | 當滑鼠指標在已宣告為使用中捲動區域的讀取器模式視窗部分內移動時,所使用的應用程式定義回呼函式。 |
| ShowHideMenuCtl | 設定或移除指定的功能表項複選標記屬性,並顯示或隱藏對應的控件。 函式會在沒有複選標記時,將複選標記新增至指定的功能表項,然後顯示對應的控件。 如果功能表項已經有複選標記,函式會移除複選標記並隱藏對應的控件。 |
| Str_GetPtr | 將字串從一個緩衝區複製到另一個緩衝區。 |
| Str_SetPtrW | 將 ppszCurrent 設定為 pszNew 複本,並視需要釋放先前的值。 |
| TranslateDispatch |
DoReaderMode 函式的用戶端用來攔截並明確處理讀取器模式視窗捲動區域的目標任何視窗訊息。 這是應用程式定義的回呼函式。 |
巨集
| 主題 | 內容 |
|---|---|
| DPA_AppendPtr | 在 DPA 結尾插入新專案。 |
| DPA_FastDeleteLastPtr | 從 DPA 刪除最後一個指標。 |
| DPA_FastGetPtr | 取得 DPA 中指定指標的值。 |
| DPA_GetPtrCount | 取得 DPA 中的指標數目。 |
| DPA_GetPtrPtr | 取得 DPA 內部指標陣列的指標。 |
| DPA_SetPtrCount | 設定 DPA 中的指標數目。 |
| DPA_SortedInsertPtr | 在指定的現有專案之前或之後插入新專案。 |
| DSA_AppendItem | 將新專案附加至 DSA 的結尾。 |
| DSA_GetItemCount | 取得 DSA 中的項目數。 |
| FORWARD_WM_NOTIFY | 傳送或張貼 WM_NOTIFY 訊息。 |
| HANDLE_WM_NOTIFY | 呼叫處理 WM_NOTIFY 訊息的函式。 |
| INDEXTOSTATEIMAGEMASK | 準備狀態影像的索引,讓樹視圖控件或清單檢視控件可以使用索引來擷取專案的狀態影像。 |
消息
| 主題 | 內容 |
|---|---|
| CCM_DPISCALE | 啟用 Tree-View 控件、List-View 控件、ComboBoxEx 控件、標頭控件、按鈕、工具列控件、動畫控件及 影像清單自動高點比例。 |
| CCM_GETUNICODEFORMAT | 取得控制的 Unicode 字元格式旗標。 |
| CCM_GETVERSION | 取得由最新 CCM_SETVERSION 訊息所設定之控件的版本號碼。 |
| CCM_SETUNICODEFORMAT | 設定控件的 Unicode 字元格式旗標。 此訊息可讓您在運行時間變更控件所使用的字元集,而不需要重新建立控件。 |
| CCM_SETVERSION | 此訊息用來通知控件您預期與特定版本相關聯的行為。 |
| CCM_SETWINDOWTHEME | 設定控制件的視覺化樣式。 |
| WM_NOTIFY | 發生事件或控件需要一些資訊時,由通用控件傳送至其父視窗。 |
| WM_NOTIFYFORMAT | 判斷視窗是否接受 WM_NOTIFY 通知訊息中的 ANSI 或 Unicode 結構。
WM_NOTIFYFORMAT 訊息會從通用控件傳送至其父視窗,以及從父視窗傳送至通用控制件。 |
通知
| 主題 | 內容 |
|---|---|
| NM_CHAR | 處理字元索引鍵時,控件會傳送 NM_CHAR 通知碼。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_CUSTOMDRAW | 通知控件的父視窗自定義繪圖作業。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_CUSTOMTEXT | 通知控件的父視窗自定義文字作業。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_FONTCHANGED | 當控件變更字型時,由清單檢視控件傳送。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_GETCUSTOMSPLITRECT | 由按鈕控制項傳送至其父系,以取得組成分割按鈕之兩個矩形的度量。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_HOVER | 當滑鼠停留在專案上時,由控件傳送。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_KEYDOWN | 當控件具有鍵盤焦點,且使用者按下按鍵時,由控件傳送。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_KILLFOCUS | 通知控件的父視窗控制件已失去輸入焦點。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_LDOWN | 通知控件的父視窗已按下滑鼠左鍵。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_NCHITTEST | 當控件收到 WM_NCHITTEST 訊息時,由 Rebar 控件傳送。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_OUTOFMEMORY | 通知控制件的父視窗,因為沒有足夠的記憶體可用,所以控件無法完成作業。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_RDOWN | 目前不支援。 |
| NM_RELEASEDCAPTURE | 通知控件的父視窗,控件正在釋放滑鼠擷取。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_RETURN | 通知控制件的父視窗控制件具有輸入焦點,且使用者已按下 ENTER 鍵。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_SETCURSOR | 通知控制件的父視窗,控制項正在設定游標以回應 NM_SETCURSOR 訊息。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_SETFOCUS | 通知控件的父視窗控制項已接收輸入焦點。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_THEMECHANGED | 通知控件的父視窗主題已變更。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_TOOLTIPSCREATED | 通知控制件的父視窗,控制項已建立工具提示控制件。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
| NM_TVSTATEIMAGECHANGING | 由樹檢視控件傳送至其狀態影像正在變更的父視窗。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。 |
結構
| 主題 | 內容 |
|---|---|
| COLORSCHEME | 包含工具列或 Rebar 中按鈕繪圖的資訊。 |
| DPASTREAMINFO | 包含 PFNDPASTREAM 回呼函式所使用的數據流專案。 |
| INITCOMMONCONTROLSEX | 攜帶用來從動態連結庫 (DLL) 載入通用控件類別的資訊。 此結構會與 InitCommonControlsEx 函式搭配使用。 |
| NMCHAR | 包含與字元通知訊息搭配使用的資訊。 |
| NMCUSTOMSPLITRECTINFO | 包含分割按鈕之兩個矩形的相關信息。 使用 NM_GETCUSTOMSPLITRECT 通知傳送。 |
| NMCUSTOMTEXT | 包含與自定義文字通知搭配使用的資訊。 |
| NMHDR | 包含通知訊息的相關信息。 |
| NMKEY | 包含與金鑰通知訊息搭配使用的資訊。 |
| NMMOUSE | 包含與滑鼠通知訊息搭配使用的資訊。 |
| NMOBJECTNOTIFY | 包含與 TBN_GETOBJECT、TCN_GETOBJECT和 PSN_GETOBJECT 通知碼搭配使用的資訊。 |
| NMTOOLTIPSCREATED | 包含與 NM_TOOLTIPSCREATED 通知程式代碼搭配使用的資訊。 |
| READERMODEINFO | 包含初始化 doReaderMode函式所需的資訊。 |
常數
| 主題 | 內容 |
|---|---|
| CDRF 常數 | 這些常數會當做控件傳回值,以回應 NM_CUSTOMDRAW 通知程序代碼。 |
| 樣式 | 本節列出常見的控件樣式。 除非有說明,這些樣式會套用至標頭控件、工具列控件和狀態視窗。 |
| 視窗類別 | 本節列出通用控件連結庫所提供的窗口類別名稱。 |