论文部分内容阅读
[摘要] 借助VFP的表单和VC++的对话框工具进行标题动画设计,帮助初学者快速掌握VFP表单、VC++对话框设计技巧。
[关键字] VFP,VC++,标题动画,表单,对话框
[Abstract] This paper details a example for motion text effect in VFP Form and VC++ Dialog,which is helpful for a beginner.
[Key Words] VFP VC++ Motion Text Effect Form Dialog
引言
1989年,FOX软件公司开发了FoxBASE+的后续产品——FoxPro.1992年美国微软公司收购了FOX公司,1993年推出了FoxPro for Windows(2.5版),1995年,微软公司首次将可视化程序设计引入了FoxPro,并将其新版本取名为visual FoxPro 3.0,简称VFP3.0。到1998年VFP推出了6.0版。VFP 6.0具有强大的查询与管理功能,引入了数据库表的新概念,扩大了对SQL语言的支持,大量使用可视化的界面操作工具,支持面向对象的程序设计,通过OLE实现应用集成,支持网络应用等特点。Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。
VFP和VC在进行可视化界面设计时既有相似又有本质的不同,本文通过标题文本动画窗口的设计来感受它们之间的差异。
一、标题动画在VFP表单中的设计
在使用VFP 所开发的应用程序中,表单是主要的用户界面。利用它,用户可进行各种原始数据的输入、修改及删除等维护操作,同时表单也是除菜单以外的用户可以对系统发出各种命令、可与系统进行人机交互的主要窗口。在VFP 表单的设计过程中,虽然可以移植其它应用程序所创动画效果的控件,如OLE 容器控件和OLE 绑定型控件,但受电脑中已安装软件种类的限制,利用这两个控件设计动画效果有一定困难。因此下面介绍Timer 控件在表单动画设计中的应用。
1.1界面设计
表单中有三个按钮控件,一个标签控件,一个计时器控件,控件在表单中的位置如图1.1所示
图 1.1
单击“开始动画”按钮,文本自左向右滚动,当文本的最右端滚动出窗体的左边界时,文本的左端在窗体的右边界出现,并向左移动;单击“停止动画”按钮,文本静止在窗体上;单击“退出”按钮,释放表单,运行结束。
1.2控件属性和代码设置
各个控件的属性设置及事件代码如下:
标签控件:Lable2
属性名 属性值
Caption “欢迎使用本程序”
Autosize .T.
Backstyle 0
Alignment 2
Fontname “华文行楷”
Fontsize 36
按钮控件:command1
属性名 属性值
Caption “开始动画”
Click事件代码如下:
thisform.timer1.enabled=.t.
按钮控件:command2
属性名 属性值
Caption “退出”
Click事件代码如下:
thisform. Release
按钮控件:command3
属性名 属性值
Caption “停止动画”
Click事件代码如下:
thisform.timer1.enabled=.f.
计时器控件:timer1
属性名 属性值
interval 100
timer事件代码如下:
thisform. label2. left = thisform. label2. left - 3
if thisform. label2. left + thisform.label2.width < 0
thisform. label2. left = thisform.width
Endif
1.3运行结果
程序运行结果如图1.2和1.3
图 1.2图 1.3
二、标题动画在VC++对话框中的设计
2.1使用AppWizard创建一个基于对话框的MFC应用程序,设置工程名为Dialog
对于基于MFC的应用程序,程序的执行都是从调用CWinApp派生类的InitInstance()方法开始的,然后创建窗口或线程,处理Windows消息并继续程序的执行。
在工程(Project)选项卡中选中MFC AppWizard[exe],工程名(Project name)为Dialog,将保存位置定位至将要存放该应用程序的文件夹,例如Q:VISUAL C++实验10,按确定(OK)。在向导第一步中选择基于对话框(Dialog based),直接按完成(Finish)就可以建立一个名称为“Dialog”的工程,该工程下包含三个类:CAboutDlg, CDialogApp, CDialogDlg。其中,CDialogApp是最重要的一个类。
2.2 设置控件属性及布局
添加一个“静态文本”控件和一个“按钮”控件,控件和对话框的属性如表1.1所示
表1. 1
控件 ID 标题 属性
对话框 IDD_DIALOG_DIALOG 标题动画 默认
静态文本 IDC_STATIC1 -- 显示,CENTER,TRANSPARENT
按钮 IDOK 开始动画 默认
按钮 IDCANCEL 退出 默认
按钮 IDC_BUTTON1 停止动画 默认
布局如图2.1所示
图 2.1
2.3创建类成员变量和消息影射函数
1)为static控件关联一个control变量m_ctlMove;
2)为CdialogDlg类添加成员变量int x,int y;分别表示static控件左上角的横坐标和纵坐标;
3)为CdialogDlg类添加成员变量Cfont m_Font;
4)使用ClassWizard为对话框CdialogDlg添加WM_INITDIALOG消息处理函数OnInitDialog(),添加WM_TIMER的消息处理函数OnTimer();
5)为按钮IDC_BUTTON1增加BN_CLICKED的消息映射函数Onbutton1()。
2.4代码设置
在函数BOOL CDialogDlg::OnInitDialog()中添加如下代码
CDialogDlg::x=0;
CDialogDlg::y=40;
m_ctlMove.SetWindowText(“欢迎使用本程序”);
m_Font.CreatePointFont(400 , “华文行楷”);
m_ctlMove.SetFont(&m_Font,TRUE);
在函数void CDialogDlg::OnTimer(UINT nIDEvent)中添加如下代码
x+=5;
m_ctlMove.SetWindowPos(NULL,x,y,0,0,SWP_NOSIZE);
CRect rect;
GetClientRect(&rect);
if(x>rect.Width())
x=-100;
在函数void CDialogDlg::Onbutton() 中添加如下代码
SetTimer(1,100,NULL);
在函数void CDialogDlg::OnButton1()中添加如下代码
KillTimer(1);
2.5运行结果如图2.2,2.3所示
图2. 2 图2. 3
三、结束语
Visual Foxpro中提供了强有力的表单设计手段,用户通过可视化的设计方法,能够方便地定义表单中的各种对象、对象的属性、对象的方法。学习掌握了表单的设计方法后,将对Visual Foxpro的功能以及面向对象的方法有一个更直观的认识。在MFC中,CWnd类是所有窗口和子控件的基类,MFC中的对话框存储在资源文件中,在那里它们的布局和内容都是用一种单独的语言来进行描述的;在MFC中,能够开发SDI(单文档界面)、MDI(多文档界面)和基于对话框的应用程序,而且用来开发MDI、SDI和基于对话框的应用程序的类都各不相同。对话框是程序中一个常见的用户界面元素。它是Windows应用程序的一种资源。MFC提供了大量的控件类,通过这些控件类,可以方便地创建控件。所有的控件类都是CWnd类的直接或间接派生类。控件通过向父窗口发送控件通知消息来表明发生了某种事件。利用ClassWizard可以很容易地为控件通知消息加入消息映射和消息处理函数。通过标题动画的设计有助于学习表单设计和对话框及控件的学习。
参考文献:
[1] 杨正翔.动画效果在VFP 表单中的设计[J]. 南京工业职业技术学院学报,第3 卷第4 期.
[2] 刘卫国.Visual Foxpro 程序设计教程[M] . 北京:北京邮电大学出版社,2005.
[3] 郑阿奇.Visual C++实用教程[M].北京:电子工業出版社,2006.
[关键字] VFP,VC++,标题动画,表单,对话框
[Abstract] This paper details a example for motion text effect in VFP Form and VC++ Dialog,which is helpful for a beginner.
[Key Words] VFP VC++ Motion Text Effect Form Dialog
引言
1989年,FOX软件公司开发了FoxBASE+的后续产品——FoxPro.1992年美国微软公司收购了FOX公司,1993年推出了FoxPro for Windows(2.5版),1995年,微软公司首次将可视化程序设计引入了FoxPro,并将其新版本取名为visual FoxPro 3.0,简称VFP3.0。到1998年VFP推出了6.0版。VFP 6.0具有强大的查询与管理功能,引入了数据库表的新概念,扩大了对SQL语言的支持,大量使用可视化的界面操作工具,支持面向对象的程序设计,通过OLE实现应用集成,支持网络应用等特点。Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。
VFP和VC在进行可视化界面设计时既有相似又有本质的不同,本文通过标题文本动画窗口的设计来感受它们之间的差异。
一、标题动画在VFP表单中的设计
在使用VFP 所开发的应用程序中,表单是主要的用户界面。利用它,用户可进行各种原始数据的输入、修改及删除等维护操作,同时表单也是除菜单以外的用户可以对系统发出各种命令、可与系统进行人机交互的主要窗口。在VFP 表单的设计过程中,虽然可以移植其它应用程序所创动画效果的控件,如OLE 容器控件和OLE 绑定型控件,但受电脑中已安装软件种类的限制,利用这两个控件设计动画效果有一定困难。因此下面介绍Timer 控件在表单动画设计中的应用。
1.1界面设计
表单中有三个按钮控件,一个标签控件,一个计时器控件,控件在表单中的位置如图1.1所示
图 1.1
单击“开始动画”按钮,文本自左向右滚动,当文本的最右端滚动出窗体的左边界时,文本的左端在窗体的右边界出现,并向左移动;单击“停止动画”按钮,文本静止在窗体上;单击“退出”按钮,释放表单,运行结束。
1.2控件属性和代码设置
各个控件的属性设置及事件代码如下:
标签控件:Lable2
属性名 属性值
Caption “欢迎使用本程序”
Autosize .T.
Backstyle 0
Alignment 2
Fontname “华文行楷”
Fontsize 36
按钮控件:command1
属性名 属性值
Caption “开始动画”
Click事件代码如下:
thisform.timer1.enabled=.t.
按钮控件:command2
属性名 属性值
Caption “退出”
Click事件代码如下:
thisform. Release
按钮控件:command3
属性名 属性值
Caption “停止动画”
Click事件代码如下:
thisform.timer1.enabled=.f.
计时器控件:timer1
属性名 属性值
interval 100
timer事件代码如下:
thisform. label2. left = thisform. label2. left - 3
if thisform. label2. left + thisform.label2.width < 0
thisform. label2. left = thisform.width
Endif
1.3运行结果
程序运行结果如图1.2和1.3
图 1.2图 1.3
二、标题动画在VC++对话框中的设计
2.1使用AppWizard创建一个基于对话框的MFC应用程序,设置工程名为Dialog
对于基于MFC的应用程序,程序的执行都是从调用CWinApp派生类的InitInstance()方法开始的,然后创建窗口或线程,处理Windows消息并继续程序的执行。
在工程(Project)选项卡中选中MFC AppWizard[exe],工程名(Project name)为Dialog,将保存位置定位至将要存放该应用程序的文件夹,例如Q:VISUAL C++实验10,按确定(OK)。在向导第一步中选择基于对话框(Dialog based),直接按完成(Finish)就可以建立一个名称为“Dialog”的工程,该工程下包含三个类:CAboutDlg, CDialogApp, CDialogDlg。其中,CDialogApp是最重要的一个类。
2.2 设置控件属性及布局
添加一个“静态文本”控件和一个“按钮”控件,控件和对话框的属性如表1.1所示
表1. 1
控件 ID 标题 属性
对话框 IDD_DIALOG_DIALOG 标题动画 默认
静态文本 IDC_STATIC1 -- 显示,CENTER,TRANSPARENT
按钮 IDOK 开始动画 默认
按钮 IDCANCEL 退出 默认
按钮 IDC_BUTTON1 停止动画 默认
布局如图2.1所示
图 2.1
2.3创建类成员变量和消息影射函数
1)为static控件关联一个control变量m_ctlMove;
2)为CdialogDlg类添加成员变量int x,int y;分别表示static控件左上角的横坐标和纵坐标;
3)为CdialogDlg类添加成员变量Cfont m_Font;
4)使用ClassWizard为对话框CdialogDlg添加WM_INITDIALOG消息处理函数OnInitDialog(),添加WM_TIMER的消息处理函数OnTimer();
5)为按钮IDC_BUTTON1增加BN_CLICKED的消息映射函数Onbutton1()。
2.4代码设置
在函数BOOL CDialogDlg::OnInitDialog()中添加如下代码
CDialogDlg::x=0;
CDialogDlg::y=40;
m_ctlMove.SetWindowText(“欢迎使用本程序”);
m_Font.CreatePointFont(400 , “华文行楷”);
m_ctlMove.SetFont(&m_Font,TRUE);
在函数void CDialogDlg::OnTimer(UINT nIDEvent)中添加如下代码
x+=5;
m_ctlMove.SetWindowPos(NULL,x,y,0,0,SWP_NOSIZE);
CRect rect;
GetClientRect(&rect);
if(x>rect.Width())
x=-100;
在函数void CDialogDlg::Onbutton() 中添加如下代码
SetTimer(1,100,NULL);
在函数void CDialogDlg::OnButton1()中添加如下代码
KillTimer(1);
2.5运行结果如图2.2,2.3所示
图2. 2 图2. 3
三、结束语
Visual Foxpro中提供了强有力的表单设计手段,用户通过可视化的设计方法,能够方便地定义表单中的各种对象、对象的属性、对象的方法。学习掌握了表单的设计方法后,将对Visual Foxpro的功能以及面向对象的方法有一个更直观的认识。在MFC中,CWnd类是所有窗口和子控件的基类,MFC中的对话框存储在资源文件中,在那里它们的布局和内容都是用一种单独的语言来进行描述的;在MFC中,能够开发SDI(单文档界面)、MDI(多文档界面)和基于对话框的应用程序,而且用来开发MDI、SDI和基于对话框的应用程序的类都各不相同。对话框是程序中一个常见的用户界面元素。它是Windows应用程序的一种资源。MFC提供了大量的控件类,通过这些控件类,可以方便地创建控件。所有的控件类都是CWnd类的直接或间接派生类。控件通过向父窗口发送控件通知消息来表明发生了某种事件。利用ClassWizard可以很容易地为控件通知消息加入消息映射和消息处理函数。通过标题动画的设计有助于学习表单设计和对话框及控件的学习。
参考文献:
[1] 杨正翔.动画效果在VFP 表单中的设计[J]. 南京工业职业技术学院学报,第3 卷第4 期.
[2] 刘卫国.Visual Foxpro 程序设计教程[M] . 北京:北京邮电大学出版社,2005.
[3] 郑阿奇.Visual C++实用教程[M].北京:电子工業出版社,2006.