一个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 出来了 感觉不错!!!!