VC++上机例题——滑动块,滚动条

滑动块

1.创建一个基于对话框的应用程序Ex_ctrlSDI
2.将“确定”按钮改名为“退出”,取消按钮与默认文本框按钮删除,添加控件x,将文本框按钮的ID改为IDC_text:

VC++上机例题——滑动块,滚动条_第1张图片
3.在MFC ClassWizard的Member Variables中为控件添加控件变量:
VC++上机例题——滑动块,滚动条_第2张图片
4.在MFC ClassWizard的Message Maps中为CEx_ctrlSDIDlg类添加WM_INITDIALOG消息映射,添加代码:

BOOL CEx_ctrlSDIDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add “About…” menu item to system menu.
m_sliderctrl.SetRange(-100,100);
m_sliderctrl.SetTicFreq(10);//10个刻度
}

5.为CEx_ctrlSDIDlg类中为IDC_SLIDER1添加NM_CUSTOMDRAW消息映射,添加代码:
void CEx_ctrlSDIDlg::OnCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
UpdateData();
m_text.Format("%d",m_sliderctrl.GetPos());
UpdateData(FALSE);
*pResult = 0;
}

6.运行结果:
VC++上机例题——滑动块,滚动条_第3张图片

滚动条

1.创建一个基于对话框的应用程序Ex_CtrlSDI
2.将“确定”按钮改名为“退出”,取消按钮与默认文本框按钮删除,添加控件,并将文本框按钮的ID改为IDC_text:

VC++上机例题——滑动块,滚动条_第4张图片
3.在MFC ClassWizard的Member Variables中为控件添加控件变量:
VC++上机例题——滑动块,滚动条_第5张图片
4.在MFC ClassWizard的Message Map中为CEx_ctrlSID1Dlg类添加WM_INITDIALOG,代码为:
BOOL CEx_ctrlSDI1Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add “About…” menu item to system menu.
m_scorllbar.SetScrollRange(0,100);
m_scorllbar.SetScorllPos(50);
m_text=50;
UpdateData(FALSE);

}

5.在MFC ClassWizard的Message Map中为CEx_ctrlSID1Dlg类添加WM_HSCROLL,代码为:

void CEx_ctrlSDI1Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
if(pScrollBar==&m_scorllbar){
int iNowPos;
switch(nSBCode){
case SB_LINELEFT:
iNowPos=m_scorllbar.GetScrollPos();
iNowPos=iNowPos-2;
m_scorllbar.SetScrollPos(iNowPos);
m_text.Format("%d",iNowPos);
break;
case SB_LINERIGHT:
iNowPos=m_scorllbar.GetScrollPos();
iNowPos=iNowPos+2;
m_scorllbar.SetScrollPos(iNowPos);
m_text.Format("%d",iNowPos);
break;
case SB_THUMBTRACK:
m_scorllbar.SetScrollPos(nPos);
m_text.Format("%d",nPos);
break;
}
}
UpdateData(FALSE);
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
6.运行结果:
VC++上机例题——滑动块,滚动条_第6张图片

你可能感兴趣的:(VC++)