win32:在Windows Mobile 5上的文本区域中显示黑色编辑框
我正在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
SetBkColor
仅设置文本的背景颜色。要更改整个控件的背景,需要处理WM_CTLCOLOREDIT
消息并返回您选择的画笔。您可以在WndProc
中执行此操作,如下所示:(假设hEdit
是编辑控件的句柄)通过将背景模式设置为透明,您不需要单独的
SetBkColor
调用——文本将透明地绘制在背景上。SetBkColor
only sets the background colour for the text. To change the background of the entire control, you need to process theWM_CTLCOLOREDIT
message and return a brush of your choice. You can do this in yourWndProc
like this: (assuminghEdit
is the handle of your edit control)By setting the background mode to transparent, you don't need a separate
SetBkColor
call -- the text will be painted transparently over the background.