?? vcc36.htm
字號:
<html>
<head>
<title>c++系列</title>
<meta content="text/html; charset=gb2312" http-equiv=Content-Type>
</head>
<p align="center"><script src="../../1.js"></script></a>
<body bgcolor="#ffffff" leftmargin="5" topmargin="1" marginheight="5" marginwidth="5">
<div align=center>
<table border=0 cellpadding=0 cellspacing=0 width=680 align="center">
<tbody>
<tr>
<td width=200 height="59">
</tr>
</tbody>
</table>
<table border=1 bordercolordark=#ffffff bordercolorlight=#ffffff cellpadding=0
cellspacing=0 width=685 align="center" height="70">
<tbody>
<tr>
<td bgcolor=#F9D23C height=14>
<div align=center class=H1> <b><strong><font face="宋體" size="-1"><span class="unnamed1">Visual
C++中建立滾動視窗</span></font></strong></b></font></div>
</td>
</tr>
<tr valign=top>
<td class=H1 height=212>
<p align="center"><font color="#FF0000"><strong><font face="宋體" size="-1"> <br>
<span>2000-05-11· -·popcool開發(fā)專區(qū)</span></font></span></font></strong></font></p>
<p> <strong><font face="宋體" size="-1"> 滾動視窗在應用程序中十分有用,它可以使用戶看到比顯示器屏幕還大的窗口。下面有一個建立滾動視窗的實例,在該例中,不僅滾動條會與視窗相連,而且HOME、PAGE
DOWN、PAGE UP和END方向鍵會與視窗相連。現(xiàn)將本例中需用到的函數(shù)和類作一些必要的說明。<br>
</font></strong></span></font></p>
<table bgcolor="#6699cc" border="0" cellpadding="0" cellspacing="1" width="100%"
class="font">
<tr bgcolor="#ffffff">
<td width="30%">CscrollView類:</td>
<td width="70%">它是從Cview類派生出來的,可以支持窗口的滾動。</td>
</tr>
<tr bgcolor="#ffffff">
<td width="30%">GetsystemMetrics函數(shù):</td>
<td width="70%">它是Window中的函數(shù),可以返回Windows顯示屏幕的高度和寬度。</td>
</tr>
<tr bgcolor="#ffffff">
<td width="30%">OnCreate函數(shù):</td>
<td width="70%">若Windows發(fā)送調(diào)用。每次應用要求創(chuàng)建一個窗口時,WM-CREATE消息都會被發(fā)送。在本例中,Onc
WM-CREATE消息,在本例中,Oncreate函數(shù)完成一些字初始化操作,如:設(shè)置窗口的大小,頁的大小和滾動行的大小。</td>
</tr>
<tr bgcolor="#ffffff">
<td width="30%">SetScrollSizes</td>
<td width="70%">它是滾動視窗在初始階段必要的CscrollView類的成員函數(shù)。</td>
</tr>
</table>
<p> <strong><font face="宋體" size="-1"><br>
該程序的目的是建立一個三倍于屏幕的寬度和高度的大窗口,且有視窗的中央顯示出一個大的矩形,視窗最大化時,用戶只能看到矩形的1/9。通過滾動條或方向鍵,用戶寸可以見到它的全貌,以下是建立滾動視窗的步驟:<br>
1、運行AppWizard來創(chuàng)建EX例程,其中的Options選項設(shè)為lnital Toolbar和Generate Source
Comments。<br>
2、替換CEXCView類,用Visual Workbench的編輯器將ExView.h和ExView.cpp中所有的CVIEW替換成CScrollView。<br>
3、利用ClassWizard來加進對WM-CREATE和WM-KEYDOWN消息進行控制的函數(shù),CLassWizard能夠自動地生成Oncreate和OnkeyDown成員函數(shù)。<br>
4、對消息控制函數(shù)進行編輯。因為ClassWizard已經(jīng)自動地為我們生成了函數(shù)的框架,因此,用戶只需找到這些框架加入代碼即可。<br>
<br>
在OnCreate函數(shù)的returm-1語句后中加入代碼:<br>
CSize totalSize=CSize(::GetSystemMetrics(SM-CXSCREEN)*3,<br>
::GetSystemMetrics(SM-CYSCREEN)*3);<br>
CSize pageSize=CSize(totalSize.cx/3,totalSize.cy/3);<br>
CSize lineSize=CSize(totalSize.cx/100,totalSize.cy/100);<br>
SetScrollSizes(MM-TEXT,totalSize,pageSize,lineSize);<br>
<br>
在OnKeyDowm函數(shù)中加入代碼:<br>
switch(nChar){<br>
case VK-HOME:<br>
OnScroll(SB-VERT,SB-TOP,0);<br>
OnScroll(SB-HORZ,SB-TOP,0);<br>
break;<br>
case VDK-END:<br>
OnScroll(SB-VERT,SB-BOTTOM,0);<br>
break;<br>
case VK-UP:<br>
OnScroll(SB-VERT,SB-LINEUP,0);<br>
break;<br>
case VK-DOWN:<br>
OnScroll(SB-VERT,SB-LINEDOWN,0);<br>
break;<br>
case VK-PRIOR;<br>
OnScroll(SB-VERT,SB-PAGEUP,0);<br>
break;<br>
case VK-NEXT;<br>
OnScroll(SB-VERT,SB-PAGEDOWN,0);<br>
break;<br>
case VK-LEFT;<br>
OnScroll(SB-HORZ,SB-PAGEUP,0);<br>
break;<br>
case VK-RIGHT;<br>
OnScroll(SB-HORZ,SB-PAGEDOWN,0);<br>
break;<br>
default:<br>
break;<br>
}<br>
<br>
在OnDraw函數(shù)中加入以下代碼來代替OnDraw函數(shù)中原來的代碼:<br>
int x=::GetSystemMetrics(SM-CXSCREEN);<br>
int y=::GetSystemMetrics(SM-CYSCREEN);<br>
pDC->SelectStockObject(GRAY-BRUSH);<br>
pDC->Rectangle(CRect(x-300,y-300,x+300,y+300));<br>
5、創(chuàng)建,執(zhí)行程序,在Visual Workench中,在Project菜單中選擇Build,然后再選擇Execute,程序就會在滾動視窗中顯示一個大的正方形,用戶可以通過滾動條和HOME等方向鍵來觀察它。
</font></strong></span></font>
</td>
</tr>
</tbody>
</table>
</div>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -