轨迹栏拇指尺寸

时间:2011-04-15 12:31:02

标签: c# winforms

是否有人知道是否可以通过编程方式确定System.Windows.Forms.TrackBar的拇指尺寸。 (通过拇指我的意思是你拖着一点!)

我知道你可以从System.Windows.Forms.SystemInfo类中获取滚动条宽度等内容,但似乎没有任何关于跟踪栏的内容。

感谢。

1 个答案:

答案 0 :(得分:3)

可以通过向TrackBar控件发送TBM_GETTHUMBRECT消息来获取缩略图大小。无法直接从C#中执行此操作,但您可以定义相应的Win32结构并调用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;
}