制作含滾動(dòng)條應(yīng)用程序_第1頁(yè)
制作含滾動(dòng)條應(yīng)用程序_第2頁(yè)
制作含滾動(dòng)條應(yīng)用程序_第3頁(yè)
制作含滾動(dòng)條應(yīng)用程序_第4頁(yè)
制作含滾動(dòng)條應(yīng)用程序_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

制作含滾動(dòng)條應(yīng)用程序

滾動(dòng)條是一個(gè)交互式的、高度可視化的控件,它包括一個(gè)滑塊、滾動(dòng)條的兩端的按鈕等。滾動(dòng)條控件與屬于窗口的滾動(dòng)條是不一樣的處于窗口的滾動(dòng)條是由該窗口創(chuàng)建、管理和釋放的滾動(dòng)條控件是由用戶(hù)創(chuàng)建、管理和釋放的13.1滾動(dòng)條類(lèi)簡(jiǎn)介

作為任何一個(gè)窗口的子控件,滾動(dòng)條可以通過(guò)通知代碼來(lái)創(chuàng)建,但也可以用對(duì)話框資源模板來(lái)創(chuàng)建。創(chuàng)建與初始化滾動(dòng)條類(lèi)創(chuàng)建CScrollBar對(duì)象的一般步驟(1)用C++關(guān)鍵字new和構(gòu)造函數(shù)CScrollBar::CScrollBar()為一個(gè)ScrollBar對(duì)象分配一個(gè)實(shí)例(2)初始化CScrollBar對(duì)象,將一個(gè)Windows滾動(dòng)條賦予它,并用CScroll::Create()方法設(shè)置參數(shù)和樣式分配一個(gè)滾動(dòng)條控件對(duì)象并返回指向該對(duì)象的指針CScrollBar::pMyScroll=newCScrollBar調(diào)用CScrollBar::Create()方法初始化指針BOOLCreate(DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,UINTnID);滾動(dòng)條窗口的樣式表示控件的大小和位置指向控件所屬窗口的指針父窗口與滾動(dòng)條通信的標(biāo)識(shí)在設(shè)置滾動(dòng)條控件時(shí),要通過(guò)CScrollBar::SetScrollRange()設(shè)置其范圍。例如,設(shè)置滾動(dòng)范圍為-100到100的垂直滾動(dòng)條:pMyScroll->SetScrollRange(SB_VERT,-100,100);在設(shè)置了范圍后,還要通過(guò)SetScrollPos()設(shè)置滾動(dòng)塊當(dāng)前位置。例如,滾動(dòng)塊的位置在-100到100的中間,即為0的位置:pMyScroller->SetScrollPos(0);標(biāo)題為ApplicationofScrollBar滾動(dòng)條的滾動(dòng)范圍設(shè)為0到20單擊滾動(dòng)塊與箭頭之間的區(qū)域。滾動(dòng)塊上移或下移三格,編輯框中的數(shù)字加3或減3單擊向上或向下的箭頭,滾動(dòng)塊向上或向下移動(dòng)一格,編輯框中的數(shù)字加1或減1按住滾動(dòng)塊上下拖動(dòng),編輯框中的數(shù)字隨之變化當(dāng)前值為10單擊Up按鈕,滾動(dòng)塊移到最上邊,編輯框的數(shù)字變?yōu)?單擊Down按鈕,滾動(dòng)塊移到最下邊,編輯框的數(shù)字變?yōu)?0單擊Reset按鈕,滾動(dòng)塊移到中間,編輯框的數(shù)字變?yōu)?0單擊Exit按鈕,退出應(yīng)用程序13.2滾動(dòng)條類(lèi)編程實(shí)例

1.應(yīng)用程序的可視化編程部分2.應(yīng)用程序的代碼編程部分(1)給滾動(dòng)條連接變量ID 變量名

類(lèi)別

類(lèi)型

