vc++编程,怎么实现文本框内容自动滚动显示?

作者&投稿:孙胡 (若有异议请与网页底部的电邮联系)
vc++ 如何实现文字滚动~

用一个SetTimer()的函数定时给窗口发送WM_TIMER信息,然后改变文字位子,不停的输出刷新,改变位子,输出刷新就行了,下面是窗口处理函数:
LRESULT CALLBACK WinProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam )

{
//全局变量

HDC hdc;
PAINTSTRUCT sp;
static WORD xplace=0;
static char *water="蓝蓝的天";
static WORD wordlong=5*strlen(water);



//
switch(uMsg)
{

case WM_CREATE:
SetTimer(hwnd,1,200,NULL);
break;
case WM_TIMER:
InvalidateRect(hwnd,NULL,TRUE);
break;


case WM_PAINT:
//内容

hdc=BeginPaint(hwnd,&sp);
TextOut(hdc,xplace,0,water,strlen(water));
xplace+=5;
EndPaint(hwnd,&sp);
break;

case WM_CLOSE:
if (IDYES==MessageBox(hwnd,"确实要关闭吗?","sb",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}





return 0;
}

1。在C123CView类中添加public成员变量int x;//用来标记字幕显示的横向坐标
并在构造函数中初始化x=50;
2。添加OnTimer消息响应函数,添加代码:
CDC *pDC=GetDC();
pDC->TextOut(x,50,"good");
x++;
3。C123CView::OnTestMove()中添加代码:
SetTimer(1,10,NULL);//每10毫秒调用ontimer函数,如果要改变滚动速度,只要变更函数第二个参数的大小。

这是简单的,如有其他需要在这上面改改就好

程序已发到你油箱

我自己包了个函数实现你说的功能, 其中m_editLog是多行文本框控件。参数strLog为你要输出的内容, bAddTime为是否在要输出的内容前加上时间。 其中m_critical锁可有可无,当你这个函数可能被多个线程同时调用的时候,就需要加!
void xxx::AddLog(CString strLog, BOOL bAddTime)
{
if (bAddTime)
{
CTime t = CTime::GetCurrentTime();

strLog = t.Format("%x %X ") + strLog;
}
strLog += _T("\n");

m_crical.Lock();
int nLineCnt = m_editLog.GetLineCount();
int nBegin, nEnd;

nBegin = m_editLog.LineIndex(nLineCnt-1);
if (nBegin != -1)
{
nEnd = nBegin + m_editLog.LineLength(nBegin);
m_editLog.SetSel(nBegin, nEnd);
m_editLog.ReplaceSel(strLog);
}
else
{
m_editLog.SetSel(0, 0);
m_editLog.ReplaceSel(strLog);
}

if (nLineCnt >= 500)
{
m_editLog.SetSel(0, -1);
m_editLog.Clear();
}
m_crical.Unlock();
}


用C语言编写程序必须经过哪些步骤
B)由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体(中级语言)。利用C语言等过程化语言编程必须告诉计算机"做什么",同时还得告诉计算机"怎么做"。对 C)编写C语言程序一般应该经历下面的几个基本步骤:确定程序要完成的目标和功能,进行分析和设计;编写程序;编辑、编译、...

c语言怎么实现数组的循环?
这里我们先建一个固定长度的数组,如下图,数组长度为1000 然后就需要用到循环了,并且设置一个按键“回车键”跳出循环。这样,不断循环就可以不断地将数字存进数组里。当我们按回车键的时候就会跳出循环,结束输入。而输入的数据就会保存在num数组之中,唯一的缺点就是数组长度是固定的。

c语言编程中怎么实现数据的覆盖!
用读写r+ 或 w+ 方法打开。if((fp=fopen("USER.txt","r+"))==NULL)任何时候想回到文件一开始,就用回绕函数:rewind(fp);这样再写就覆盖了。"a" 打开来 是 从文件尾开始添加新内容。

C语言怎么用在实际?
C语言用处多了啊,可以应用到嵌入式系统编程中,嵌入式应用程序开发中,想用到实际中就去编程序制作软件啊,去买本习题书来看下就知道了,里面有很多实际需要用到C语言编程解决问题的,比如编一个汽车停留系统,用来调度汽车的,好多好多,我都记不住了,我们老师都叫我们编过 ...

在c语言中怎么实现输入esc退出 其他键继续
可以参考下面的代码:include<conio.h> include<stdio.h> intmain(){ while(1){ if(_kbhit()&&_getch()==0x1b)break;printf("dosomething...");} } 当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用...

怎么用c语言编程 实现创建原语、撤销原语、阻塞原语和唤醒原语_百度知 ...
下,应该差不多 一、如何建立线程 用到的头文件 (a)pthread.h (b)semaphore.h (c) stdio.h (d)string.h 定义线程标识 pthread_t 创建线程 pthread_create 对应了一个函数作为线程的程序段 注意的问题 要保证进程不结束(在创建线程后加死循环)在线程中加入While(1)语句,也就是死循环,保证...

c语言编程怎么实现进制转换?
可以用直接法和间接法转换。1、(1)间接法:先将十进制转换成二进制,然后将二进制又转换成八进制。(2)直接法:八进制是由二进制衍生而来的,因此可以采用与十进制转换为二进制相类似的方法,还是整数部分的转换和小数部分的转换,下面来具体讲解一下:①整数部分 方法:除8取余法,即每次将整数...

