按鈕風格 | 說明 |
BS_AUTOCHECKBOX | 同複選按鈕類似,點擊一下選中,再次點擊取消。 |
BS_AUTORADIOBUTTON | 同單選按鈕類似,點擊後選中標誌將從同組的其他單選按鈕處移到當前選項。 |
BS_AUTO3STATE | 同三態複選按鈕類似,只是在用戶點擊後改變狀態。 |
BS_CHECKBOX | 複選按鈕 |
BS_DEFPUSHBUTTON | 下壓按鈕,具有較黑的邊框。 |
BS_GROUPBOX | 分組框 |
BS_LEFTTEXT | 同單選按鈕或複選按鈕配合使用,標題將顯示在左側。 |
BS_OWNERDRAW | 可創建一個擁有者自繪按鈕。 |
BS_PUSHBUTTON | 普通下壓按鈕 |
BS_RADIOBUTTON | 單選按鈕 |
BS_3STATE | 三態複選按鈕 |
以上按鈕風格通常需要同窗口風格共同使用,由CreateWindow()函數或MFC的CButton類成員函數Create()完成對按鈕的創建:
// 按鈕類窗口風格 DWORD STYLE[9] = {BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_DEFPUSHBUTTON, BS_GROUPBOX, BS_PUSHBUTTON, BS_RADIOBUTTON, BS_3STATE}; // 動態創建按鈕 for (int i = 0; i < 9; i++) { m_ctrButton[i].Create("BUTTON", WS_VISIBLE | WS_CHILD | WS_BORDER | STYLE[i], CRect(10 + 110 * i, 10, 100 + 110 * i, 40), this, IDC_BUTTON1 + i); } |
如果需要處理按鈕發送給其父窗口的消息,可以在進行消息響應的類實現中添加一個如下形式的消息映射入口和相應的消息處理函數:
ON_Notification(id, memberFxn )
其中,id爲發送通知消息的按鈕ID號,memberFxn爲消息處理函數。如果按鈕是以new操作符的方式在堆(heap)內創建一個CButton對象,那麼就必須確保在關閉窗口前能調用delete銷燬該對象。如果CButton對象是在棧上創建的就不必顯式銷燬對象了,應用程序在退出時會自動予以銷燬。