MFC控制項編程:旋轉按鈕、進度條和滑塊控制項,mfc控制項

來源:互聯網
上載者:User

MFC控制項編程:旋轉按鈕、進度條和滑塊控制項,mfc控制項

旋轉按鈕(微調按鈕) : 對應的控制項類是CSpinButtonCtrl  

進度條:對應的控制項類是CProgressCtrl

滑塊:對應的控制項類是CSliderCtrl

對這三個控制項的操作都是同過與之相關聯的控制項類完成的,並且這三個控制項有極大的相似性,故這裡放到一起

先認識下:

Spin:            Progress:             Slider:


常用函數:


   SetRange()/GetRange();        // 設定、擷取控制項表示的範圍   /* 設定控制項的增量(步長) */   CSpinButtonCtrl::SetAccel   CProgressCtrl::SetStep   CSlierCtrl::SetPageSize   CSliderCtrl::SetLineSize   SetPos()/GetPos();                    // 設定、擷取當前數值

另外:旋轉按鈕通常和編輯框一起使用,所以使用前需要設定兩者的夥伴關係。


使用案列程式:

   Spin控制項和編輯框控制項的關聯設定如下:  勾選:Auto buddy 和  Set buddy interger

   

 程式介面設定如下:

 

為了方便操作控制項:分別為Progress、Slider、Spin控制項關聯三個控制項類型的變數:m_wndProgress、m_wndSlider、m_wndSpin

具體功能函數顯示如下:

/*************************************   初始化控制項函數**************************************/void CCtrl4Dlg::InitCtrl(){// 設定控制項的數值範圍m_wndSpin.SetRange (0, 100);m_wndProgress.SetRange (0, 100);m_wndSlider.SetRange (0, 100);// 設定控制項的步長UDACCEL accel = {0};accel.nSec = 1;// 設定按住幾秒時間開始快輸增長accel.nInc = 1;// 增長率m_wndSpin.SetAccel (1, &accel);    m_wndProgress.SetStep (10);m_wndSlider.SetLineSize (5); // 設定滑鼠點擊和游標按鍵的增量m_wndSlider.SetPageSize (20);// 設定鍵盤翻頁按鍵的增量    // 設定每個刻度的值,需要Slider控制項勾選"Tic marks" 和 "Auto tics"樣式        m_wndSlider.SetTicFreq (20);}

/***********************************************************   "增長"按鈕訊息響應函數************************************************************/void CCtrl4Dlg::OnBtnAdd() {// TODO: Add your control notification handler code here// 進度條前進一個步長m_wndProgress.StepIt ();// 擷取進度條的當前位置int nPos = m_wndProgress.GetPos ();// 把擷取到的為之設定給Slider和Spinm_wndSlider.SetPos (nPos);m_wndSpin.SetPos (nPos);}


/********************************************************************************   Slider的NM_CUSTOMDRAW訊息響應函數,當使用者拖動Slider時設定Progress和Spin的位置*********************************************************************************/void CCtrl4Dlg::OnCustomdrawSlider(NMHDR* pNMHDR, LRESULT* pResult) {// TODO: Add your control notification handler code here// 擷取Slider的當前位置int nPos = m_wndSlider.GetPos ();// 把擷取到的為之設定給Progress和Spinm_wndProgress.SetPos (nPos);m_wndSpin.SetPos (nPos);*pResult = 0;}


Demo:點擊開啟連結

   

 


vc 中怎使用 滑塊控制項與進度條控制項

BOOL CDlgDlg::OnInitDialog()
{
CDialog::OnInitDialog();

m_pro.SetRange(0,100);
m_slider.SetRange(0,100);

...
}

void CDlgDlg::OnReleasedcaptureSlider1(NMHDR* pNMHDR, LRESULT* pResult)
{
int iPos = m_slider.GetPos();
m_pro.SetPos(iPos);
*pResult = 0;
}
 
MFC中的滑塊控制項怎隨進度條一起動?

聯繫我們

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