博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

动态创建一个CButton按钮并实现其ON_BN_CLICKED消息

Posted on 2008-10-09 17:34  浪端之渡鸟  阅读(4335)  评论(1编辑  收藏  举报

目标:

动态创建一个CButton按钮并实现其ON_BN_CLICKED消息

实现:

一、创建按钮

  • 定义CButton变量为类的成员变量;
    CButton button;
  • 定义该按钮的ID;
    #define IDC_BUTTON1 8888
  • 在适当的地方创建按钮;
    button.Create("BUTTON", WS_VISIBLE | WS_CHILD | WS_BORDER | BS_AUTO3STATE,
       CRect(10 , 10, 100, 40), this, IDC_BUTTON1 );

二、实现ON_BN_CLICKED消息

  • 在头文件中定义消息响应函数;
    // Generated message map functions
     //{{AFX_MSG(CDialogTestDlg)
     virtual BOOL OnInitDialog();
     afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
     afx_msg void OnPaint();
     afx_msg HCURSOR OnQueryDragIcon();
     //}}AFX_MSG
     afx_msg void OnBnClicked();
     DECLARE_MESSAGE_MAP()
  • 在CPP文件中完成消息路有;
    BEGIN_MESSAGE_MAP(CDialogTestDlg, CDialog)
     //{{AFX_MSG_MAP(CDialogTestDlg)
     ON_WM_SYSCOMMAND()
     ON_WM_PAINT()
     ON_WM_QUERYDRAGICON()
     //}}AFX_MSG_MAP
     ON_BN_CLICKED(IDC_BUTTON1, OnBnClicked)
    END_MESSAGE_MAP()
  • 完成消息函数本身;
    void CDialogTestDlg::OnBnClicked()
    {
     AfxMessageBox("Button1");