2011-04-15 82 views
2

有誰知道是否有可能以編程方式確定System.Windows.Forms.TrackBar的拇指尺寸。 (通過拇指我的意思是你拖動的位!)Trackbar Thumb Dimensions

我知道你可以從System.Windows.Forms.SystemInfo類獲得像滾動條寬度的東西,但似乎沒有任何的trackbars。

謝謝。

回答

3

拇指大小可以通過發送TBM_GETTHUMBRECT消息到TrackBar控件獲得。有沒有辦法直接從C#做的,但你可以定義適當的Win32結構和P /調用SendMessage()

[StructLayout(LayoutKind.Sequential)] 
public struct RECT 
{ 
    public int Left; 
    public int Top; 
    public int Right; 
    public int Bottom; 
} 

[DllImport("user32.dll")] 
static extern void SendMessage(IntPtr hwnd, uint msg, IntPtr wp, ref RECT lp); 

private const uint TBM_GETTHUMBRECT = 0x419; 

// Implemented as an extension method. 
public static RECT GetThumbRect(this TrackBar trackBar) 
{ 
    RECT rc = new RECT(); 
    SendMessage(trackBar.Handle, TBM_GETTHUMBRECT, IntPtr.Zero, ref rc); 
    return rc; 
} 
+0

+1。完美,這是一種享受。謝謝! – Nick 2011-04-15 12:56:38