- 1、本文档共117页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学MFC上机教程解析
例13 在点(100,100)处输出黄底红字“Compute Graphics Based on VC++!”;在(300,100)输出“BoChuang Research Institute”;在(100,130)整数(5,8);在(130,130)处输出小数(5.0,8.0)。 void CTestView::OnDraw(CDC* pDC) { CTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); int a1=5,b1=8; double a2=5.2,b2=8.3; CString data,c= BoChuang Research Institute; pDC-SetTextColor(RGB(255,0,0)); pDC-SetBkColor(RGB(255,255,0)); pDC-TextOut(100,100,Compute Graphics Based on VC++!);//输出文本1 data.Format(%s,c);//输出文本2 pDC-TextOut(330,100,data); data.Format(%d,%d,a1,b1);//输出整数 pDC-TextOut(100,130,data); data.Format(%f,%f,a2,b2);//输出小数 pDC-TextOut(130,130,data); } 例14 使用双缓冲机制在博创研究所位图上输出“博创研究所”文字。 void CTestView::OnDraw(CDC* pDC) { CTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CRect Rect; //定义客户区 GetClientRect(Rect); //获得客户区的大小 CDC MemDC; //定义内存设备上下文 CDC Picture; //定义图片; CBitmap Bitmap,*OldBitmap; //定义一个CBitmap对象和一个CBitmap对象指针 CBitmap Bitmap;//定义一个CBitmap对象 CBitmap *OldBitmap; //定义一个CBitmap对象指针 Bitmap.LoadBitmap(IDB_BITMAP1); //从资源中导入位图 MemDC.CreateCompatibleDC(pDC); //建立与位图相应的内存设备上下文 OldBitmap=MemDC.SelectObject(Bitmap); //把内存设备上下文换成位图图像 MemDC.BitBlt(0,0,Rect.Width(), Rect.Height(),Picture,0,0,SRCCOPY); //将位图数据传送到内存设备上下文 MemDC.SetBkMode(TRANSPARENT); //设置文字背景透明 MemDC.SetTextColor(RGB(255,255,255)); //设置文字颜色为白色 MemDC.TextOut(500,350,博创研究所); //输出文字 pDC- BitBlt(0,0,Rect.Width(),Rect.Height(), MemDC,0,0,SRCCOPY); //将内存数据传送到屏幕 MemDC.SelectObject(OldBitmap); //从内存设备上下文中释放位图图像 } 2.3.4 设备上下文的调用和释放 在VC++程序中输出图形和文本时,如果不在OnDraw函数中输出,则需要设置输出对象的设备上下文,然后才能调用相应的CDC类的成员函数,最后还需要保证将设备上下文释放给Windows,恢复原来的状态以备下次调用 调用设备上下文 类属:CWnd::GetDC( ) 原型:CDC* GetDC( ); 返回值:指定的客户区设备上下文指针。 参数说明:获得指定的窗口客户区的设备上下文。 释放设备上下文 类属:CWnd::ReleaseDC 原型:int ReleaseDC(CDC* pDC); 返回值:非零。 参数说明:释放指定客户区的设备上下文。 2.2.5 VC++绘制图形的几种方法 第一种方法:使用OnDraw成员函数。 void CTestView::OnDraw(CDC* pDC) { CTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native
文档评论(0)