Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14497245
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:52:28

下载本文示例代码
  滚动视窗在应用程序中十分有用,它可以使用户看到比显示器屏幕还大的窗口。下面有一个建立滚动视窗的实例,在该例中,不仅滚动条会与视窗相连,而且HOME、PAGE DOWN、PAGE UP和END方向键会与视窗相连。现将本例中需用到的函数和类作一些必要的说明。 CscrollView类: 它是从Cview类派生出来的,可以支持窗口的滚动。 GetsystemMetrics函数: 它是Window中的函数,可以返回Windows显示屏幕的高度和宽度。 OnCreate函数: 若Windows发送调用。每次应用要求创建一个窗口时,WM-CREATE消息都会被发送。在本例中,Onc WM-CREATE消息,在本例中,Oncreate函数完成一些字初始化操作,如:设置窗口的大小,页的大小和滚动行的大小。 SetScrollSizes 它是滚动视窗在初始阶段必要的CscrollView类的成员函数。   该程序的目的是建立一个三倍于屏幕的宽度和高度的大窗口,且有视窗的中央显示出一个大的矩形,视窗最大化时,用户只能看到矩形的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等方向键来观察它。   滚动视窗在应用程序中十分有用,它可以使用户看到比显示器屏幕还大的窗口。下面有一个建立滚动视窗的实例,在该例中,不仅滚动条会与视窗相连,而且HOME、PAGE DOWN、PAGE UP和END方向键会与视窗相连。现将本例中需用到的函数和类作一些必要的说明。 CscrollView类: 它是从Cview类派生出来的,可以支持窗口的滚动。 GetsystemMetrics函数: 它是Window中的函数,可以返回Windows显示屏幕的高度和宽度。 OnCreate函数: 若Windows发送调用。每次应用要求创建一个窗口时,WM-CREATE消息都会被发送。在本例中,Onc WM-CREATE消息,在本例中,Oncreate函数完成一些字初始化操作,如:设置窗口的大小,页的大小和滚动行的大小。 SetScrollSizes 它是滚动视窗在初始阶段必要的CscrollView类的成员函数。   该程序的目的是建立一个三倍于屏幕的宽度和高度的大窗口,且有视窗的中央显示出一个大的矩形,视窗最大化时,用户只能看到矩形的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等方向键来观察它。 下载本文示例代码


Visual C 中建立滚动视窗Visual C 中建立滚动视窗Visual C 中建立滚动视窗Visual C 中建立滚动视窗Visual C 中建立滚动视窗Visual C 中建立滚动视窗Visual C 中建立滚动视窗Visual C 中建立滚动视窗Visual C 中建立滚动视窗Visual C 中建立滚动视窗Visual C 中建立滚动视窗Visual C 中建立滚动视窗Visual C 中建立滚动视窗Visual C 中建立滚动视窗Visual C 中建立滚动视窗
阅读(117) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~