在对话框上显示时间的数字怎么能做成7段码的形式?拜托帮忙啊!急用
想做成象播放器一样的,当系统启动时,在对话框上显示运行的时间,用数码管的形式显示数字,怎么可以实现呢?请大家出谋划策啊,有什么建议想法畅所欲言,有代码的给我参考下,谢谢大家了 --------------------编程问答-------------------- 是7段码编程了,自已定义7个显示段,然后由数字编程自己来显示,只是个算法而已. --------------------编程问答-------------------- 你是说在对话框上画线? --------------------编程问答-------------------- 我用的是图片,0-9的十张Gif小图,七段码样式的。然后根据显示的数字加载相应的图片。 --------------------编程问答-------------------- to woodcheaper
加载这些图片的时候是不是闪烁? --------------------编程问答-------------------- 谁有更好的办法啊?
有没有人做过类似的控件阿? --------------------编程问答-------------------- void CExampleDlg::OnBnClickedButton1()
{
for(int j=0;j<8;j++)//重新分配
{
m_pictur[j]=new(CStatic);
}
SetTimer(1,1000,NULL);
}
void CExampleDlg::OnTimer(UINT nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
for(int i=0;i<8;i++)// 删除以前分配的
delete *(m_pictur+i);
for(int j=0;j<8;j++)//重新分配
m_pictur[j]=new(CStatic);
static bool flag=false;
int myTime[8];
CTime curtime=CTime::GetCurrentTime();
int Sec1=curtime.GetSecond();
int Sec2=Sec1%10;//秒的个位
Sec1/=10;//秒的十位
int minu1=curtime.GetMinute();
int minu2=minu1%10;//分的个位
minu1/=10;//分的十位
int hour1=curtime.GetHour();
int hour2=hour1%10;//时的个位
hour1/=10;//时的十位
myTime[0]=hour1;myTime[1]=hour2;myTime[2]=14;myTime[3]=minu1;
myTime[4]=minu2;myTime[6]=Sec1;myTime[7]=Sec2;
if(flag)
{
myTime[5]=14;
flag=false;
}
else
{
myTime[5]=15;
flag=true;
}
for(int i=0;i<8;i++)
{
CImageList m_imgList;
m_imgList.Create(IDB_BITMAP1,12, 1, RGB(255,255,255));//每隔12个像素提取一个图像
HICON myico;
myico= m_imgList.ExtractIcon(myTime[i]); //提取第myTime[i]个图像作为图标
m_pictur[i]->Create(NULL,WS_CHILD|WS_VISIBLE|SS_ICON|SS_CENTERIMAGE, CRect(100+i*12,100,100+i*12+12,124),this);// 创建静态图标控件
m_pictur[i]->SetIcon(myico);
}
CDialog::OnTimer(nIDEvent);
}
你先要加载一幅202*24的数码位图IDB_BITMAP1 --------------------编程问答-------------------- 谢谢
我试试看 --------------------编程问答-------------------- 不错 挺好的 查表法 在数据量小时就很好用 --------------------编程问答-------------------- 这个其实了没有必要用位图了,直接画线就行。
当然显示的方法一般都是用查表法了,不过如果查一下数电的书的话,用逻辑判断的话代码会简单一些了。
补充:.NET技术 , VC.NET