MFC - 滑塊控制元件



滑塊控制元件(也稱為軌跡條)是一個包含滑塊和可選刻度的視窗。當用戶使用滑鼠或方向鍵移動滑塊時,控制元件會發送通知訊息以指示更改。滑塊有兩種型別——水平和垂直。它由CSliderCtrl 類表示。

讓我們透過建立一個新的基於 MFC 對話方塊的專案來了解一個簡單的示例。

步驟 1 - 建立專案後,您將看到 TODO 行,它是文字控制元件的標題。刪除標題並將其 ID 設定為 IDC_STATIC_TXT。

步驟 2 - 為靜態文字控制元件新增一個值變數 m_strSliderVal。

Slider Ctrl Var Value

步驟 3 - 從工具箱中拖動滑塊控制元件。

Drag Slider Controls

步驟 4 - 為滑塊新增一個控制元件變數 m_sliderCtrl。

Slider Control Add Variable

步驟 5 - 轉到解決方案中的類檢視。

步驟 6 - 選擇 CMFCSliderControlDlg 類。

步驟 7 - 在“屬性”視窗中,單擊“訊息”。

Slider Controls

步驟 8 - 向下滾動到“WM_HSCROLL”並單擊下拉選單。單擊“<新增> OnHScroll”。

步驟 9 - 在 OnInitDialog() 函式內初始化滑塊和靜態文字控制元件。

BOOL CMFCSliderControlDlg::OnInitDialog() {
   CDialogEx::OnInitDialog();
  
   // Set the icon for this dialog. The framework does this automatically
   // when the application's main window is not a dialog
   SetIcon(m_hIcon, TRUE);            // Set big icon
   SetIcon(m_hIcon, FALSE);            // Set small icon

   // TODO: Add extra initialization here
   m_sliderCtrl.SetRange(0, 100, TRUE);
   m_sliderCtrl.SetPos(0);
   m_strSliderVal.Format(_T("%d"), 0);

   return TRUE; // return TRUE unless you set the focus to a control
}

步驟 10 - 在 OnVScroll() 函式程式碼塊內新增以下程式碼

void CMFCSliderControlDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) {
   // TODO: Add your message handler code here and/or call default
   if (pScrollBar == (CScrollBar *)&m_sliderCtrl) {
      int value = m_sliderCtrl.GetPos();
      m_strSliderVal.Format(_T("%d"), value);
      UpdateData(FALSE);
   }else {
      CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
   }
}

步驟 11 - 編譯並執行上述程式碼後,您將看到以下輸出。

Slider Controls
mfc_windows_controls.htm
廣告

© . All rights reserved.