我想在对话框中写子类型化edit使它只接收数字,但总是不对
editclass.h:
class myedit:public CEdit
{
protected:
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
DECLARE_MESSAGE_MAP()};
editclass.cpp:
#include "stdafx.h"
#include "editclass.h"BEGIN_MESSAGE_MAP(myedit,CEdit)
ON_WM_CHAR()
END_MESSAGE_MAP()void myedit::OnChar(UINT nChar,UINT nRepCnt,UINT nFlags)
{
MessageBox("wushuang");}
我也在对话框的头文件中加入了myedit my_edit;
编译没问题,但是链接时出错.就是 DECLARE_MESSAGE_MAP()的问题,去掉就不会出错了;
去掉后
我在BOOL CTest123Dlg::OnInitDialog()中加入了my_edit1->SubclassDlgItem(IDC_EDIT1,this);
运行时在编辑框中键入键时还是没有调用myedit::onchar()
还有我找不到edit里面有onchar这个消息啊
editclass.h:
class myedit:public CEdit
{
protected:
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
DECLARE_MESSAGE_MAP()};
editclass.cpp:
#include "stdafx.h"
#include "editclass.h"BEGIN_MESSAGE_MAP(myedit,CEdit)
ON_WM_CHAR()
END_MESSAGE_MAP()void myedit::OnChar(UINT nChar,UINT nRepCnt,UINT nFlags)
{
MessageBox("wushuang");}
我也在对话框的头文件中加入了myedit my_edit;
编译没问题,但是链接时出错.就是 DECLARE_MESSAGE_MAP()的问题,去掉就不会出错了;
去掉后
我在BOOL CTest123Dlg::OnInitDialog()中加入了my_edit1->SubclassDlgItem(IDC_EDIT1,this);
运行时在编辑框中键入键时还是没有调用myedit::onchar()
还有我找不到edit里面有onchar这个消息啊
解决方案 »
- VC利用ADO创建数据库最初的一个小问题
- 运行DLL.Bat 如何注册 多个DLL文件
- 用什么给硬件设备开发人机界面?
- 关闭windows时,如果系统内还存在没有关闭的应用程序,那系统会向应用程序发什么消息?
- 大家跟我讲讲Invalidate()的用法啊,一般什么时候要用到它??尽量内容能够有示例,谢谢!
- 极简单问题,如何使用GetOpenFileName和GetSaveFileName,请帮忙!!
- 急问!!显示JPG图象
- 巨难的问题,请大侠动动手:)!我有几个后缀为DDF的数据库文件,请高手帮我看看!有好的建议立刻给分!本问题在数据库版块里也有了!答
- 那里有关于计算机“标准”方面的网站,如c语言的iso、ansi标准
- 来者有分,各位大虾的公司如何保护源代码?
- 怎样显示动态位图???
- MS Word是如何做的?
class CEditBase : public CEdit
{
public:
CEditBase ()
{
m_bEmpty = true;
}
virtual ~CEditBase () {} protected:
virtual BOOL ProcessChar (UINT nChar)
{
ASSERT (FALSE); // Must be provided by derived class
return (FALSE);
} bool m_bEmpty; protected:
afx_msg void OnChar (UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg long OnPaste (WPARAM wNotUsed, LPARAM lNotUsed); DECLARE_MESSAGE_MAP ();
};
BEGIN_MESSAGE_MAP (CEditBase, CEdit)
ON_WM_CHAR ()
ON_MESSAGE (WM_PASTE, OnPaste)
END_MESSAGE_MAP ()