2011-02-16 164 views
1

我正在創建一個UserControl,它將成爲GUI中其他控件的基類。自定義控制客戶端矩形

這樣做的原因是我可以在控件周圍繪製自定義邊框。

Control有一個ClientRectangle屬性,它表示控件的客戶區。 UserControl將此設置設置爲與控件的邊界相同的大小。

因爲我正在繪製圍繞控件的自定義邊框我想修改ClientRectangle,但我似乎無法找到一種方法來執行此操作。

有沒有人做過這個?

謝謝!

回答

0

好吧,

有點周圍搜索後,我找到了這個網頁:

http://www.dotnetmonster.com/Uwe/Forum.aspx/dotnet-drawing/769/How-do-you-increase-the-nonclient-area-to-support-a-border

這幫助了很多。

不過,我曾在switch語句來改變檢查:

.... 
switch (m.Msg) 
{ 
    case WM_NCCALCSIZE: 
     if (m.WParam != IntPtr.Zero) 
     { 
      NCCALCSIZE_PARAMS csp; 

.... 

本質上有很多與Windows消息擺弄周圍和繪畫非客戶端領域。這不是完美的,並不妨礙在設計師的邊界佈置控制。