📄 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开发专区</span></font></span></font></strong></font></p>
<p> <strong><font face="宋体" size="-1"> 滚动视窗在应用程序中十分有用,它可以使用户看到比显示器屏幕还大的窗口。下面有一个建立滚动视窗的实例,在该例中,不仅滚动条会与视窗相连,而且HOME、PAGE
DOWN、PAGE UP和END方向键会与视窗相连。现将本例中需用到的函数和类作一些必要的说明。<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函数:</td>
<td width="70%">它是Window中的函数,可以返回Windows显示屏幕的高度和宽度。</td>
</tr>
<tr bgcolor="#ffffff">
<td width="30%">OnCreate函数:</td>
<td width="70%">若Windows发送调用。每次应用要求创建一个窗口时,WM-CREATE消息都会被发送。在本例中,Onc
WM-CREATE消息,在本例中,Oncreate函数完成一些字初始化操作,如:设置窗口的大小,页的大小和滚动行的大小。</td>
</tr>
<tr bgcolor="#ffffff">
<td width="30%">SetScrollSizes</td>
<td width="70%">它是滚动视窗在初始阶段必要的CscrollView类的成员函数。</td>
</tr>
</table>
<p> <strong><font face="宋体" size="-1"><br>
该程序的目的是建立一个三倍于屏幕的宽度和高度的大窗口,且有视窗的中央显示出一个大的矩形,视窗最大化时,用户只能看到矩形的1/9。通过滚动条或方向键,用户寸可以见到它的全貌,以下是建立滚动视窗的步骤:<br>
1、运行AppWizard来创建EX例程,其中的Options选项设为lnital Toolbar和Generate Source
Comments。<br>
2、替换CEXCView类,用Visual Workbench的编辑器将ExView.h和ExView.cpp中所有的CVIEW替换成CScrollView。<br>
3、利用ClassWizard来加进对WM-CREATE和WM-KEYDOWN消息进行控制的函数,CLassWizard能够自动地生成Oncreate和OnkeyDown成员函数。<br>
4、对消息控制函数进行编辑。因为ClassWizard已经自动地为我们生成了函数的框架,因此,用户只需找到这些框架加入代码即可。<br>
<br>
在OnCreate函数的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函数中加入代码:<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函数中加入以下代码来代替OnDraw函数中原来的代码:<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、创建,执行程序,在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 + -