我c语言编程·关于S=1!+2!+3!··怎么实现··希望高手帮忙解答...
include<stdio.h> void main(){ int i,n,s=1,sum=0;\/\/i用于循环。n用于输入,s用于计算每一项阶乘,sum用于装阶乘的和 printf("输入N:");\/\/提示输入n scanf("%d",&n);\/\/输入n到n变量中 for(i=1;i<=n;i++)\/\/从1开始循环到n结束 { s*=i;\/\/计算阶乘 sum+=s;\/\/累加每一...

c语言编程 程序怎么实现选择菜单 比如说按1 执行其中一部分 按2执行另...
switch(value){ case 1: { 代码 } break; case 2: { 代码 } break; default : { 代码 }}

C语言编程实现:利用指针,输入3个整数,按由小到大的顺序输出。_百度知 ...
写法一、(交换指针指向的地址中存放的数据):include<iostream> using namespace std;int main(){ int a,b,c;int*p1,*p2,*p3;int temp;cout<<"输入3个整数:"<<endl;cin>>a>>b>>c;p1=&a;p2=&b;p3=&c;if(*p1>*p2){ temp=*p1;p1=*p2;p2=temp;} if(*p1>*p3){ temp=*...

北江区18020687465: VC++)请简述一种能取得文本框控件中内容的方法. -
苦肾谷氨: 两种方法:1、为文本框添加一个CString类型的变量,例如为m_strEdit.每次需要取得文本框内容时,调用UpdateData(TRUE)函数,m_strEdit中就会得到当前文本框中的内容;2、为文本框添加一个CEdit类型的变量,例如为m_wndEdit.每次需要得到文本框内容时,如下操作:CString strEditContent; m_wndEdit.GetWindowText(strEditContent);

北江区18020687465: 怎样在VC++中的文本框输入内容,能在静态文本中显示该内容? -
苦肾谷氨: void CGIFDISPLAY1Dlg::OnButton1() { UpdateData(TRUE); m_out=m_in; UpdateData(FALSE); } m_out//这文本框的内存变量,m_in//为静态文本框的内存变量 在对话框的头文件中:CString m_in; CString m_out;

北江区18020687465: vc++编程,怎么实现文本框内容自动滚动显示? -
苦肾谷氨: 我自己包了个函数实现你说的功能, 其中m_editLog是多行文本框控件.参数strLog为你要输出的内容, bAddTime为是否在要输出的内容前加上时间. 其中m_critical锁可有可无,当你这个函数可能被多个线程同时调用的时候,就需要加!void ...

北江区18020687465: VC++中,怎么让编辑框显示记事本的内容?? -
苦肾谷氨: CString Sname; ::GetPrivateProfileStringA("这里是[括号里面的]","这里是=号前面的",NULL,Sname.GetBuffer(255),255,"ini文件的全路径");// TODO: Add extra validation here GetDlgItem(IDC_STATIC)->SetWindowText(Sname); //Sname就是取出来的内容.我这里用的是静态标签 你自己改成编辑框 就是m_edit=Sname; UpdateData(false);

北江区18020687465: vc++ 能不能实现这样的功能,当文本框内容改变的时候触发一个函数? -
苦肾谷氨: :OnChange***() { AfxMessageBox(_T(" } 中添加处理函数;消息处理!"))使用EN_CHANGE消息处理 在 void C***Dlg

北江区18020687465: vc++获取文本框中的内容 -
苦肾谷氨: 选中该文本框控件,按组合键ctrl+shift+x;进入类向导,选择成员变量那一分组,找出你要与之关联的文本框控件的ID号,双击进入添加成员变量界面,修改类别为value,成员类型为CString;填上你需要的变量名,点击确定,然后在类向导点击确定 ,就ok了.给你放张图看看.

北江区18020687465: 你好,打扰了.我想问下你,我想在vc++中,点击按钮后把文本框的内容显示出来.该怎么写代码,谢谢 -
苦肾谷氨: 你的按钮上面双击,弹出来的那个函数,代码写在那里面.

北江区18020687465: C++中怎样将程序中的一段内容提取并显示在静态文本框内,比如说程序中的方程式... -
苦肾谷氨: 1. 读取源代码fopen("**.c", "r"); fscanf(); 2. setwindowtext放入静态框 欢迎追问!

北江区18020687465: vc++中如何实现 一个编辑框输入数据,点击一个按钮后,将那个编辑框的内容显示在另一个编辑框中,新人求助 -
苦肾谷氨: 分别对两个编辑框设置对应的变量,CString型的,比如说m_a1,m_a2...............(这是添加的按钮函数) {UpdateData(TRUE); m_a2=m_a1;//a1是原来的,a2是另一个编辑框 UpdateData(FALSE); }

北江区18020687465: VC++编写一个文字输入框 -
苦肾谷氨: 整个项目可以是文档项目,聊天窗口就是一个对话框,设这个对话框的属性是嵌入式的就可以了.在对话框上放一个文本输入框,用来接收文字.一个按钮,点击按钮就触发接受文字并输出的事件.再放一个静态文本框,用来输出文字.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网