c#時鐘控制項的建立與使用
簡介:效果如圖。
本文假定讀者熟悉基本的c#程式設計過程,但對建立控制項的過程不太了解,以乙個時鐘控制項為例,詳細描述了開發過程,希望對大家有所幫助。 1、
時間變換部分-----只需要比較簡單的數學知識
首先取得當前時間
int hour = datetime.hour % 12; // 將小時數(24基)轉換成12基的
int minute = datetime.minute;
int sec = datetime.second;
將這些資料轉換成相應的弧度(因為sin所)
float hourradian = hour * 360/12 * pi/180;
float minradian = minute * 360/60 * pi/180;
float secradian = sec * 360/60 * pi/180;
根據弧度得出了時針的端點
float hourendpointx = lengthofhourhand * system.math.sin(hourradian)
float hourendpointy = lengthofhourhand * system.math.cos(hourradian)
則時針畫法為
line(centerx, centery, hourendpointx, hourendpointy)
分針、秒針以此類類推。 2、
詳細步驟
首先建立乙個工程命名為
analogclockcontrol.
選擇windows control library
為模板。
從工程中刪除usercontrol1.cs檔案,並向其中新增加乙個類。
向你的控制項中拖入乙個timer控制項,將其interval屬性設為1000(每1000毫秒發出乙個wm_timer訊息)。
下面開始程式設計,類的架構:
class analogclock : system.windows.forms.usercontrol
private void analogclock_resize(object sender, system.eventargs e)
為完成時鐘效果,程式應該每秒鐘重新整理一次時、分、秒針的位置。雙擊timer控制項,在其響應函式中加入如下**:
private void timer1_tick(object sender, system.eventargs e)
下面來寫一下兩個與圖形有關的函式,drawline() 與 drawpolygon(),它們的作用是在窗體上畫出秒針與時分針。
**如下:
private void drawline(float fthickness, float flength, color color,
float fradians, system.windows.forms.painteventargs e)
private void drawpolygon(float fthickness, float flength, color color,
float fradians, system.windows.forms.painteventargs e)
;e.graphics.fillpolygon( new solidbrush(color), points );}
為了使控制項的使用者能夠控制這個時鐘控制項的啟停,我們在其中加入另外兩個函式。
public void start()
public void stop()
控制項對於paint訊息的響應函式是這個控制項中最核心的程式,完成了時間提取、弧度轉換及畫指標這一系列活動。
**如下:
private void analogclock_paint(object sender,
system.windows.forms.painteventargs e)
else if ( this.bdraw1minuteticks==true ) // draw 1 minute ticks}
//draw circle at center
e.graphics.fillellipse( new solidbrush( circlecolor ),
fcenterx-fcentercircleradius/2,
fcentery-fcentercircleradius/2,
fcentercircleradius, fcentercircleradius);
}最後,還須為此控制項設定個三個屬性,使使用者可以更改其顏色。
**如下:
public color hourhandcolor
set }
public color minutehandcolor
set }
public color secondhandcolor
set }
3、在其它工程中應用此控制項
在對上述控制項工程進行正確編譯後,得到乙個dll檔案,可以將其拷入其它任意工程資料夾中,右鍵工具欄,選choose items…
在其後出現的對話方塊中選browse鈕,選擇相應的dll,相應的時鐘控制項即出現在工具欄中,我們可以對它進行任意拖動。enjoy it !
譯自:
Qt 時鐘外掛程式的建立與使用
1 建立外掛程式專案命名為qclock,建立時鐘的源 參見 2 將release下的dll檔案和.a檔案複製貼上到qt的安裝目錄中的plugins designer下,如 c qt 4.8.4 plugins designer 3 由於我的qtcreator不知什麼原因無法找到qclock,但在qt...
使用C 編寫LED樣式時鐘控制項
使用c 編寫led樣式時鐘控制項 執行效果 http blog.csdn.net images blog csdn net johnsuna clockcontrol.jpg 未經書面許可,請勿用於商業用途 using system namespace brawdraw.com.photoframe...
c 動態建立控制項
htmltable tablerow tablecell 動態建立form 直接從標準控制項中繼承過來 動態建立table htmltable ht1 new htmltable 動態建立tablerow,tablecell tablerow tr new tablerow tablecell tc...