MFC自定义搜索编辑框CEdit,得到焦点提示文本消失,失去焦点,提示文本显示

本文主要是介绍MFC自定义搜索编辑框CEdit,得到焦点提示文本消失,失去焦点,提示文本显示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#pragma once// CSearchEditclass CSearchEdit : public CEdit
{DECLARE_DYNAMIC(CSearchEdit)public:CSearchEdit();virtual ~CSearchEdit();public:void ShowTip();const CString GetTip()const { return m_strTip; }private:const CString m_strTip = _T("搜索图片");protected:DECLARE_MESSAGE_MAP()afx_msg void OnEnKillfocus();afx_msg void OnEnSetfocus();afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
};
// SearchEdit.cpp : 实现文件
//#include "stdafx.h"
#include "TestDlg.h"
#include "SearchEdit.h"// CSearchEditIMPLEMENT_DYNAMIC(CSearchEdit, CEdit)CSearchEdit::CSearchEdit()
{}CSearchEdit::~CSearchEdit()
{
}void CSearchEdit::ShowTip()
{SetWindowText(m_strTip);
}BEGIN_MESSAGE_MAP(CSearchEdit, CEdit)ON_CONTROL_REFLECT(EN_KILLFOCUS, &CSearchEdit::OnEnKillfocus)ON_CONTROL_REFLECT(EN_SETFOCUS, &CSearchEdit::OnEnSetfocus)ON_WM_CTLCOLOR_REFLECT()
END_MESSAGE_MAP()// CSearchEdit 消息处理程序void CSearchEdit::OnEnKillfocus()
{CString str;GetWindowText(str);if (str == _T("")){SetWindowText(m_strTip);}
}void CSearchEdit::OnEnSetfocus()
{CString str;GetWindowText(str);if (str == m_strTip){SetWindowText(_T(""));}
}HBRUSH CSearchEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{// TODO:  在此更改 DC 的任何特性CString str;GetWindowText(str);if (str == m_strTip){pDC->SetTextColor(RGB(192, 192, 192));return (HBRUSH)GetStockObject(WHITE_BRUSH);}// TODO:  如果不应调用父级的处理程序,则返回非 null 画笔return NULL;
}

 

这篇关于MFC自定义搜索编辑框CEdit,得到焦点提示文本消失,失去焦点,提示文本显示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/798382

相关文章

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

Mybatis提示Tag name expected的问题及解决

《Mybatis提示Tagnameexpected的问题及解决》MyBatis是一个开源的Java持久层框架,用于将Java对象与数据库表进行映射,它提供了一种简单、灵活的方式来访问数据库,同时也... 目录概念说明MyBATis特点发现问题解决问题第一种方式第二种方式问题总结概念说明MyBatis(原名

电脑显示hdmi无信号怎么办? 电脑显示器无信号的终极解决指南

《电脑显示hdmi无信号怎么办?电脑显示器无信号的终极解决指南》HDMI无信号的问题却让人头疼不已,遇到这种情况该怎么办?针对这种情况,我们可以采取一系列步骤来逐一排查并解决问题,以下是详细的方法... 无论你是试图为笔记本电脑设置多个显示器还是使用外部显示器,都可能会弹出“无HDMI信号”错误。此消息可能

Ubuntu 24.04 LTS怎么关闭 Ubuntu Pro 更新提示弹窗?

《Ubuntu24.04LTS怎么关闭UbuntuPro更新提示弹窗?》Ubuntu每次开机都会弹窗提示安全更新,设置里最多只能取消自动下载,自动更新,但无法做到直接让自动更新的弹窗不出现,... 如果你正在使用 Ubuntu 24.04 LTS,可能会注意到——在使用「软件更新器」或运行 APT 命令时,

SpringBoot 自定义消息转换器使用详解

《SpringBoot自定义消息转换器使用详解》本文详细介绍了SpringBoot消息转换器的知识,并通过案例操作演示了如何进行自定义消息转换器的定制开发和使用,感兴趣的朋友一起看看吧... 目录一、前言二、SpringBoot 内容协商介绍2.1 什么是内容协商2.2 内容协商机制深入理解2.2.1 内容

Java操作xls替换文本或图片的功能实现

《Java操作xls替换文本或图片的功能实现》这篇文章主要给大家介绍了关于Java操作xls替换文本或图片功能实现的相关资料,文中通过示例代码讲解了文件上传、文件处理和Excel文件生成,需要的朋友可... 目录准备xls模板文件:template.xls准备需要替换的图片和数据功能实现包声明与导入类声明与

python解析HTML并提取span标签中的文本

《python解析HTML并提取span标签中的文本》在网页开发和数据抓取过程中,我们经常需要从HTML页面中提取信息,尤其是span元素中的文本,span标签是一个行内元素,通常用于包装一小段文本或... 目录一、安装相关依赖二、html 页面结构三、使用 BeautifulSoup javascript

C# ComboBox下拉框实现搜索方式

《C#ComboBox下拉框实现搜索方式》文章介绍了如何在加载窗口时实现一个功能,并在ComboBox下拉框中添加键盘事件以实现搜索功能,由于数据不方便公开,作者表示理解并希望得到大家的指教... 目录C# ComboBox下拉框实现搜索步骤一步骤二步骤三总结C# ComboBox下拉框实现搜索步骤一这