資源描述:
《清華大學(xué)c++和vc++課件vc_3_13a》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、面向?qū)ο笈c可視化程序設(shè)計(jì)--VisualC++編程主講教師:唐龍教授(計(jì)算機(jī)科學(xué)與技術(shù)系)黃維通博士(計(jì)算機(jī)與信息管理中心)清華大學(xué)2001年10月6/11/20211第十三章滾動(dòng)條類及其應(yīng)用6/11/20212內(nèi)容提要滾動(dòng)條類簡(jiǎn)介滾動(dòng)條類控件的應(yīng)用6/11/20213§13.1.滾動(dòng)條類簡(jiǎn)介6/11/202141.滾動(dòng)條和滾動(dòng)條類滾動(dòng)條是可視化的交互式控件,它包括一個(gè)滑塊、滾動(dòng)條的兩端的按鈕等。兩種不同的滾動(dòng)條滾動(dòng)條控件——由用戶創(chuàng)建、管理和釋放的屬于窗口的滾動(dòng)條——由該窗口創(chuàng)建、管理和釋放的。作為任何一個(gè)窗口的子控件,滾動(dòng)條可以
2、通過通知代碼來創(chuàng)建,但也可以用對(duì)話框資源模板來創(chuàng)建。6/11/20215滾動(dòng)條類Cscrollbar是由CWnd類直接派生的。6/11/202162.CScrollBar類的創(chuàng)建與初始化關(guān)鍵字new和構(gòu)造函數(shù)CScrollBar::CScrollBar()為一個(gè)ScrollBar對(duì)象分配一個(gè)實(shí)例CScrollBar::pMyScroll=newCScrollBar;初始化CScrollBar對(duì)象,將一個(gè)Windows滾動(dòng)條賦予它,并用CScroll::Create()方法設(shè)置參數(shù)和樣式BOOLCreate(DWORDdwStyle,
3、//滾動(dòng)條窗口的樣式constRECT&rect,//表示控件的大小和位置CWnd*pParentWnd,//指向控件所屬窗口的指針UINTnID);//父窗口的標(biāo)識(shí)6/11/202173.滾動(dòng)條的設(shè)置調(diào)用CScrollBar::SetScrollRange()設(shè)置滾動(dòng)條控件范圍。例如,設(shè)置滾動(dòng)范圍為-100到100的垂直滾動(dòng)條pMyScroll->SetScrollRange(SB_VERT,-100,100);調(diào)用SetScrollPos()設(shè)置滾動(dòng)塊當(dāng)前位置。例如,滾動(dòng)快的位置在-100到100的中間,即為0的位置pMyScr
4、oller->SetScrollPos(0);6/11/20218§13.2.滾動(dòng)條類的應(yīng)用技術(shù)6/11/20219[例13-1]帶滾動(dòng)條類的應(yīng)用程序,其界面標(biāo)題為ApplicationofScrollBar,滾動(dòng)條的滾動(dòng)范圍設(shè)為0到20,當(dāng)前值為10,編輯框顯示當(dāng)前值。四個(gè)按鍵控制滾動(dòng)條動(dòng)作:?jiǎn)螕鬠p按鈕,滾動(dòng)塊移到最上邊,編輯框的數(shù)字變?yōu)?單擊Down按鈕,滾動(dòng)塊移到最下邊,編輯框的數(shù)字變?yōu)?0;單擊Reset按鈕,滾動(dòng)塊移到中間,編輯框的數(shù)字變?yōu)?0單擊Exit按鈕,退出應(yīng)用程序。6/11/202110單擊Up,滾動(dòng)塊移到最上
5、邊單擊Down,滾動(dòng)塊移到最下邊單擊Reset,滾動(dòng)塊移到中間,編輯框的數(shù)字為10單擊Exit,退出應(yīng)用程序單擊上/下的箭頭,滾動(dòng)塊向上/向下移動(dòng)一格,編輯框中的數(shù)字加1或減1拖動(dòng)滾動(dòng)塊。編輯框中的數(shù)字隨之變化單擊滾動(dòng)塊與箭頭之間的區(qū)域。滾動(dòng)塊上移或下移三格,編輯框中的數(shù)字加3或減3編輯框顯示當(dāng)前滾動(dòng)塊位置6/11/202111應(yīng)用程序的可視化編程應(yīng)用程序的代碼編程(1)給滾動(dòng)條連接變量ID變量名類別類型IDC_SCROLLBARm_ScrollbarControlCscrollbarIDC_EDITlm_EditControlCE
6、dit6/11/202112BOOLCSCROLLBARDlg::OnInitDialog(){CDialog::OnInitDialog();ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);//加“About...”菜單項(xiàng)。ASSERT(IDM_ABOUTBOX<0xF000);//IDM_ABOUTBOX應(yīng)在系統(tǒng)命令范圍內(nèi)CMenu*pSysMenu=GetSystemMenu(FALSE);if(pSysMenu!=NULL){CStringstrAboutMenu;strAboutMe
7、nu.LoadString(IDS_ABOUTBOX);if(!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);}}(2)初始化滾動(dòng)條6/11/202113//為該對(duì)話框設(shè)置圖標(biāo),當(dāng)該應(yīng)用程序的主窗口不是一個(gè)對(duì)話框時(shí),程序?qū)⒆詣?dòng)設(shè)置圖標(biāo)SetIcon(m_hIcon,TRUE);//SetbigiconSetIcon(m_hIcon,FALSE);/
8、/Setsmalliconm_Scrollbar.SetScrollRange(0,20);m_Scrollbar.SetScrollPos(10);charsPos[10];itoa(m_Scrollbar.GetScrollPos