MFC 横排滚动字 跑马灯

一个EDIT控件 ReadOnly模式

SetErectFontMove(0,200,300,300,"          对不起          ");

void CMy20090205DemoDlg::SetErectFontMove(int cx,int cy,int width,int highth,CString showtext)
{
 CFont *m_Font=new CFont;
 m_erect.ModifyStyle(0, SS_BITMAP | SS_CENTERIMAGE);
m_erect.SetWindowPos(NULL,cx,cy,width,highth,NULL);
 m_erect.SetWindowText(showtext);
 m_Font->CreateFont(50,50,0,0,FW_HEAVY,FALSE,FALSE,FALSE,OEM_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,"宋体");      //利用一个设置字体函数
 m_erect.SetFont(m_Font,FALSE);
 SetTimer(1,700,NULL);
// delete m_Font;
}

再利用一个OnTime函数

if(nIDEvent==1)  
    {      
  char   m_szBar[100];  
        CWnd   *edit=GetDlgItem(IDC_DISPLAYERECT_EDIT);  
        m_erect.GetWindowText(m_szBar,100);  
        int   nlen=strlen(m_szBar);  
        char   ch1,   ch2;  
        ch1=m_szBar[0],
      ch2=m_szBar[1];        //取出字符串的第一个字,一个字了两个字节
        memmove(m_szBar,   m_szBar+2,   nlen-2);  
        m_szBar[nlen-2]=ch1;    
  m_szBar[nlen-1]=ch2;      //字符串的最后1个字符  两个字节,内容更改为 char1 char2的内容
        edit->SetWindowText(m_szBar);  
  //当初出现乱码的原因就是因为 英文符号和空格 占用了一个字节 而第二个字节却是中文  所以连在一起 是乱码 完全把数据打乱了
  //这里在使用的时候 要注意。如果字节为单 则提示出错  一定要使用中文的符号或 空格数目为双.
 }

再加上一个OnCtlColor函数 
if(pWnd==&m_erect)       //OnCtlColor是一个响应界面上文字字体、文本框背景颜色的消息事件,
             //可以在这里面改变字体颜色、文本框背景颜色。
   {  
   pDC->SetBkColor(RGB(20,0,50));
   pDC->SetTextColor(RGB(255,255,255));
 
   }
OK 出来了  感觉不错!!!!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值