win32:在Windows Mobile 5的文本区域中显示带有黑色的编辑框

时间:2010-12-01 19:01:47

标签: winapi visual-c++ controls edit

我正在Windows Mobile 5上编写简单的UI应用程序,我想在整个编辑框中向用户显示带有背景颜色的编辑框但是我没有成功使用任何方法........ 每当我抓住窗口事件进行编辑控制并调用setBkColor()时,它将只显示给定颜色的文本区域而不是整个编辑框。

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

请让我知道解决方案,它的本机win32应用程序代码不是MFC

regds 苏海尔

1 个答案:

答案 0 :(得分: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调用 - 文本将在背景上透明地绘制。