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

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

hdu1240、hdu1253(三维搜索题)

1、从后往前输入,(x,y,z); 2、从下往上输入,(y , z, x); 3、从左往右输入,(z,x,y); hdu1240代码如下: #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#inc

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

hdu 4517 floyd+记忆化搜索

题意: 有n(100)个景点,m(1000)条路,时间限制为t(300),起点s,终点e。 访问每个景点需要时间cost_i,每个景点的访问价值为value_i。 点与点之间行走需要花费的时间为g[ i ] [ j ] 。注意点间可能有多条边。 走到一个点时可以选择访问或者不访问,并且当前点的访问价值应该严格大于前一个访问的点。 现在求,从起点出发,到达终点,在时间限制内,能得到的最大

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close