按鈕類控件

        按鈕類控件是窗口類名被系統預定義爲BUTTON的一類控件,該類控件具有十餘種不同的窗口風格,包含了普通的下壓式按鈕、單選按鈕、複選按鈕和分組框等多種常用的按鈕形式。具體情況列表如下:

按鈕風格 說明
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對象是在棧上創建的就不必顯式銷燬對象了,應用程序在退出時會自動予以銷燬

發佈了4 篇原創文章 · 獲贊 10 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章