A. 如何在linux下用c语言实现字幕的左右滚动
用死循环 每次将显示的字幕删除然后把字幕往前移一位再显示 达到一定的距离后再一点一点删除之前的空格 给个判断条件退出即可 这样可以做到字幕的滚动
B. VC++6.0如何实现滚动字幕急用,急用
本来楼主这个要求要是在Win32 Application里面的话很容易做,可是楼主偏偏要求用DOS界面,就是Win32 console application吧,下面写了一个能实现楼主的要求,可我实在想不出来楼主要这个干什么...
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <string.h>
#define TIME_INTERVAL (CLOCKS_PER_SEC / 50)
int main(int argc, char* argv[])
{
int i, j;
long c;
char str[80] = "Hello world!";
int l = strlen(str);
char sleft[80];
char sright[80];
int scrwidth = 79;
while (1)
{
for (i = 0; i <= scrwidth; i++)
{
if (i <= scrwidth - l)
{
c = clock();
for (j = 0; j < i; j++)
{
printf(" ");
}
printf("%s\r", str);
while (clock() - c <= TIME_INTERVAL)
;
} else
{
c = clock();
strcpy(sleft, str);
strcpy(sright, str + l - (i - (scrwidth - l)));
*(sleft + l - (i - (scrwidth - l))) = NULL;
for (j = 0; j < i; j++)
{
printf(" ");
}
printf("%s\r", sleft);
printf("%s\r", sright);
while (clock() - c <= TIME_INTERVAL)
;
}
}
}
return 0;
}
C. 如何用c语言写一个滚动条
调用API
在CreateWindow函数中第三个参数里加上 |WS_HSCROLL|WS_VSCROLL
至于滚动条的详细设置,要在窗口过程的消息处理里进行
D. c语言实现滚动字幕
#include<stdio.h>
#include<graphics.h>
void main()
{int gd=DETECT,gm,i,j=0;
initgraph(&gd,&gm,"");/*图形初始化*/
cleardevice();/*清屏*/
setbkcolor(BLACK);/*设置背景颜色*/
for(i=640;i>=-40;i-=40)/*循环*/
{
moveto(i+20,420);/*移动光标*/
setcolor(RED);/*设置字体颜色*/
outtext("ABCDE");/*你要输出的字符串*/
setcolor(BLACK);/*设置字体颜色(与背景色一样)*/
outtext("ABCDE");/*你要输出的字符串*/
moveto(i,430);/*移动光标*/
setcolor(RED);/*设置字体颜色*/
outtext("ABCDE");/*你要输出的字符串*/
setcolor(BLACK);/*设置字符颜色(与背景色一样)*/
outtext("ABCDE");/*你要输出的字符*/
if(i==-40&&j<2) {i=640;j++;}/*移动3遍*/
delay(30000);/*时间延迟*/
}
}
我的QQ邮箱是:[email protected]
拜拜!!!
E. c语言怎么实现滚动的字母比如一排文字,从下面一直平移到上面
用一个二维数组,记录。
比如10行10列按序输出显示,
写个循环遍历数组每次将下一行内容复制给上一行。
再看看别人怎么说的。
F. 滚动字幕c语言编程求一个16*16的LED点阵屏滚动字幕的C语言程序
这算是单片机上应用吧。
先要看LED点阵屏所需参数(驱动,速度,点阵显示汉字串口),这个看懂了也就会了。当然先要会C语言
要是不会,直接用那就找差不多的改。
http://blog.163.com/heaphone2010@126/blog/static/1684254352010112693739548/
这里有一个16*128的。
G. 用c语言编写一个字幕滚动程序
以下代码实现字符从右到左循环滚动.
C语言控制台程序
#include<stdio.h>
#include<string.h>
#include<windows.h>
intmain()
{
charstr[100]="HELLOWORLD!GOODBYE!";
inti,j;
for(i=0;i<strlen(str);i++)
{
system("cls");
for(j=i;j<strlen(str);j++)
{
printf("%c",str[j]);
}
Sleep(100);
printf(" ");
}
return0;
}
H. c语言写滚动的字
这不光是C语言本身,而且和显示终端密不可分。比如在windows的cmd下需要配合清屏命令。
Evangelie的回答没有错误,在函数随意位置声明变量是C99标准,是正确的C语法。而且注意,凡是和显示终端相关的,就和操作系统有关,Evangelie的程序只能运行在dos下。或者模拟dos终端下
I. C语言下如何实现字符滚动显示
调用系统函数,system("CLS");清屏重新输,某一部分的话,可以用gotoxy函数,当然VC或TC没有,可以去网上找,也是利用系统API函数,希望能帮到你
J. c语言滚动字幕代码
在软件启动时,为了加深软件在用户头脑中的印象,可以在软件封面上由下而上循环滚动显示一些包含软件名称、功能、版本、用户名、研制单位等文字信息,在用户按下任意键或点击鼠标键后,立即结束演示进入程序主界面。本文通过向工程中添加Splash screen组件,然后在CsplashWnd类中添加DrawText成员方便地实现了具有滚动文字效果的软件封面,其中文字的位置、对齐方式、字体、字号、颜色都由程序来控制。
---- 详细设计步骤如下:
---- 1.创建一个名为test的SDI或MDI工程;
---- 2.向工程中添加Splash screen组件,即添加一个CWnd类的派生类CsplashWnd;
---- 3.编辑或导入软件封面的位图资源,标识号为IDB_SPLASH;
---- 4.向CsplashWnd类中添加一个公有成员函数DrawText,此函数用来在软件封面中显示文字,的实现代码如下:(其中参数含义分别为:内存dc,文字位置,对齐方式,字体,字号,颜色,正文文字)
void CSplashWnd::DrawText(CDC *pDC,
int x, int y, int nAlign,
CString sFontName, int nFONTSIZE0,
COLORREF crTextColor, CString sText)
{
LOGFONT lf;//字体
lf.lfStrikeOut=0;//删除线
lf.lfCharSet = DEFAULT_CHARSET ;//字符集
lf.lfEscapement =0;//角度
lf.lfItalic = 0 ;//倾斜
lf.lfUnderline = 0 ;//下划线
lf.lfHeight = nFONTSIZE0 ;//字号
strcpy(lf.lfFaceName,sFaceName.
GetBuffer(sFontName.GetLength()));
CFont font ;
font.CreateFontIndirect(&lf);
CFont *pOldFont = (CFont *)
pDC->SelectObject(&font);
UINT oldAlign,uAlign ;
switch(nAlign)
{
case 0: uAlign = TA_LEFT | TA_TOP ; break;
case 1: uAlign = TA_CENTER | TA_TOP; break;
case 2: uAlign = TA_RIGHT | TA_TOP ; break;
default: uAlign = TA_LEFT | TA_TOP ; break;
}
oldAlign = pDC->SetTextAlign(uAlign);
int oldMode = pDC->SetBkMode(TRANSPARENT);
int oldColor = pDC->SetTextColor(crTextColor) ;
pDC->TextOut(x,y,sText);
pDC->SetTextColor(oldColor) ;
pDC->SetTextAlign(oldAlign);
pDC->SetBkMode(oldMode);
pDC->SelectObject(pOldFont);
font.DeleteObject();
}
---- 5. 给CsplashWnd类中添加如下公有成员变量,并初始化变量;
class CSplashWnd : public CWnd
{
......
public:
CDC m_dcText,m_dcImage;//显示dc的兼容内存dc
CBitmap* m_pBitmap;//位图对象
CBitmap* m_pOldBitmapText,
*m_pOldBitmap;//跟踪内存dc中的原位图
CRgn m_rgn;//用于生成矩形区域
CRect m_TextRect ;//显示文字的矩形区域
int m_nCurPos ;//文字当前位置
......
}
CSplashWnd::CSplashWnd()
{......
m_nCurPos = 50 ;
......
}
---- 6.在SPLASH.CPP中加入以下预定义命令:
#define TITLECOLOR RGB(0,0,255)//默认标题颜色
#define CONTENTCOLOR RGB(0,255,255)//默认说明文字颜色
#define FONTSIZE0 15 //默认字号
---- 7. 在CsplashWnd类Create中拷贝矩形区域到m_TextRect ;
BOOL CSplashWnd::Create
(CWnd* pParentWnd /*= NULL*/)
{......
m_TextRect.CopyRect
(&CRect(50,100,500,300));
......
}
---- 8. 在CsplashWnd类的成员OnPaint中添加代码,响应显示窗口时发送的WM_PAINT消息。
void CSplashWnd::OnPaint()
{
CPaintDC dc(this);
BITMAP bm;
m_bitmap.GetBitmap(&bm);
static BOOL bFirst = TRUE;//
指示是否第一次绘制窗口
if(bFirst)
{
if (!m_dcImage.CreateCompatibleDC(&dc)) return;
m_pOldBitmap = m_dcImage.SelectObject(&m_bitmap);
if (!m_dcText.CreateCompatibleDC(&dc)) return;
m_pBitmap = new CBitmap ;
int nBitCount = m_dcText.GetDeviceCaps(BITSPIXEL);
m_pBitmap->CreateBitmap
(bm.bmWidth,bm.bmHeight,1,nBitCount,NULL);
m_pOldBitmapText = m_dcText.SelectObject(m_pBitmap);
m_rgn.CreateRectRgn(m_TextRect.left,m_TextRect.top,
m_TextRect.right,m_TextRect.bottom);
bFirst = FALSE;
}
m_dcText.SelectClipRgn(NULL);
m_dcText.BitBlt(0, 0, bm.bmWidth,
bm.bmHeight,&m_dcImage, 0, 0, SRCCOPY);
m_dcText.SelectClipRgn(&m_rgn);
int nBasex = m_TextRect.left ;
int nBasey = m_TextRect.bottom-m_nCurPos;
int nMidx = m_TextRect.left + m_TextRect.Width()/2 ;
DrawText(&m_dcText,nMidx,nBasey, 1,
"楷体_GB2312", FONTSIZE0+5,TITLECOLOR,"研制单位");
DrawText(&m_dcText,nMidx,nBasey+30, 1,
"楷体_GB2312", FONTSIZE0,CONTENTCOLOR,
"武警指挥学院模拟中心");
DrawText(&m_dcText,nMidx,nBasey+50, 1,
"楷体_GB2312", FONTSIZE0,TITLECOLOR,"邮政编码");
DrawText(&m_dcText,nMidx,nBasey+70, 1,
"楷体_GB2312", FONTSIZE0,CONTENTCOLOR,"300350");
dc.BitBlt(0, 0, bm.bmWidth,
bm.bmHeight,&m_dcText, 0,0, SRCCOPY);
}