【编程开发】AspAsp.NetCGIPHPJspXMLPERLC++C#VCVBDelphiPowerBuilderJAVA汇编数据库编程移动开发其它语言

您现在的位置:首页 > 网络学院 > 编程开发 > VC > Visual C++中建立滚动视窗

Visual C++中建立滚动视窗

来源: 作者: 日期:2006-08-14

【聚杰网VC】Visual C++中建立滚动视窗


  滚动视窗在应用程序中十分有用,它可以使用户看到比显示器屏幕还大的窗口。下面有一个建立滚动视窗的实例,在该例中,不仅滚动条会与视窗相连,而且HOME、PAGE DOWN、PAGE UP和END方向键会与视窗相连。现将本例中需用到的函数和类作一些必要的说明。

  该程序的目的是建立一个三倍于屏幕的宽度和高度的大窗口,且有视窗的中央显示出一个大的矩形,视窗最大化时,用户只能看到矩形的1/9。通过滚动条或方向键,用户寸可以见到它的全貌,以下是建立滚动视窗的步骤:
  1、运行AppWizard来创建EX例程,其中的Options选项设为lnital Toolbar和Generate Source Comments。
  2、替换CEXCView类,用Visual Workbench的编辑器将ExView.h和ExView.cpp中所有的CVIEW替换成CScrollView。
  3、利用ClassWizard来加进对WM-CREATE和WM-KEYDOWN消息进行控制的函数,CLassWizard能够自动地生成Oncreate和OnkeyDown成员函数。
  4、对消息控制函数进行编辑。因为ClassWizard已经自动地为我们生成了函数的框架,因此,用户只需找到这些框架加入代码即可。

  在OnCreate函数的returm-1语句后中加入代码:
CSize totalSize=CSize(::GetSystemMetrics(SM-CXSCREEN)*3,
::GetSystemMetrics(SM-CYSCREEN)*3);
CSize pageSize=CSize(totalSize.cx/3,totalSize.cy/3);
CSize lineSize=CSize(totalSize.cx/10 otalSize.cy/100);
SetScrollSizes(MM-TEXT,totalSize,pageSize,lineSize);

  在OnKeyDowm函数中加入代码:
switch(nChar){
case VK-HOME:
OnScroll(SB-VERT,SB-TOP,0);
OnScroll(SB-HORZ,SB-TOP,0);
break;
case VDK-END:
OnScroll(SB-VERT,SB-BOTTOM,0);
break;
case VK-UP:
OnScroll(SB-VERT,SB-LINEUP,0);
break;
case VK-DOWN:
OnScroll(SB-VERT,SB-LINEDOWN,0);
break;
case VK-PRIOR;
OnScroll(SB-VERT,SB-PAGEUP,0);
break;
case VK-NEXT;
OnScroll(SB-VERT,SB-PAGEDOWN,0);
break;
case VK-LEFT;
OnScroll(SB-HORZ,SB-PAGEUP,0);
break;
case VK-RIGHT;
OnScroll(SB-HORZ,SB-PAGEDOWN,0);
break;
default:
break;
}

  在OnDraw函数中加入以下代码来代替OnDraw函数中原来的代码:
int x=::GetSystemMetrics(SM-CXSCREEN);
int y=::GetSystemMetrics(SM-CYSCREEN);
pDC-$#@62;SelectStockObject(GRAY-BRUSH);
pDC-$#@62;Rectangle(CRect(x-300,y-300,x+300,y+300));
  5、创建,执行程序,在Visual Workench中,在Project菜单中选择Build,然后再选择Execute,程序就会在滚动视窗中显示一个大的正方形,用户可以通过滚动条和HOME等方向键来观察它。


评论   点击查看全部评论
您的评论参与,将为聚杰带来更大的动力!请不要吝啬!
快速回复
请使用文明语言让我们维护健康绿色网络环境!

匿名发表   验证码: