MFC 單文件新增按鈕
阿新 • • 發佈:2018-12-24
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 }
你自己的,自己實現一下