按照工程的要求,我必须建立一个类(动态链接库中),这个类是从CWnd派生的,里面的控件全部要求动态生成,而我这个类会作为一个Dialog的成员变量。
目前动态创建控件可以实现,但是控件却不响应消息,我认为是消息只在Dialog中,没法传到其成员变量中,不知道是不是这个原因……请大神帮忙!
我做了一个很简单的程序,请大神帮忙分析一下,灰常灰常感谢~
MFC 动态创建控件不响应消息
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答
- 茜斯托洛夫斯基 2014-03-29 03:03关注
// MFCApplication1Dlg.h : 头文件
protected:
CTestWnd* m_pCTestWnd;// MFCApplication1Dlg.cpp : 实现文件
BOOL CMFCApplication1Dlg::OnInitDialog()
{// TODO: 在此添加额外的初始化代码
m_pCTestWnd = new CTestWnd(m_hWnd);
m_pCTestWnd->Create(_T("Test"), _T("Test"),
WS_CHILD | WS_VISIBLE, CRect(0, 0, 200, 200), this,1000);
}// CTestWnd
class CTestWnd : public CWnd
{
DECLARE_DYNAMIC(CTestWnd)public:
CTestWnd(const HWND& pParent);
virtual ~CTestWnd();protected:
afx_msg void OnCButton();
DECLARE_MESSAGE_MAP()
public:
CButton* m_pCButton;
CRect m_rect;
};// TestWnd.cpp : 实现文件
//#include "stdafx.h"
#include "MFCApplication1.h"
#include "resource.h"
#include "TestWnd.h"// CTestWnd
IMPLEMENT_DYNAMIC(CTestWnd, CWnd)
CTestWnd::CTestWnd(const HWND& pParent)
{FromHandle(pParent)->GetClientRect(&m_rect); m_pCButton = new CButton(); m_pCButton->Create( _T("确定"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(m_rect.left+10,m_rect.top+10,m_rect.left+60,m_rect.top+40), FromHandle(pParent), IDC_CBUTTON );
}
CTestWnd::~CTestWnd()
{
}BEGIN_MESSAGE_MAP(CTestWnd, CWnd)
ON_BN_CLICKED(IDC_CBUTTON, &CTestWnd::OnCButton)
END_MESSAGE_MAP()// CTestWnd 消息处理程序
void CTestWnd::OnCButton()
{AfxMessageBox(_T("OK"));
}
解决 无用评论 打赏 举报
悬赏问题
- ¥15 交替优化波束形成和ris反射角使保密速率最大化
- ¥15 树莓派与pix飞控通信
- ¥15 自动转发微信群信息到另外一个微信群
- ¥15 outlook无法配置成功
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程