茜斯托洛夫斯基 2014-03-29 02:50 采纳率: 0%
浏览 2478

MFC 动态创建控件不响应消息

按照工程的要求,我必须建立一个类(动态链接库中),这个类是从CWnd派生的,里面的控件全部要求动态生成,而我这个类会作为一个Dialog的成员变量。
目前动态创建控件可以实现,但是控件却不响应消息,我认为是消息只在Dialog中,没法传到其成员变量中,不知道是不是这个原因……请大神帮忙!
我做了一个很简单的程序,请大神帮忙分析一下,灰常灰常感谢~

  • 写回答

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 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择
  • ¥15 这款软件是什么?需要能满足我的需求
  • ¥15 SpringSecurityOauth2登陆前后request不一致