本文共 1482 字,大约阅读时间需要 4 分钟。
#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;}
转载地址:http://ewmai.baihongyu.com/