Работаем с предыдущим проектом. На диалоговое окно добавим кнопку. Теперь нас идентификаторы не волнуют, они задаются автоматически. И обработка их автоматически устанавливается. Даже функция реакции автоматически. Кнопка такая.
После того как Вы её поместили необходимо создать реакцию на событие нажатия. Нажмите правую кнопку мышки и выберите Events. У Вас появится диалоговое окно и с левой стороны будет список событий. Два раза щелкните на событии, чтобы создать реакцию.
Подтвердите всё кнопками Ok. Всё, реакция на событие создана. Ниже приведены основные моменты генерируемого кода.
// diaDlg.h : header file
//
class CDiaDlg : public CDialog
{
// Construction
public:
.......
enum { IDD = IDD_DIA_DIALOG };
CListBox m_List;
//}}AFX_DATA
..........
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnButton1();
//}}AFX_MSG
............
};
// diaDlg.cpp : implementation file
//
BEGIN_MESSAGE_MAP(CDiaDlg, CDialog)
//{{AFX_MSG_MAP(CDiaDlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
.............
void CDiaDlg::OnButton1()
{
// TODO: Add your control notification handler code here
}
Нам нужно, что бы убедиться что все работает, как то видеть результат нажатия. Вот и будет окно сообщения.
void CDiaDlg::OnButton1()
{
AfxMessageBox("Save");
}
VC++ делает за Вас всё необходимое кроме реализации функции. Но если он и это будет делать, то мы все останемся без работы.
Реакция на действия с кнопкой устанавливается с помощью пункта Events.