C 時鐘控制項的建立與使用

2021-08-22 12:36:43 字數 2731 閱讀 6722

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...