2010-12-01 44 views
0

我正在windows mobile 5上编写简单的UI应用程序,我想在整个编辑框中向用户显示带有背景颜色的编辑框,但是我没有成功方法........ 每当我捕捉编辑控件的窗口事件并调用setBkColor()时,它将只显示给定颜色而不是整个编辑框的文本区域。win32:在windows mobile 5上显示文本区域的黑色颜色的编辑框0

我希望给用户显示给定的颜色,当用户在编辑框中输入数据时不会显示给用户。

请让我知道解决的办法,再其原生的Win32应用程序代码没有MFC

regds Suhail

回答

1

SetBkColor只设置文本的背景颜色。要更改整个控件的背景,您需要处理WM_CTLCOLOREDIT消息并返回您选择的画笔。您可以在WndProc这样做:(假设hEdit是你的编辑控件的句柄)

case WM_CTLCOLOREDIT: 
    if ((HWND)lParam == hEdit) { 
    HDC hDC = (HDC)wParam; 
    SetBkMode(hDC, TRANSPARENT); 
    return (LRESULT)GetStockObject(BLACK_BRUSH); // or any other brush you want 
    } 
    break; 

通过设置背景模式为透明的,你不需要一个单独的SetBkColor呼叫 - 将文本透明地涂在背景上。

相关问题