MFC 中添加按钮和事件

VS2008没用过,跟你说一种在VC++6.0下的实现View添加按钮及其消息处理的方法吧
1、在你的工程的View类的头文件(***View.h)中
 1.0 添加声明
  CButton * m_pBtn;

 2.0 在//{{AFX_MSG(C***View) 和 //}}AFX_MSG DECLARE_MESSAGE_MAP()之间添加消息处理函数声明
  afx_msg void OnBtnFileOpen();
 
2、在工程View类的实现文件中(***View.cpp)
 2.0 定义按钮ID
  #define  ID_MYBUTTON1 12315

 2.1 构造函数中添加代码
  m_pBtn = NULL;
 2.2 析构函数中添加代码
  if (m_pBtn != NULL)
  {
   m_pBtn->Detach();
   delete m_pBtn;
  }
 2.3 在OnInitialUpdate()函数中添加
  if(m_pBtn == NULL)
  {
   m_pBtn = new CButton;
   int w = 50;
   int h = 20;
   int x0 = 100; // 这里是按钮的起始x坐标,以后用到再移动按钮吧
   int y0 = 100; // 这里是按钮的起始y坐标,以后用到再移动按钮吧
   m_pBtn->Create(_T("我的Button"),
    WS_CHILD|WS_VISIBLE|BS_FLAT,
    CRect(x0, y0, x0 + w, y0 + h),
    this,
    ID_MYBUTTON1);
  }
 2.4 在 BEGIN_MESSAGE_MAP(C***View, CView) 和 END_MESSAGE_MAP() 之间添加消息映射
  ON_BN_CLICKED(ID_MYBUTTON1, OnBtnFileOpen)
 2.5 添加消息处理函数
  void C***View::OnBtnFileOpen()
  {

  CFileDialog FileDlg(TRUE,
   _T("jpg"),
   _T("*.jpg"),
   OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
   TEXT("图像文件(*.jpg)|*.jpg||"),
   this);
 
  if (FileDlg.DoModal()!=IDOK)
  {
   return;
  }

  CString strFileName = FileDlg.GetPathName();

  HANDLE hFile
   = CreateFile(strFileName,
   GENERIC_READ|GENERIC_WRITE,
   FILE_SHARE_READ|FILE_SHARE_WRITE,
   NULL,
   CREATE_ALWAYS,
   FILE_ATTRIBUTE_NORMAL,
   0);
  // 利用hFile进行文件操作
  }

你可能感兴趣的:(mfc)