一个类似QQ登陆框的EDIT

网易的登陆框也有这个功能,就是其中显示一串提示字符,当用户把输入焦点定位到EDIT中后,提示信息自动消失,这个类很简单,所以我没有做demo,大家看一下就会用了。

.h文件:

#if !defined(AFX_STEDIT_H__FA85F3FB_68AC_48E7_8108_5A61A09148CE__INCLUDED_)
#define AFX_STEDIT_H__FA85F3FB_68AC_48E7_8108_5A61A09148CE__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// STEdit.h : header file
//

/
// CSTEdit window

class CSTEdit : public CEdit
{
// Construction
public:
 CSTEdit();

// Attributes
public:

// Operations
public:

// Overrides
 // ClassWizard generated virtual function overrides
 //{{AFX_VIRTUAL(CSTEdit)
 protected:
 virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
 //}}AFX_VIRTUAL

// Implementation
public:
 virtual ~CSTEdit();

 // Generated message map functions
protected:
 int nSetText;
 //{{AFX_MSG(CSTEdit)
 afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
 afx_msg void OnSetFocus(CWnd* pOldWnd);
 //}}AFX_MSG

 DECLARE_MESSAGE_MAP()
};

/

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STEDIT_H__FA85F3FB_68AC_48E7_8108_5A61A09148CE__INCLUDED_)

.cpp文件:

// STEdit.cpp : implementation file
//

#include "stdafx.h"
#include "STEdit.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/
// CSTEdit

CSTEdit::CSTEdit()
{
 nSetText = 0;
}

CSTEdit::~CSTEdit()
{
}


BEGIN_MESSAGE_MAP(CSTEdit, CEdit)
 //{{AFX_MSG_MAP(CSTEdit)
 ON_WM_LBUTTONDOWN()
 ON_WM_SETFOCUS()
 //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/
// CSTEdit message handlers

LRESULT CSTEdit::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
 if (nSetText < 2)
  if (WM_SETTEXT == message)
   nSetText++;
  else if (WM_CHAR == message)
   nSetText = 2;

 return CEdit::DefWindowProc(message, wParam, lParam);
}

void CSTEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
 if (1 == nSetText)
  SetWindowText("");

 CEdit::OnLButtonDown(nFlags, point);
}

void CSTEdit::OnSetFocus(CWnd* pOldWnd)
{
 CEdit::OnSetFocus(pOldWnd);
 if (1 == nSetText && IsWindowVisible() && pOldWnd && GetParent() == pOldWnd->GetParent())
  SetWindowText("");
}

大家自行将其分为.h和.cpp即可,使用的时候,关联一个CSTEdit控制型变量,设置提示信息的时候,用SetWindowText等均可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值