void CIOCPClientDlg::showTextOnce(int id, const TCHAR* str, DWORD color) { CHARFORMAT cfm; cfm.cbSize = sizeof(CHARFORMAT); SendDlgItemMessage(id, EM_GETCHARFORMAT, SCF_SELECTION, (LPARAM)&cfm); cfm.dwEffects = ~CFE_AUTOCOLOR; cfm.dwMask = CFM_COLOR; cfm.crTextColor = color; cfm.dwEffects |= CFE_BOLD;
int nLength = SendDlgItemMessage(id, WM_GETTEXTLENGTH); SendDlgItemMessage(id, EM_SETSEL, 0, nLength); SendDlgItemMessage(id, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cfm);
SendDlgItemMessage(id, EM_REPLACESEL, 0, (LPARAM)str); SendDlgItemMessage(id, EM_SETSEL, -1, -1); }
#define COLOR_RED RGB(0xff,0,0) #define COLOR_GREEN RGB(0,0xB0,0)
void CdemoDlg::showText(int id, const TCHAR* str, DWORD color) { CTime t = CTime::GetCurrentTime(); CString strOut = t.Format(_T("%Y-%m-%d %H:%M:%S ")); strOut += str;
CHARFORMAT cfm; cfm.cbSize = sizeof(CHARFORMAT); SendDlgItemMessage(id, EM_GETCHARFORMAT, SCF_SELECTION, (LPARAM)&cfm); cfm.dwEffects = ~CFE_AUTOCOLOR; cfm.dwMask = CFM_COLOR; cfm.crTextColor = color;
int nLength = SendDlgItemMessage(id, WM_GETTEXTLENGTH); SendDlgItemMessage(id, EM_SETSEL, nLength, nLength);
SendDlgItemMessage(id, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cfm);
CHARRANGE chRang; chRang.cpMax = -1; chRang.cpMin = -1; SendDlgItemMessage(id, EM_SETCHARFORMAT, 0, (LPARAM)&chRang); SendDlgItemMessage(id, EM_REPLACESEL, 0, (LPARAM)strOut.GetBuffer()); SendDlgItemMessage(id, WM_VSCROLL, SB_BOTTOM, 0); }
|