全屏幕窗口的创建实验报告

全屏幕窗口的创建实验报告

ID:35244962

大小:61.50 KB

页数:8页

时间:2019-03-22

上传者:U-25932
全屏幕窗口的创建实验报告_第1页
全屏幕窗口的创建实验报告_第2页
全屏幕窗口的创建实验报告_第3页
全屏幕窗口的创建实验报告_第4页
全屏幕窗口的创建实验报告_第5页
资源描述:

《全屏幕窗口的创建实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

实验四实验报告课程:全屏幕窗口的创建班级:2010级远程教育班专业:教育技术学(远程教育方向)实验人:XXX学号:实验时间:实验室:数字媒体实验室指导老师:XXX一、实验目的1.熟悉窗口基本创建;2.学会对窗口模式改为全屏模式;3.熟悉全屏窗口的创建;二、实验任务1.创建全屏窗口模式;三、实验过程1.源代码为:#include#include #include//definethescreenresolution(定义屏幕分辨率)#defineSCREEN_WIDTH800#defineSCREEN_HEIGHT600//includetheDirect3DLibraryfile#pragmacomment(lib,"d3d9.lib")//globaldeclarationsLPDIRECT3D9d3d;//thepointertoourDirect3DinterfaceLPDIRECT3DDEVICE9d3ddev;//thepointertothedeviceclass//functionprototypesvoidinitD3D(HWNDhWnd);//setsupandinitializesDirect3D(建立和初始化装置)voidrender_frame(void);//rendersasingleframevoidcleanD3D(void);//closesDirect3Dandreleasesmemory//theWindowProcfunctionprototypeLRESULTCALLBACKWindowProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam);//theentrypointforanyWindowsprogram(入口点的任何窗口程序)intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine, intnCmdShow){HWNDhWnd;WNDCLASSEXwc;ZeroMemory(&wc,sizeof(WNDCLASSEX));wc.cbSize=sizeof(WNDCLASSEX);wc.style=CS_HREDRAW|CS_VREDRAW;wc.lpfnWndProc=WindowProc;wc.hInstance=hInstance;wc.hCursor=LoadCursor(NULL,IDC_ARROW);WS_EX_TOPMOST|WS_POPUP为全屏模式,WS_OVERLAPPEDWINDOW为窗口模式//wc.hbrBackground=(HBRUSH)COLOR_WINDOW;//notneededanymorewc.lpszClassName=L"WindowClass";RegisterClassEx(&wc);hWnd=CreateWindowEx(NULL,L"WindowClass",L"OurDirect3DProgram",WS_EX_TOPMOST|WS_POPUP,//全屏模式的代码0,0,//thestartingxandypositionsshouldbe0SCREEN_WIDTH,SCREEN_HEIGHT,//setthewindowto640x480(设置窗口为×)NULL, NULL,hInstance,NULL);ShowWindow(hWnd,nCmdShow);//setupandinitializeDirect3DinitD3D(hWnd);//enterthemainloop:MSGmsg;while(TRUE){while(PeekMessage(&msg,NULL,0,0,PM_REMOVE)){TranslateMessage(&msg);DispatchMessage(&msg);}if(msg.message==WM_QUIT)break;render_frame();}//cleanupDirectXandCOMcleanD3D();returnmsg.wParam; }//thisisthemainmessagehandlerfortheprogram(这是主要的消息处理程序)LRESULTCALLBACKWindowProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam){switch(message){caseWM_DESTROY:{PostQuitMessage(0);return0;}break;}returnDefWindowProc(hWnd,message,wParam,lParam);}//thisfunctioninitializesandpreparesDirect3Dforuse(该函数初始化和准备使用的装置)voidinitD3D(HWNDhWnd){d3d=Direct3DCreate9(D3D_SDK_VERSION);//createtheDirect3Dinterface D3DPRESENT_PARAMETERSd3dpp;//createastructtoholdvariousdeviceinformation把TRUE改为FALSEZeroMemory(&d3dpp,sizeof(d3dpp));//clearoutthestructforused3dpp.Windowed=FALSE;//programfullscreen,notwindowedd3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;//discardoldframesd3dpp.hDeviceWindow=hWnd;//setthewindowtobeusedbyDirect3Dd3dpp.BackBufferFormat=D3DFMT_X8R8G8B8;//setthebackbufferformatto32-bitd3dpp.BackBufferWidth=SCREEN_WIDTH;//setthewidthofthebufferd3dpp.BackBufferHeight=SCREEN_HEIGHT;//settheheightofthebuffer//createadeviceclassusingthisinformationandtheinfofromthed3dppstuct(创建一个类使用此信息和信息从d3dppstuct)d3d->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp,&d3ddev);}//thisisthefunctionusedtorenderasingleframe(这个函数用来渲染一帧)voidrender_frame(void){//clearthewindowtoadeepblued3ddev->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(0,40,100),1.0f,0);d3ddev->BeginScene();//beginsthe3Dscene//do3Drenderingonthebackbufferhered3ddev->EndScene();//endsthe3Dscened3ddev->Present(NULL,NULL,NULL,NULL);//displaysthecreatedframeonthescreen}//thisisthefunctionthatcleansupDirect3DandCOM(这是功能,清理装置和组件)voidcleanD3D(void){d3ddev->Release();//closeandreleasethe3Ddeviced3d->Release();//closeandreleaseDirect3D }1.运行结果为:四、实验总结之前已经对d3d窗口的创建有所熟悉,其实,全屏窗口的创建只是在d3d窗口的基础上,改一些代码就可以啦。学会窗口的创建是学习动画制作的基础,所以有必要把其弄懂,有助于以后的学习。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