#pragma once
// CSearchEdit
class 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"
// CSearchEdit
IMPLEMENT_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;
}