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