SDK编程,编辑框控件(ES_MUTILINE型)上的背景色大部分都能改变,除了第一行是空白以外
实现的目标是:把指定ID 的编辑框背景色变为绿色,字体颜色为红色。
编辑框控件(ES_MUTILINE型)上的背景色大部分都能改变,除了第一行是空白以外,其余都是渲染的绿色(我的目标是整个编辑框都变成绿色背景,红色字体。),当我往里面填入数据时,如果填到第二行,原来的绿色背景也变成了白色,字体是始终都是黑色没有变成红色,谁能解释一下,为什么,如何修改实现???
C/C++ code
编辑框控件(ES_MUTILINE型)上的背景色大部分都能改变,除了第一行是空白以外,其余都是渲染的绿色(我的目标是整个编辑框都变成绿色背景,红色字体。),当我往里面填入数据时,如果填到第二行,原来的绿色背景也变成了白色,字体是始终都是黑色没有变成红色,谁能解释一下,为什么,如何修改实现???
C/C++ code
case WM_CTLCOLOREDIT: { int nID; hdc1=GetDC(hWnd); HWND HC=GetWindow(hWnd,GW_CHILD); nID=GetDlgCtrlID(HC); while(HC) { HC=GetWindow(HC,GW_HWNDNEXT); nID=GetDlgCtrlID(HC); if (nID==ID_RECORD) { SetTextColor(hdc1,RGB(255,0,0)); SetBkColor(hdc1,RGB(0,255,0)); SetBkMode(hdc1,OPAQUE); brush=CreateSolidBrush(RGB(0,255,0)); SelectObject(hdc1,brush); break; } } ReleaseDC(hWnd,hdc1); } return (LRESULT)brush;
作者: sunyongliang118 发布时间: 2011-12-18
这么多天了,居然没有人回答。压抑。
作者: sunyongliang118 发布时间: 2011-12-28
C/C++ code
case WM_CREATE: { hEdit = CreateWindow(_T("Edit"), _T("Edit"), WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE | ES_WANTRETURN | ES_AUTOHSCROLL | ES_AUTOVSCROLL | WS_VSCROLL | WS_HSCROLL, 10, 10, 200, 100, hWnd, (HMENU)0x11, hInst, NULL); hbr = CreateSolidBrush(RGB(0, 0, 255)); } break; case WM_CTLCOLOREDIT: { if(hEdit == (HWND)lParam) { HDC hDC = (HDC)wParam; SetTextColor(hDC, RGB(255, 0, 0)); SetBkColor(hDC, RGB(0, 0, 255)); return (long)hbr; } } break;
作者: VisualEleven 发布时间: 2011-12-28
引用 2 楼 visualeleven 的回复:
C/C++ code
case WM_CREATE:
{
hEdit = CreateWindow(_T("Edit"), _T("Edit"),
WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE | ES_WANTRETURN | ES_AUTOHSCROLL | ES……
C/C++ code
case WM_CREATE:
{
hEdit = CreateWindow(_T("Edit"), _T("Edit"),
WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE | ES_WANTRETURN | ES_AUTOHSCROLL | ES……
兄弟,你的代码我用了一下,管用,但是我还想问一下,怎么给指定编辑控件渲染,不是所有的编辑控件
就以你的这个代码为例,如果还有其他不同ID的编辑控件,怎么办?所有的编辑控件已经在WinMain函数中创建了。
C/C++ code
case WM_CREATE: { brush=CreateSolidBrush(RGB(0,255,0)); } break; case WM_CTLCOLOREDIT: { int nID; HWND HC=GetWindow(hWnd,GW_CHILD); nID=GetDlgCtrlID(HC); while(HC) { HC=GetWindow(HC,GW_HWNDNEXT); nID=GetDlgCtrlID(HC); if (nID==ID_RECORD) { hdc1=(HDC)wParam; SetTextColor(hdc1, RGB(255,0,0)); SetBkColor(hdc1, RGB(0,255,0)); return (long)brush; } } } break;
作者: sunyongliang118 发布时间: 2011-12-28