2009-09-07 23 views
2

我有一個爲創建此Win32的用戶繪製標籤控件:TabCtrl_SetItemSize和用戶繪製的標籤控制

CONTROL "Tab1",IDC_TAB_CONT,"SysTabControl32",TCS_BOTTOM | 
      TCS_OWNERDRAWFIXED | NOT WS_VISIBLE,0,14,185,88 

我想這個控制有其製表符調整爲從來就沒有見到「 滑動箭頭「:

alt text

現在,關於這種控制工程如預期,除了這一事實,它不會響應TabCtrl_SetItemSize幾乎一切。嘗試盡我所能,我得到的標籤大小,當我得到他們(在DRAWITEMSTRUCT傳遞到WM_DRAWITEM)總是適合其中最長的標題的大小,從來沒有我設置的大小TabCtrl_SetItemSize

然而,在TabCtrl_SetItemSize documentation,它說的是:

[TabCtrl_SetItemSize]設定選項卡的寬度和高度在 固定寬度或所有者繪製標籤 控制。

我已經設法有一個像樣的調整大小的唯一方法是通過發送控制一個TCM_SETITEM消息,並在繪圖時寫在它所需的文本設置它所需長度的僞字符串。這很不方便,也不是特別好的破解。

是否有任何人誰知道

  1. 爲什麼TabCtrl_SetItemSize無法按預期工作?和/或
  2. 如何正確設置標籤大小?

非常感謝,

JOCE。

回答

3
  • 設置TCS_OWNERDRAWFIXED風格是不夠的,你必須也添加TCS_FIXEDWIDTH風格。

  • 如果圖標存在,則標籤的最小尺寸至少爲圖標寬度+ 3。
    如果你有圖標(圖像列表連接到TabControl的),你可能會得到那些「滑動箭」,甚至有固定的寬度(如果有比較少的可用空間:標籤的數量*(圖標寬度+ 3)

+0

這似乎工作,謝謝! – joce 2009-09-29 02:03:57