步骤/方法
1利用组件库中的Splash Screen组件生成Splash1.cpp 和Splash1.h 这两个文件(也就是基于框架类的应用程序添加启动画面的步骤)
(1)用Photoshop等制作启动画面图像,保存为bmp格式。
(2)用Appwizard建一个基于单文档的工程Splash。
(3)在资源中插入位图资源
打开VC++的资源编辑器,用鼠标右键单击枝竖Resources文件夹,选择Import命令,插入所制作的位图。如果位图超过256色,VC会d出一个对话框,提示位图已经插入但不能在位图编辑器中显示,确定即可。将位图ID改为IDB_SPLASH。
(4)添加Splash Screen控件
①选择菜单“project”/“Add To Project”/“Conponents and Controls”打开对话框,在列表框中双击“Visual C++ Conponents”选项,选择“Splash Screen”控件,然后单击“Insert”。
②确认或修改类名和位图资源ID,单击OK确认。
③编译、连接,漂亮的启动画面就显示出来了。
(5)如果需要改变启动画面的停留时间,就修改SetTimer()函数的第二个参数,默认是750 毫秒。该函数所在位置:
int CSplashWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...
// Set a timer to destroy the splash screen.
SetTimer(1, 2000, NULL)//修改第二个参数以调整画面停留时间
return 0
}
这样就生成了Splash1.cpp 和Splash1.h 这两个文件
2制作基于对话框的应用程序启动画面
(1)建立基于对话框的工程Cover。
(2)文件移植
①将Splash1.cpp 和Splash1.h 两个文件从步骤一建立的工程拷贝到Cover工程中,并且分别加入到Source Files和Header Files中;
②导入位图文件到工程的资源中,改ID为IDB_SPLASH。
(3)修改代码,实现启动画面的调用
①添加CCoverApp 的InitInstance() 函数代码
#include "Splash1.h" //加在Cover.cpp文件带液的头文件调用部位
BOOL CCoverApp::InitInstance()
{
CCommandLineInfo cmdInfo
ParseCommandLine(cmdInfo)
CSplashWnd::EnableSplashScreen(cmdInfo.m_bShowSplash)
...
}
②使用ClassWizard 添加OnCreate() 函数到对话框类CCoverDlg中,并修改代码#include "Splash1.h" //加在CoverDlg.cpp文件的头文件调用部位
int CCoverDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
蠢搭物 {
...
CSplashWnd::ShowSplashScreen(this)//显示启动画面
...
}
3使得启动画面消失后再显示主程序
①在CCoverDlg类中添加WM_TIMER消息响应函数
void CCoverDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
this->MoveWindow(300,300,600,400)
CDialog::OnTimer(nIDEvent)
}
② 在intCCoverDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)中添加如下代码:
CSplashWnd::ShowSplashScreen(this)
this->MoveWindow(0,0,0,0)
this->SetTimer(1,2000,NULL)//注意这个2000一点要等于步骤1中的2000
return 0
③在void CCoverDlg::OnPaint()的末尾添加如下代码:
this->KillTimer(1)
要调用库里的有关绘图的函数(子程序).例如:
(1) 调用新开一个绘图窗函数,设窗的原点在x0,y0,宽度w,高度h
(2) 调用建一支画笔函数,设颜色红绿蓝数值,设笔的粗细
(3) 调用画直线,或画曲线,或画椭圆线,或画多边型...之类的函数.
立体图要调OpenGL绘图函数.
(4) 调用画字函数耐桥写字,调用音乐函数播音.
(5) 检测鼠标和键盘键状态,决定程序转向,程序结束.
(6) 调用刷新绘图窗函数
(7) 画第二幅图
(8) 啊啊啊,一幅一幅的画,一幅一幅的刷新,当然要控制刷新的时间间隔.一秒25幅,就是好的电影,好的游戏.
答匿名:画图原理就是一笔一笔。例如画一个机器人,先把机器身体离散成空间点[xi,yi,zi],然后画一个一个小三角形。当然,空间点是一个数组,小三角的三个顶点[n1,n2,n3]也是数组。用一个循环语句就画出来了。画唐老鸭同画机器滑数人完全一样,只要把数组里的数据变唐老鸭的空间离散点。没什么难的。画一个三角形同画一万个三角形,程序上没多大差别。昌让猛
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)