有何办法让Edit控件每一起都不同颜色
有何办法让Edit控件每一行都不同颜色?
请问,如何让它们同时显示在IDC_EDIT1
让第一行字体是红色,
第二行是蓝色
第三行是紫色?
------解决方案--------------------
最快的方法是用CRichEditCtrl控件
------解决方案--------------------
------解决方案--------------------
这么调用AppendText((BYTE*) lineone.GetBuffer(0),20,RGB(255, 0,0));//红色
AppendText((BYTE*) linetwo .GetBuffer(0),20,RGB(0, 0,255));//蓝色
AppendText((BYTE*) lineone.GetBuffer(0),20,RGB(255, 0,0));//紫色自己找RGB
KillHalfHZ这个函数没给你
CString lineone = "This is Lineone";
CString linetwo = "This is Linetwo";
CString linethree = "This is Linethree";
GetDlgItem(IDC_EDIT1)->SetWindowText();
请问,如何让它们同时显示在IDC_EDIT1
让第一行字体是红色,
第二行是蓝色
第三行是紫色?
------解决方案--------------------
最快的方法是用CRichEditCtrl控件
------解决方案--------------------
DWORD AppendText(BYTE *pdata,UINT len,COLORREF FgColor)
{
CharNewColor(FgColor);
// make a sz
BYTE *pnew=KillHalfHZ(pdata,len);
//
LONG nStartChar;
LONG nEndChar;
m_ctrlMyRichEdit.GetSel(nStartChar,nEndChar);
m_ctrlMyRichEdit.SetSel(nEndChar,nEndChar);// go end
m_ctrlMyRichEdit.ReplaceSel((LPCTSTR)pnew);
//delete [] pnew;
//
int all=m_ctrlMyRichEdit.GetLineCount();
if(all > 50) m_ctrlMyRichEdit.LineScroll(all-50,0);
//
return len;
}
------解决方案--------------------
这么调用AppendText((BYTE*) lineone.GetBuffer(0),20,RGB(255, 0,0));//红色
AppendText((BYTE*) linetwo .GetBuffer(0),20,RGB(0, 0,255));//蓝色
AppendText((BYTE*) lineone.GetBuffer(0),20,RGB(255, 0,0));//紫色自己找RGB
KillHalfHZ这个函数没给你
BYTE *KillHalfHZ(BYTE *pdata,UINT len)
{
static BYTE HalfHZ=0;
BYTE firstHalf=0;
UINT HalfAt=0;
UINT total=0;
BYTE *copy=0;
BYTE *pTmp=0; //
if(HalfHZ !=0)
{// add last half HZ to new line
copy=new BYTE[len+1+SZ];
memset(copy,0,len+1+SZ);