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

发布于 2024-10-05 06:40:44 字数 262 浏览 5 评论 0原文

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

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

请让我知道解决方案,再次强调其本机 win32 应用程序代码不是 MFC

regds 苏海勒

I am writing simple UI application on windows mobile 5, i want to display a editbox to user with back color in whole edit box but i am not successful with any approach........
whenever i catch the window event for edit control and call setBkColor(), it will display only text area with given color not entire edit box.

I want the given color to be displayed to the user when the window presented to the user not when user enters the data in the edit box.

Please let me know the solution , again its native win32 application code not MFC

regds
Suhail

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云仙小弟 2024-10-12 06:40:44

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 调用——文本将透明地绘制在背景上。

SetBkColor only sets the background colour for the text. To change the background of the entire control, you need to process the WM_CTLCOLOREDIT message and return a brush of your choice. You can do this in your WndProc like this: (assuming hEdit is the handle of your edit control)

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;

By setting the background mode to transparent, you don't need a separate SetBkColor call -- the text will be painted transparently over the background.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文