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

相关文章

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

Python运行中频繁出现Restart提示的解决办法

《Python运行中频繁出现Restart提示的解决办法》在编程的世界里,遇到各种奇怪的问题是家常便饭,但是,当你的Python程序在运行过程中频繁出现“Restart”提示时,这可能不仅仅是令人头疼... 目录问题描述代码示例无限循环递归调用内存泄漏解决方案1. 检查代码逻辑无限循环递归调用内存泄漏2.

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提

电脑提示找不到openal32.dll文件怎么办? openal32.dll丢失完美修复方法

《电脑提示找不到openal32.dll文件怎么办?openal32.dll丢失完美修复方法》openal32.dll是一种重要的系统文件,当它丢失时,会给我们的电脑带来很大的困扰,很多人都曾经遇到... 在使用电脑过程中,我们常常会遇到一些.dll文件丢失的问题,而openal32.dll的丢失是其中比较

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现