VCWM_CHAR消息的问题1.
1。程序分三步。首先从文本框派生一个类,如:CMyEdit。
(1)。添加函数声明。在头文件中
protected:
//{{AFX_MSG(CMyEdit)
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags); //此句为WM_CHAR消息的原型
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
(2)。 添加消息映射。在实现文件中。BEGIN_MESSAGE_MAP,END_MESSAGE_MAP宏之间添加。
BEGIN_MESSAGE_MAP(CMyEdit,CE)
//{{AFX_MSG_MAP...全部
1。程序分三步。首先从文本框派生一个类,如:CMyEdit。
(1)。添加函数声明。在头文件中
protected:
//{{AFX_MSG(CMyEdit)
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags); //此句为WM_CHAR消息的原型
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
(2)。
添加消息映射。在实现文件中。BEGIN_MESSAGE_MAP,END_MESSAGE_MAP宏之间添加。
BEGIN_MESSAGE_MAP(CMyEdit,CE)
//{{AFX_MSG_MAP(CMyEdit)
ON_WM_CHAR() //此句为WM_CHAR消息映射
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
(3)。
写WM_CHAR的实现代码。
void CMyEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
//。。。。。 Add your code here
CEdit::OnChar(nChar,nRepCnt,nFlags);
}
2。
既然你提到WM_CHAR消息。我就用WM_CHAR消息实现吧。
假设CMyView有一个m_pEdit的Edit控件
CString szText; //保存你要显示的数据
void CMyView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
UINT nTmp = nChar +1;//字符+1,也可以是其它的算法
szText += (char)nTmp;//保存每次通过特定算法取得的值
m_pEdit->SetWindowText(szText);//在Edit控件里显示数据
CView::OnChar(nChar,nRepCnt,nFlags);
}
说得并不是很简洁,呵呵~~有不明白的地方可以发消息给我。收起