IDC_SCROLLBAR m_Scrollbar Control Cscrollbar IDC_EDITl m_Edit Control CEditBOOLCSCROLLBARDlg::OnInitDialog(){CDialog::OnInitDialog();//將“About...”菜單項(xiàng)加入到系統(tǒng)菜單中。

//IDM_ABOUTBOX必須在系統(tǒng)命令范圍內(nèi)。

ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX<0xF000);CMenu*pSysMenu=GetSystemMenu(FALSE);if(pSysMenu!=NULL){CStringstrAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if(!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);}}(2)初始化滾動(dòng)條//為該對(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); //Setsmalliconm_Scrollbar.SetScrollRange(0,20);m_Scrollbar.SetScrollPos(10);charsPos[10];itoa(m_Scrollbar.GetScrollPos(),sPos,10);//數(shù)值轉(zhuǎn)成字符

m_Edit.SetSel(0,-1);m_Edit.ReplaceSel(sPos);UpdateData(FALSE);returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}(3)給滾動(dòng)條消息添加代碼voidCSCROLLBARDlg::OnVScroll(UINTnSBCode,UINTnPos,CScrollBar*pScrollBar){charsPos[10];intiNowPos;switch(nSBCode){if(pScrollBar==&m_Scrollbar){caseSB_THUMBTRACK: //拖動(dòng)滾動(dòng)滑塊時(shí)

m_Scrollbar.SetScrollPos(nPos); itoa(nPos,sPos,10); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel(sPos);break;caseSB_LINEDOWN: //單擊滾動(dòng)條向下的箭頭

iNowPos=m_Scrollbar.GetScrollPos(); iNowPos=iNowPos+1; if(iNowPos>20)iNowPos=20; m_Scrollbar.SetScrollPos(iNowPos); itoa(m_Scrollbar.GetScrollPos(),sPos,10); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel(sPos);break;caseSB_LINEUP: //單擊滾動(dòng)條向上的箭頭

iNowPos=m_Scrollbar.GetScrollPos(); iNowPos=iNowPos-1; if(iNowPos<0) iNowPos=0; m_Scrollbar.SetScrollPos(iNowPos); itoa(m_Scrollbar.GetScrollPos(),sPos,10); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel(sPos);break; caseSB_PAGEDOWN: //單擊滾動(dòng)條下面的箭頭與滾動(dòng)塊之間的區(qū)域

iNowPos=m_Scrollbar.GetScrollPos(); iNowPos=iNowPos+3; if(iNowPos>20) iNowPos=20; m_Scrollbar.SetScrollPos(iNowPos); itoa(m_Scrollbar.GetScrollPos(),sPos,10); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel(sPos); break;caseSB_PAGEUP: //單擊滾動(dòng)條上面的箭頭與滾動(dòng)塊之間的區(qū)域

iNowPos=m_Scrollbar.GetScrollPos(); iNowPos=iNowPos-3; if(iNowPos<0) iNowPos=0; m_Scrollbar.SetScrollPos(iNowPos); itoa(m_Scrollbar.GetScrollPos(),sPos,10); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel(sPos); break; }}CDialog::OnVScroll(nSBCode,nPos,pScrollBar);}(4)給Exit按鈕連接代碼voidCSELECTBOXDlg::OnExitButton(){ //在此處加入控件通知句柄代碼

//編寫(xiě)代碼開(kāi)始

OnOK(); //編寫(xiě)代碼結(jié)束}(5)給Up按鈕添代碼voidCSCROLLBARDlg::OnUpButton(){ //TODO:在此處加入控件通知句柄代碼

//代碼編寫(xiě)開(kāi)始

m_Scrollbar.SetScrollPos(0); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel("0"); //代碼編寫(xiě)結(jié)束}(6)給Down按鈕添加代碼voidCSCROLLBARDlg::OnDownButton(){ //TODO:在此處加入通知句柄代碼

m_Scrollbar.SetScrollPos(20); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel("20");}(7)給Reset按鈕添加代碼voidCSCROLLBARDlg::OnResetButton(){ //TODO:在此處加入通知句柄代碼

m_Scrollbar.SetScrollPos(10); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel("10");}(8)將編輯框設(shè)置為只讀在ApplicationofSELECTINGBOX應(yīng)用程序中,編輯框只是有于顯示滾動(dòng)塊的位置,不需要進(jìn)行編輯,由因此必須將其屬性改為只讀。創(chuàng)建如圖界面,單擊“開(kāi)始”按鈕時(shí),按照順序執(zhí)行各項(xiàng)操作,在執(zhí)行完的操作前加對(duì)號(hào)標(biāo)志,在正在進(jìn)行的操作前加箭頭標(biāo)志。(1)AppWizard-->AppWizardStep1-->Dialogbased-->其余默認(rèn)(2)打開(kāi)對(duì)話框編輯器-->將“確定”和“取消”通過(guò)Properties“開(kāi)始”和“退出”,-->將“確定”按鈕ID改為ID_BEGIN(3)在Control工具條上選Picture按鈕〉創(chuàng)建一個(gè)空的圖片框--〉Insert菜單--〉Resource菜單項(xiàng)--〉在Resourcetype框中選中Bitmap選項(xiàng)--〉Import--〉加入bmp文件--〉在Properties中的type中選位圖--〉接受默認(rèn)的ID值--〉圖片框中出現(xiàn)位圖(4)在Control工具條中選擇ListControl按鈕〉畫(huà)一個(gè)列表框控件--〉在其上單擊鼠標(biāo)右鍵選擇Property菜單項(xiàng)--〉將ID改為IDC_LISTCTRL1,注意還要選中Disabled選項(xiàng)(5)在Control工具條中選擇Progress按鈕-->畫(huà)一個(gè)進(jìn)度條控件--〉在其上單擊鼠標(biāo)右鍵選擇Property菜單項(xiàng)--〉將ID改為IDC_PROGRESS1,注意還要選中Disabled選項(xiàng)。(6)Insert菜單-->Resource菜單項(xiàng)-->Resourcetype列表框中的Icon項(xiàng)-->單擊Import按鈕-->加入Res文件夾中的arrow.ico,empty.ico,finished.ico三個(gè)文件-->將ID值改為IDI_ICON_ARROW,IDI_ICON_EMPTY,IDI_ICON_FINISHED

