自繪GroupBox控制項

2021-09-08 07:59:17 字數 2083 閱讀 8431

下面顯示的是效果圖:

然後是**,其中有一些解釋:

using

system;

using

system.collections.generic;

using

system.componentmodel;

using

system.diagnostics;

using

system.text;

using

system.windows.forms;

using

system.drawing;

using

system.drawing.drawing2d;

namespace

scygroupbox

this

.setstyle(controlstyles.allpaintinginwmpaint

|controlstyles.doublebuffer

|controlstyles.userpaint,

true);}

#region

圓角大小 property

private

intradius =3

;public

intradius

setelse}}

#endregion

#region

邊線顏色

private

color bordercolor

=color.darkgreen;

public

color bordercolor

set}

#endregion

#region

上部漸變顏色

private

color ushinecolor

=color.fromargb(

140, color.white);

public

color ushinecolor

set}

#endregion

//////

描繪具有圓角的button原型路徑

///protected

virtual

graphicspath createradiusrect(rectangle rectangle,

intradius)

protected

override

void

onsizechanged(eventargs e)

base

.onsizechanged(e);}//

按照button路徑進行border繪製

protected

virtual

void

drawborder(graphics g, pen pen)

pen.dispose();

pen

=null;}

//繪製上部漸變色

protected

virtual

void

drawuppershine(graphics g)

using

(lineargradientbrush lbrush

=new

lineargradientbrush(rc, c1, c2, lineargradientmode.vertical))}//

設定字型的大小,寬高,位置資訊

protected

virtual

void

drawtext(graphics g)}//

繪製內部的方塊

protected

virtual

void

drawinner(graphics g, rectangle rectangle, pen p)

protected

override

void

onpaint(painteventargs e)

}}

後續做詳細的解釋。

MFC開發之自繪Group Box控制項

基類是cstatic 在onpaint 函式中繪製矩形設定顏色 獲取矩形範圍 crect rcclient getclientrect rcclient 建立畫筆 cpen pen pen.createpen ps solid,1,rgb 255,0,0 邊框設定為紅色邊框 選入畫筆 dc.sele...

MFC自繪控制項

1.c 中drawitem 函式不被呼叫的問題 自繪乙個cmybutton的時候,在drawitem 中改變了button的顏色,但是在程式執行時,drawitem 函式並沒有被執行,原因在於按鈕的型別並不是bs ownerdraw,所以我們需要把它改為 所有者繪製 解決方法 可以過載乙個presu...

MFC Button控制項自繪

vc下的介面著實難看 有時候我們不得不自己進行控制項的繪製 以前 一直不理解最近再次看了學了一遍終於明白了一點 與大家分享下.需要源 的q我 尋找一起學vc的朋友 比如說我們要改變乙個編輯框的背景 我們響應wm ctlcolor函式 進行onctlcolor進行修改但是對與 button控制項就不行...