1. 程式人生 > >MFC 單文件新增按鈕

MFC 單文件新增按鈕

VS 單文件 新增按鈕

今天做專案需要在單文件中建立按鈕來響應函式,即點選按鈕,呼叫某函式,特此記錄。

1. 在XXXView中新增CButton變數,例如 CButton start;

2. 下來就是 建立按鈕 了

① 在資源 Rescource.h 中註冊一下 按鈕 

#define IDB_BUTTONSTOP(這是名字,自己起)     2000(這是編號,不要和其他的一樣就好)

②下來建立按鈕

右鍵 XXXView類->屬性->訊息->WM_CREAT->add(編輯函式)

內容:

  

int CTetrisView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;

	// TODO:  在此新增您專用的建立程式碼
	//開始按鈕
	CRect rect_button(panel->p1.x + 20, panel->p0.y + 500, panel->p1.x + 200, panel->p0.y + 540);//控制按鈕大小、位置       
	start.Create(L"開始遊戲", WS_CHILD | WS_VISIBLE | WS_BORDER, rect_button, this, IDB_BUTTONSTART);
	start.ShowWindow(SW_SHOWNORMAL);
}

(其中,rect_buton是要顯示的矩形大小,四個引數應該懂吧,定義矩形:要麼兩個CPoint 點,要麼四個數)

然後 .OnCreate(...)照著寫就行,注意把 IDB_BUTTONSTART  換成你自己定義的名稱,start就是你在XXXView中新建的變數,我的VS2017需要在字串前加 L,你可能不需要。

至此,執行程式,就可以看到 按鈕了。

3. 響應函式的建立

① 在XXXView.cpp 中找到 BEGIN_MESSAGE_MAP(CTetrisView, CView).......END_MESSAGE_MAP(),

在其中 新增點選訊息響應 ON_BN_CLICKED(IDB_BUTTONSTART, OnSTARTDown)//點選start事件 

注意:把第一個引數換成 自己定義的 名稱(在Rescource.h中定義的那個),第二個引數是 要響應的函式(就是,你通過點選按鈕,要呼叫的那個函式)

② 實現 響應函式

我的是:

1 void CTetrisView::OnSTARTDown()
2 {
  //新增自己的程式碼
3 CDC *pDC = this->GetDC();// 4 playMusic();// 5 SetTimer(1, 500, NULL);// 6 }

你自己的,自己實現一下

 

然後.......就好了。