gpt4 book ai didi

windows - 突出显示 Win32 Edit 控件以指示它是现在要填充的控件

转载 作者:可可西里 更新时间:2023-11-01 11:15:11 25 4
gpt4 key购买 nike

我有一个 Win32 GUI 应用程序,它有几个编辑控件(普通的旧“EDIT”类名)。

逻辑是用户要填充应用选择的编辑框。为了更清楚现在要填充哪个,我想以某种方式突出显示“当前”编辑框。然后,当用户完成输入并要求应用程序继续时,编辑框必须再次变为“普通”状态。

理想的方法是用一种选择的颜色来绘制它的背景。我怎样才能实现这个或类似的选择——也许我可以暂时替换用于绘制控件的画笔?如果无法使用编辑控件,那么从 Win2k 开始的 Windows 中有哪些可用的替代控件?

最佳答案

您可以处理 WM_CTLCOLOREDIT notification在编辑控件的父窗口中。当即将绘制编辑控件时发送通知。所以一般来说,您会使用 RedrawWindow 或其他东西来强制重绘,然后处理不可避免的控件颜色通知。在此,您为随通知传入的设备上下文设置前后颜色:

LRESULT OnControlColorEdit(HWND hwnd, DWORD msg, WPARAM wParam, LPARAM lParam)
{
if( !toHighlight ) {
return DefWindowProc( hwnd, msg, wParam, lParam );
}
HDC dc = reinterpret_cast<HDC>(wParam);
::SetBkColor(dc, whatever);
::SetTextColor(dc, whatever);
HBRUSH brush = // create a solid brush of necessary color - should cache it and destroy when no longer needed
return reinterpret_cast<LRESULT>( brush );
}

关于windows - 突出显示 Win32 Edit 控件以指示它是现在要填充的控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1012053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com