文档详情

北邮程序设计绘图程序资料.ppt

发布:2016-11-24约1.5万字共60页下载文档
文本预览下载声明
* 北京邮电大学信息与通信工程学院 -*- 1.2 窗口程序基础知识 资源文件 例1-2 增加菜单 第五步:窗口类注册之前需要添加菜单资源,在RegisterClass (wndclass);语句之前增加下面的语句。 wndclass.lpszMenuName =MAKEINTRESOURCE(IDC_TEST2); 然后就可以编译运行了! * 北京邮电大学信息与通信工程学院 -*- 1.3 绘图基础知识 * 北京邮电大学信息与通信工程学院 -*- 1.3 绘图基础知识 图形处理技术 GDI图形技术 OpenGL技术 DirectX技术 * 北京邮电大学信息与通信工程学院 -*- 1.3 绘图基础知识 图形设备接口GDI 设备描述表(Device Context, DC),用于应用程序和物理设备之间进行交互,它是GDI的关键元素。 设备描述表是一种数据结构,它包括了一个设备(如显示器和打印机)绘制属性的相关信息。所有的绘制操作通过设备描述表进行。 应用程序不能直接访问设备描述表,只能由各种相关的API函数通过设备描述表句柄来间接访问该结构。?    * 北京邮电大学信息与通信工程学院 -*- 1.3 绘图基础知识 图形设备接口GDI 显示器设备描述表,总是与某个窗口或这窗口上的某个显示区域相关。? Windows窗口一旦创建,它就自动地产生了与之相对应的设备描述表数据结构,用户可运用该结构,实现对窗口显示区域的GDI操作,如划线、写文本、绘制位图、填充等,并且所有这些操作均要通过设备描述表句柄来进行。 * 北京邮电大学信息与通信工程学院 -*- 1.3 绘图基础知识 图形设备接口GDI 画笔和画刷是最重要的绘图工具,而选用绘图工具进行绘图操作的一般步骤是: (1)获得设备环境句柄; (2)获得绘图工具; (3)在设备环境中选择绘图工具; (4)调用输出函数进行输出; (5)在设备环境中选择原来的绘图工具,并删除新的绘图工具。 * 北京邮电大学信息与通信工程学院 -*- 1.3 绘图基础知识 基本图形绘制(熟悉GDI函数) 例1-3 在屏幕上画若干个点,并显示一个文本 在例1-1的基础上,编写DrawPixels函数,并在消息处理时调用它。 case WM_PAINT: hdc = BeginPaint(hwnd, ps); DrawPixels (hwnd, hdc); EndPaint(hwnd, ps); * 北京邮电大学信息与通信工程学院 -*- 1.3 绘图基础知识 基本图形绘制(熟悉GDI函数) 如果要在窗口工作区中绘图,则必须遵守某些规则。每当将WM_PAINT 消息发送到应用程序时,就必须重画工作区。这是因为有许多外部事件需要应用程序重新绘制这个窗口—— 如用户调整了正在绘图的窗口大小,或者是在用户移动另一个窗口以暴露以前隐藏的窗口。 case WM_PAINT: hdc = BeginPaint(hwnd, ps); DrawPixels (hwnd, hdc); EndPaint(hwnd, ps); * 北京邮电大学信息与通信工程学院 -*- 1.3 绘图基础知识 基本图形绘制(熟悉GDI函数) 例1-3 在屏幕上画若干个点,并显示一个文本 void DrawPixels(HWND hwnd,HDC hdc ) { // 获得客户区域 RECT r; GetClientRect(hwnd, r); // 设置映像模式 SetMapMode (hdc, MM_ISOTROPIC); ? // 设置窗口坐标范围 SetWindowExtEx(hdc, 100, 100, NULL); // 设置视口坐标范围 SetViewportExtEx(hdc, r.right, r.bottom, NULL); // 客户区背景为黑色 FillRect(hdc, r, (HBRUSH)GetStockObject( BLACK_BRUSH)); // 输出一个文本 TextOut(hdc,50, 50, TEXT(TEST), lstrlen(TEXT(TEST))); // 画20个点 for(int i=0; i20; i++ ) SetPixelV( hdc,20+i,20+i, RGB(255,255,255)); } * 北京邮电大学信息与通信工程学院 -*- 1.3 绘图基础知识 基本图形绘制(熟悉GDI函数) * 北京邮电大学信息与通信工程学院 -*- 1.3 绘图基础知识 基本图形绘制(熟悉GDI函数) 例1-4 在屏幕上画一个三角形 void DrawTriangle(HWND hwnd,HDC hd
显示全部
相似文档