SDI裡添加按鈕並響應點擊事件

來源:互聯網
上載者:User

 

在網上搜了好多資料,發現能在單文檔上顯示按鈕,但就是不能響應事件,

弄了好久,發現m_pButton->Create()要放在C***View類的OnCreate()裡。

但用VS2008建立的單文檔程式裡C***View類沒有重載OnCreate()函數,要

自己重載該函數,可以利用嚮導產生的。下面說一下具體步驟:

 

一、建立SDI(單文檔)程式button,嚮導會產生CbuttonView類,還有其他類

還有buttonView.h,buttonView.cpp兩個檔案,當然還有其他檔案。

二、在CbuttonView類中添加CButton指標變數m_pButton

三、在CbuttonView類添加OnCreate函數,通過類嚮導產生WM_CREATE訊息函數即可

四、在resoure.h檔案中添加

       #define IDC_TEST                    1000

五、在CbuttonView類的OnCreate函數中添加按鈕產生函數

int CbuttonView::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

if (CView::OnCreate(lpCreateStruct) == -1)

return -1;

// TODO:  在此添加您專用的建立代碼

m_pButton = new CButton;

m_pButton->Create( "請點擊",WS_CHILD|WS_VISIBLE, CRect(100,100,200,140),this,IDC_TEST); 

return 0;

}

六、在CbuttonView類添加test函數,可通過嚮導產生

buttonView.h中

 

class CbuttonView : public CView

{

..............

public:

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

void test(void);

}

 

buttonView.cpp中

 

void CbuttonView::test(void)

{

AfxMessageBox("你點擊了我");

}

七、在CbuttonView類中添加訊息映射,buttonView.cpp檔案

BEGIN_MESSAGE_MAP(CbuttonView, CView)

..........

//添加的點擊訊息

ON_BN_CLICKED(IDC_TEST, &CbuttonView::test)

ON_WM_CREATE()

END_MESSAGE_MAP()

八、運行程式,在SDI的客戶區有個"請點擊"按鈕,點擊後,彈出“你點擊了我”訊息框

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.