中易网

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

答案:2  悬赏:80  
解决时间 2021-03-01 21:51
#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就可以啦-_-
最佳答案
给成员变量构造的时候赋值
全部回答
行高的话,自己拖动改变就可以了啊
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
裤子的SIZE31代表多大的腰围啊?
徐州开发区大庙街道办事处华新社区居民委员会
以下细胞结构中,RNA是其结构组分的是 A.液泡
联想杨天t4900d电脑屏幕无信号输入
天龙八部天山人物加什么点
向湾地址在哪,我要去那里办事
请问Pantone “Cool Gray 2C”. CMYK= 0, 0,
作文《我言手机之利弊》1200字
手机摄像头可以当作摄像头用在电脑上吗?
美国钢琴品牌里性价比最高的是哪个牌子?
防晒衣真能避免皮肤变黑 防晒吗
宁波观海卫工业园东区我想知道这个在什么地方
馋猫卤点在什么地方啊,我要过去处理事情
途锐的变速箱是什么品牌的
QQ三国逃犯9541在哪
推荐资讯
歌中含有鼋头渚 惠山等风景的歌叫什么歌
富源厨房地址在什么地方,想过去办事
生物止血钛夹别名有哪些
乌兰图格这个地址在什么地方,我要处理点事
她微笑着说“祝贺你找回心爱的手表”(改为第
怎么才能让一个同性恋的女孩转变成一个异性恋
斯雅精品新冶分店地址在哪,我要去那里办事
哈佛H3发动机多少钱
网友们请问从青岛去莒县做客车去哪个站坐车好
一个男生喜欢一个女生会告诉那个女生的好友吗
丽之人服装城地址在什么地方,想过去办事
求一个动画短片: 一个小人在网上订购了一只
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?