我自己用CButton::Create(...)在对话框创建了一个BUTTON,
请问如何得到按下时的消息映射函数!
多谢!!!!                            happysnoopy

解决方案 »

  1.   

    1)在类的头文件里面定义CButton对象:CButton m_btn;
    2)在OnInitDialog()中创建和显示:
    m_btn.Create("hello", WS_CHILD|WS_VISIBLE, CRect(10, 10, 50, 50), this, 111);
    m_btn.ShowWindow(1);3)在执行文件里面把“ON_BN_CLICKED(111, TestButton)”添加到下面中
    BEGIN_MESSAGE_MAP(CSerialDlg, CDialog)
    //{{AFX_MSG_MAP(CSerialDlg)
    ON_WM_SYSCOMMAND()
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    ON_BN_CLICKED(111, TestButton)   //就是这句话
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    4)在头文件里面加入“afx_msg void TestButton();”
    5)在执行文件里面加入下面的代码来验证你的按钮:
    void CSerialDlg::TestButton()
    {
    MessageBox("test", MB_OK);
    }
    相信你应该看懂了吧!!!
      

  2.   

    (1)在类声明中添加virtual void OnButton1();
    (2)在//}}AFX_MSG_MAP之前,END_MESSAGE_MAP()之后添加
        ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
    (3)在类的实现中就可以编写你的消息映射了
      

  3.   

    创建部分
    style = WS_VISIBLE |WS_CHILD | BS_DEFPUSHBUTTON |WS_TABSTOP;
    CButton * pBtnAbout = new CButton();
    rect.left = rect.left + BUTTONWIDTH + BUTTONSPACE;
    rect.right = rect.right + BUTTONWIDTH + BUTTONSPACE;
    pBtnAbout ->Create ( "关于(&A)", style, rect, this, IDM_POP_ABOUT );
    pBtnAbout ->SetFont ( pFont );消息MAP
    BEGIN_MESSAGE_MAP(CMainSheet, CPropertySheet)
    //{{AFX_MSG_MAP(CMainSheet)
    ON_COMMAND(IDM_POP_CLOSE,OnClose)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()函数定义
    public:
    afx_msg void OnClose();
      

  4.   

    创建部分
    style = WS_VISIBLE |WS_CHILD | BS_DEFPUSHBUTTON |WS_TABSTOP;
    CButton * pBtnAbout = new CButton();
    rect.left = rect.left + BUTTONWIDTH + BUTTONSPACE;
    rect.right = rect.right + BUTTONWIDTH + BUTTONSPACE;
    pBtnAbout ->Create ( "关于(&A)", style, rect, this, IDM_POP_ABOUT );
    pBtnAbout ->SetFont ( pFont );消息MAP
    BEGIN_MESSAGE_MAP(CMainSheet, CPropertySheet)
    //{{AFX_MSG_MAP(CMainSheet)
    ON_COMMAND(IDM_POP_CLOSE,OnClose)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()函数定义
    public:
    afx_msg void OnClose();