- 1、本文档共70页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c图形处理new
一般应用程序使用MFC提供的缺省图标,也可以添加自己的图标。通过Insert|Resource菜单命令插入Icon图标资源,利用图形资源编辑器编辑图标。图标创建后通过调用函数CWinApp::LoadIcon()加载图标并获得其句柄,该函数原型为: HICON LoadIcon(LPCTSTR lpszResourceName) const; HICON LoadIcon(UINT nIDResource) const; 对于图标,MFC没有提供对应的类,编程时只有采用句柄的方式使用一个图标。 也可以通过调用CWinApp::LoadStandardIcon()加载Windows系统提供的预定义图标。 添加自己的图标: 图标被加载后,为了在窗口显示图标,可以调用成员函数CDC::DrawIcon(),该函数原型为: BOOL DrawIcon(int x, int y, HICON hIcon); BOOL DrawIcon(POINT point, HICON hIcon); 其中,参数x、y或point指定图标显示的左上角坐标,hIcon为图标句柄。 在初始化函数InitInstance()中可以通过调用成员函数CWnd::SetIcon()安装图标,此时应该同时安装16×16和32×32大小标准的图标,该函数原型为: HICON SetIcon( HICON hIcon, BOOL bBigIcon ); 其中,参数hIcon为要安装的图标句柄,bBigIcon确定安装何种大小的图标。 显示图标: 光标(Cursor)是一种特殊的、可移动的32×32点阵图形,它是用来作为鼠标指针的图形标志。 光标与图标最大的区别是光标有一个热点,用于确定光标当前的像素位置。利用光标资源编辑器可以重新设置光标的热点,如图所示,光标资源编辑器的右上部有一个热点设置按钮“*?”,单击这个按钮,在光标编辑区会出现一个十字光标,将十字光标的中心放在要设定热点的位置,单击鼠标就可以设置光标的热点。 *8.4.3 光标 设置光标的热点 在Windows环境下,光标形状的变化代表了程序当前状态的改变。不需要用户专门处理,Windows就支持三种最普通的光标:箭头、沙漏和I形光标。一般情况下,光标为箭头形状;如果应用程序忙,光标呈沙漏状;如果光标超出程序窗口或进行文本输入,光标为I形状。 MFC类CCmdTarget提供成员函数BeginWait- Cursor()、EndWaitCursor()和RestoreWaitCursor()用于改变光标的状态。 光标与图标一样,MFC也没有提供对应的类,一般采用句柄的方式使用光标。 改变光标的形状: 1.利用MFC AppWizard创建SDI应用程序WaitCur,利用ClassWizard添加消息WM_LBUTTONDOWN的处理函数,并添加如下代码: void CWaitCurView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here . . . SetCapture(); BeginWaitCursor(); // 显示沙漏状光标 SetTimer(1,2000,NULL);// 启动一个2秒的计时器 CView::OnLButtonDown(nFlags, point); } 例 编写一个应用程序WaitCur,程序运行后单击鼠标光标处于沙漏状,2秒钟光标恢复正常状态。 2.利用ClassWizard添加消息WM_TIMER的处理函数,在函数中添加如下代码: void CWaitCurView::OnTimer(UINT nIDEvent) // 2秒后调用该消息处理函数 { // TODO: Add your message handler code here . . . ReleaseCapture(); EndWaitCursor(); // 2秒后恢复光标原来的形状 KillTimer(1); // 删除计时器 CView::OnTimer(nIDEvent); } WaitCur运行结果 * * * * char *strWidth[]={1,2,3,4,5,6,7}; pDC-TextOut(260,10,用不同宽度的画笔绘图); for(i=0; i7; i++) // 用不同宽度的画笔绘图 { if(PenNew.CreatePen(PS_SO
文档评论(0)