使用C 編寫LED樣式時鐘控制項

2021-04-07 05:56:37 字數 3371 閱讀 7773

使用c#編寫led樣式時鐘控制項

執行效果:http://blog.csdn.net/images/blog_csdn_net/johnsuna/clockcontrol.jpg

----------------------//

// -------------------- 未經書面許可,請勿用於商業用途 ---------------------//

using system;

namespace brawdraw.com.photoframe.net.publicfunctions.clock

set

}[browsable(false)]

public system.windows.forms.timer timer

set }}

public bool istimerenable

set

}else

}this._istimerenable = value;}}

public void start()

public void stop()

public system.datetime datetime

set

}//led文字的顏色

public system.drawing.color clockcolor

set

}public sevensegmentclockstyle sevensegmentclockstyle

set

}public sevensegmentclock()

//初始化

private void init()

void timerontick(object obj, eventargs ea)

}protected override void onpaint(painteventargs e)

public bitmap drawclock()

private void sevensegmentclock_resize(object sender, system.eventargs e)

private void initializecomponent()

int _clockstringwidth;

int _clockstringheight;

public int clockstringwidth

}public int clockstringheight

}//繪製時鐘

public bitmap drawclock(rectangle destrect)

else if(this._clockstyle == sevensegmentclockstyle.dateonly)

else

sizef  sizef   = ssd.measurestring(strtime, font);

float  fscale  = math.min(destrect.width  / sizef.width, destrect.height / sizef.height);

font   font    = new font(font.fontfamily, fscale * font.sizeinpoints);

sizef = ssd.measurestring(strtime, font);

_clockstringwidth = (int)sizef.width;

_clockstringheight = (int)sizef.height;

namespace brawdraw.com.photoframe.net.publicfunctions.clock

,       // 0

,       // 1

,       // 2

,       // 3

,       // 4

,       // 5

,       // 6

,       // 7

,       // 8

// 9

};// points that define each of the seven segments

readonly point apt = new point[7];

public bool isdrawshadow

set

}public sevensegmentdisplay(graphics grfx)

;apt[1] = new point ;

apt[2] = new point ;

apt[3] = new point ;

apt[4] = new point ;

apt[5] = new point ;

apt[6] = new point ;

}public sizef measurestring(string str, font font)

else if (str[i] == '-')

else if (str[i] == ':')

else if (str[i] == ' ')

}return sizef;

}public void drawstring(string str, font font, brush brush, float x, float y)

else if (str[i] == '-')

else if (str[i] == ':')

else if (str[i] == ' ')}}

private float number(int num, font font, brush brush, float x, float y)

if (bysegment[num, i] == 1)

}return x + 42 * grfx.dpix * font.sizeinpoints / 72 / 72;

}private float minussign(font font, brush brush, float x, float y)

private float drawspace(font font, brush brush, float x, float y)

private float colon(font font, brush brush, float x, float y)

;apt[1] = new point ;

for (int i = 0; i < apt.length; i++)

return x + 20 * grfx.dpix * font.sizeinpoints / 72 / 72;

}private void fill(point apt, font font, brush brush, float x, float y)

grfx.fillpolygon(brush, aptf);}}

}

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

c 時鐘控制項的建立與使用 簡介 效果如圖。本文假定讀者熟悉基本的c 程式設計過程,但對建立控制項的過程不太了解,以乙個時鐘控制項為例,詳細描述了開發過程,希望對大家有所幫助。1 時間變換部分 只需要比較簡單的數學知識 首先取得當前時間 int hour datetime.hour 12 將小時數 ...

Qt編寫自定義控制項66 光暈時鐘

1 可設定圓弧半徑寬度 2 可設定光暈寬度 3 可設定光暈顏色 4 可設定文字顏色 5 採用動畫機制平滑進度展示時間 include ifdef quc if qt version qt version check 5,7,0 include else include endif class qde...

用C 編寫ActiveX控制項

選自 紅馬天下 的blog,做了適當修改將上下兩章合併 http blogs.homer 前些日子做乙個web專案,必須自己編寫乙個activex控制項。如今的activex控制項大多是使用vb c 來開發的,而我對他們並不熟悉,因此考慮使用熟悉的c 編寫activex控制項。首先,建立乙個winf...