給控件連接的變量控件ID 變量類(lèi)型 變量名 IDC_LISTCTRL1 ClistCtrl m_ListCtrl1 IDC_PROGRESS1 CprogressCtrl m_Progress

加入的變量變量類(lèi)型 變量名 說(shuō)明 HICON hIcon[7] 存儲(chǔ)圖像列表中各圖標(biāo)句柄的數(shù)組CString ProcName[7] 存儲(chǔ)列表控件中字符信息 CImageList m_ImageList 圖像列表對(duì)象 int m_nCurProc 當(dāng)前操作過(guò)程的號(hào)碼 int m_nProgress 進(jìn)度條的位置ClassView卡-->在13_5Dlg類(lèi)上單擊鼠標(biāo)右鍵-->Addmembervariable打開(kāi)13_5Dlg.cpp文件,在構(gòu)造函數(shù)中加入初始化變量的代碼:

//初始化變量

m_nCurProc=1; m_nProgress=0; //列表框中的操作的名稱(chēng)

ProcName[0]=""; ProcName[1]="CheckingPartitionTable"; ProcName[2]="CheckingBootRecord"; ProcName[3]="Checking"; ProcName[4]="CheckingDirectories"; ProcName[5]="CheckingCompressedDisks"; ProcName[6]="CheckingDiskSurface";在初始化函數(shù)OnInitDialog()中加入代碼:intn;m_ImageList.Create(16,16,0,7,7);//創(chuàng)建圖像列表對(duì)象,圖標(biāo)大小為16×16hIcon[0]=AfxGetApp()->LoadIcon(IDI_ICON_ARROW); //加載圖標(biāo)hIcon[1]=AfxGetApp()->LoadIcon(IDI_ICON_EMPTY);hIcon[2]=AfxGetApp()->LoadIcon(IDI_ICON_EMPTY);hIcon[3]=AfxGetApp()->LoadIcon(IDI_ICON_EMPTY);hIcon[4]=AfxGetApp()->LoadIcon(IDI_ICON_EMPTY);hIcon[5]=AfxGetApp()->LoadIcon(IDI_ICON_EMPTY);hIcon[6]=AfxGetApp()->LoadIcon(IDI_ICON_EMPTY);for(n=0;n<7;n++){ m_ImageList.Add(hIcon[n]); //將圖標(biāo)加入圖像列表}//在列表控件中加入圖象列表m_ListCtrl1.SetImag

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論