问一个关于C语言的问题,c语言能否实现数字渐变的输出?
你是想在控制台输出么?如果是MFC很容易实现,直接设置text内容,如果是控制台,可以调用system(“cls”)进行清屏操作也能实现这个效果的,可以放到一个循环里面,你说的过一会显示,那只要调用sleep(“1”)就行了,中间数字自己写时间,最前面要加个#include windows.h头文件
如何用C语言编写一个LED灯渐变的程序
#includereg51.h
//设CPU是时钟12MHz的8051系列
data unsigned char ms;
sbit K1=P0^0;
void SetupTimer0()
{
TMOD = 0XF0; //仅保留T1信息
TMOD |= 0X02; //设置T0: 定时功能,方式2,自动重载8位定时器/计数器
TH0 = 256-250;//定时每0.25ms中断一次
TL0 = 256-250;
TR0 = 1; //开启定时器
ET0 = 1; //定时器0中断打开
}
void Timer0_ISR() interrupt 1 //中断服务程序
{
static data unsigned char us250;
if (++us250=4) {++ms; us250=0;}
}
void main()
{
data unsigned char p1,p2;
ms=0;
SetupTimer0();
EA = 1; //全局中断打开
K1 = 1;
while(1)
{
if (K1) {P1=p1=0XFF; P2=p2=0x00; ms=0; continue;}
if (ms150) continue;
ms=0;
p1=1; P1=p1;
p2=1; p2|=1; P2=p2;
}
}
如何用c语言实现背景颜色渐变
你这个问题太宽泛了,能不能具体点:
1)使用什么操作系统
2)使用什么编译器
3)GUI程序或者console程序
你或许应该这样问:在Windows XP下面用VC6实现一个背景颜色渐变的windows程序,不需要实现其他功能,要求只使用C语言,不要C++语言。
C语言怎样设计一个渐变透明的窗口? 从左(不透明)到右(透明)
可以试试使用gdi+库来实现颜色渐变,下边是一种方法,具体可见: 有源码,。
BOOL CTipDlg::OnEraseBkgnd(CDC* pDC)
{
CRect rcClient;
GetClientRect(rcClient);
GradientFillRect( pDC, rcClient, RGB(0,191,255), RGB(238,238,238), TRUE );
// CPaintDC dc(this);
// Rect picRect;
// CRect clRect;
// GetClientRect(clRect);
// //GetUpdateRect(clRect);
// picRect.X = clRect.left;
// picRect.Y = clRect.top;
// picRect.Width = clRect.Width();
// picRect.Height = clRect.Height();
//
// Graphics grpx(dc);
// //////////////////////////////////////////////////////////////////主界面背景
// WCHAR *strPath=L”res\\none.png”;
// Image * Img = Image::FromFile(strPath,FALSE);
// grpx.DrawImage(Img,picRect);
return true;
//return CDialog::OnEraseBkgnd(pDC);
}
//实现渐变
void CTipDlg::GradientFillRect( CDC *pDC, CRect rect, COLORREF col_from, COLORREF col_to, bool vert_grad )
{
TRIVERTEX vert[2];
GRADIENT_RECT mesh;
vert[0].x = rect.left;
vert[0].y = rect.top;
vert[0].Alpha = 0x0000;
vert[0].Blue = GetBValue(col_from) 8;
vert[0].Green = GetGValue(col_from) 8;
vert[0].Red = GetRValue(col_from) 8;
vert[1].x = rect.right;
vert[1].y = rect.bottom;
vert[1].Alpha = 0x0000;
vert[1].Blue = GetBValue(col_to) 8;
vert[1].Green = GetGValue(col_to) 8;
vert[1].Red = GetRValue(col_to) 8;
vert[2].x = rect.right;
vert[2].y = rect.bottom;
vert[2].Alpha = 0x0000;
vert[2].Blue = GetBValue(col_to) 16;
vert[2].Green = GetGValue(col_to) 16;
vert[2].Red = GetRValue(col_to) 16;
mesh.UpperLeft = 0;
mesh.LowerRight = 1;
#if _MSC_VER = 1300 // only VS7 and above has GradientFill as a pDC member
pDC-GradientFill( vert, 2, mesh, 1, vert_grad ? GRADIENT_FILL_RECT_V :
GRADIENT_FILL_RECT_H );
#else
GradientFill( pDC-m_hDC, vert, 2, mesh, 1, vert_grad ? GRADIENT_FILL_RECT_V :
GRADIENT_FILL_RECT_H );
#endif
}