资源描述:
《vcnet实验指导书》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《VC++程序设计项目实践》实验指导书孙晓飞实验一Windows屏幕保护程序【实验目的和要求】•掌握屏幕保护基本原理;•掌握提高绘图效率的方法;•掌握VC++中对鼠标处理的方法;•MFC编程方法的理解和运用;•利用画图设备在OnPaint函数中画图的实现步骤;•双缓冲机制的理解和实现;【实验内容】新建一个基于对话框的工程,利用上双缓冲机制和定吋器,來编程实现白C的屏幕保护程序。【实验设备】PC机、VisualStudio6.0【背景知识】1.C++基础知识2.上一节理论课中关于visualstudio6.0基本使用方法、MFC程序结构知识、双缓冲机制的实现原理等
2、。【实验步骤】1、新建工程并插入图片/新建一个工程,选择基于对话框,其他全部默认,一路点“下一步”,直到完成。/创建完成片,将对话框上的控件全部删除掉。演示视频/切换到资源视图,插入一副bmp图片。视频演示2、开始编辑代码/向CMyScreenSaverDlg类的头文件中添加几个变量和两数的声明:视频演示按照上面视频演示的方法,把如下代码都加到相应位置:private:UINTm_showheight;UINTmshowidth;UTNTmshowpoint;CDC*m_pdcmem;//位图内存,即和位图关联的内存CBitmapm_bitmap;//图片位图C
3、Pointm_mousepoint;voidDrawBitmap();/参照如下视频,给主对话框添加消息响应,注意视频中添加消息响应函数的两种方法(一种是用类向导,后来又直接手动添加)视频演示/在cpp文件前部加入如下两行宏定义,表示图片的宽度和高度:视频演示代码:ttdefineBITMAP_HE1GHT768#dcfineBITMAPJVIDTH1356/完成DrawBitmapO函数,将如下代码键入或粘贴进cpp文件屮,参考如下视频演示。视频演示代码:CClientDCdc(this);//de为我们得到的屏幕DCCDCdemem;CBitmapbitma
4、p;bitmap.CreateCompatibleBitmap(&de,mshowidth,mshowheight);demem.CreateCompatibleDC(&dc);demem.SelectObject(&bitmap);demem.SetBkMode(TRANSPARENT);demem.FillRect(&CRect(0,0,mshowidth,mshowheight),&CBrush(RGB(0,0,0)));//先填充黑色UINTy=(m_showheight-BITMAP_HEIGHT)/2;m_showpoint+=l;if(m_show
5、point>=m_showidth){mshowpoint=0;}demem.StretchBlt(0,y,m_showidth,BITMAP_HE1GHT,m_pdcmem,m.showpoint,0,m.showwidth,BITMAP_HEIGHT,SRCCOPY);CFontfont;font.CreateFont(20,10,0,60,30,FALSE,FALSE,FALSE,DEFAULT_CHARSET,OUTCHARACTERPRECIS,CLTP_CHARACTER_PRECTS,DEFAULT_QUALTTY,F1XED_P1TCH
6、FF_M
7、ODERN,〃隶书〃);dcmem.SeiectObject(&font);staticlongswidth二m_showwidth;一一swidth;辻(swidth-500){dcmem.SetTextColor(RGB(O,100,255));dcmem.TextOut(swidth,20,"自制屏幕保护程序");dcmem.TextOut(swidth+300,20,〃制作:***〃);)elseswidth=m_showidth;//显示在屏幕上de.BitBlt(0,0,mshowwidth,mshowheight,&dcmem,0,0,SRCCOP
8、Y);bitmap.DeleteObject();dcmem.DeleteDC();/参照视频添加定时器,即添加WM_TIMER消息及响应函数,并在定时器响应函数中调用DrawBitmap()函数/参照视频在OnlnitDialogO函数中添加如下代码,作用是隐藏对话框标题栏和鼠标及设置定时器等,代码含义见其中的注释。视频演示代码:LONGstyle=GetWindowLong(mhWnd,GWLSTYLE);〃删除窗口的标题栏style&="WS_CAPTION;SetWindowLong(m_hWnd,GWL_STYLE,style);〃获得显示器屏幕的宽度
9、mshowwidth=G