MFC 中添加按鈕和事件

來源:互聯網
上載者:User

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進行檔案操作
  }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.