C++ VS中用MFC新建子类继承CEdit类,给编辑框赋予初值,怎么实现?

#pragmaonce//CEditExclassCEditEx:publicCEdit{DECLARE_DYNAMIC(CEditEx)public:CEditEx()... #pragma once

// CEditEx
class CEditEx : public CEdit
{
DECLARE_DYNAMIC(CEditEx)
public:
CEditEx();
virtual ~CEditEx();
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnChildActivate();
afx_msg void OnKillFocus(CWnd* pNewWnd);
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
};

// EditEx.cpp : 实现文件
//
#include "stdafx.h"
#include "MFCApplication7.h"
#include "EditEx.h"

// CEditEx
IMPLEMENT_DYNAMIC(CEditEx, CEdit)
CEditEx::CEditEx()
{
}
CEditEx::~CEditEx()
{
}

BEGIN_MESSAGE_MAP(CEditEx, CEdit)
ON_WM_CREATE()
END_MESSAGE_MAP()

// CEditEx 消息处理程序

int CEditEx::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CEdit::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: 在此添加您专用的创建代码
SetWindowText(_T("OnCreate"));
return 0;
}

好像OnCreate根本不运行啊,怎么实现,求解?
解决方法如下:
PreSubclassWindow
PreSubclassWindow是一个很好的定制控件的位置。如果我们通过重载CWnd::PreCreateWindow定制控件,而用户在对话框中使用控件。由于对话框中的控件窗口是通过CreateDlgIndirect创建,不经过CWnd::CreateEx函数,PreCreateWindow函数不会被调用。
其实,用户要在对话框中使用定制控件,必须用DDX或者SubclassDlgItem函数子类化控件,这时PreSubclassWindow一定会被调用。
如果用户直接创建定制控件窗口,CWnd::CreateEx函数就一定会被调用,控件窗口一定会被子类化以安装MFC消息泵。所以在MFC中,PreSubclassWindow是创建窗口的必经之路。
所以重写PreSubclassWindow就可以啦-_-
展开
 我来答
匿名用户
2014-01-26
展开全部
哈哈
PreSubclassWindow
PreSubclassWindow是一个很好的定制控件的位置。如果我们通过重载CWnd::PreCreateWindow定制控件,而用户在对话框中使用控件。由于对话框中的控件窗口是通过CreateDlgIndirect创建,不经过CWnd::CreateEx函数,PreCreateWindow函数不会被调用。
其实,用户要在对话框中使用定制控件,必须用DDX或者SubclassDlgItem函数子类化控件,这时PreSubclassWindow一定会被调用。
如果用户直接创建定制控件窗口,CWnd::CreateEx函数就一定会被调用,控件窗口一定会被子类化以安装MFC消息泵。所以在MFC中,PreSubclassWindow是创建窗口的必经之路。
所以重写PreSubclassWindow就可以啦-_-
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
护戒之淼
2014-01-26 · TA获得超过132个赞
知道小有建树答主
回答量:396
采纳率:0%
帮助的人:240万
展开全部
给成员变量构造的时候赋值
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式