我用create语句在对话框中创建了一个BUTTON,想为该BUTTON创建消息响应事件,该怎么做啊?

解决方案 »

  1.   

    无论是不是动态生成,消息响应只认ID号。所以,你只要手工添加这个响应事件就可以了。添加的方法你可以参照在对话框上放置一个按钮,然后用wizard生成BN_CLICKED事件,你照着抄一下自动生成的事件就可以了,只需要将ID号改为你的ID号
      

  2.   

    你要响应事件都能动态添加吧?我没有尝试过,如果要做,我不会在MFC里处理,直接处理消息循环会更轻松些,得到button的句柄,然后对它发送消息,当然你需要事先在消息循环里作好实现。
      

  3.   

    同意一楼,将普通的按钮消息映射copy后改成你的ID和函数就可以了
      

  4.   

    agree to happyparrot
    你还可以重载 CButton,在响应函数中发自定义消息给应用程序
    ::SendMessage(pParent->m_hWnd, UM_BTNCLICKED, nButtonID, 0);
    然后所有按钮都在一个函数
    LRESULT OnBtnClicked(WPARAM wParam, LPARAM lParam);
    中根据 wParam 来处理就好
      

  5.   

    我做过这个
    首先定义一个CButton m_button;
    创建按钮m_botton.Create(_T("登陆"), WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTON, CRect( 20, 20, 40, 30), this, ID_LOGIN);//最后一个参数就是ID,需要自己定义,this为按钮控件的父窗口
    然后在.h文件里面添加消息处理函数afx_msg void OnLogin();
    最后在.cpp文件里面添加消息映射ON_BN_CLICKED(ID_LOGIN, CMainFrame::OnLogin)
    在OnLogin()里面写自己的响应代码。