二十讲SRGP图形包使用实例ppt课件_第1页
二十讲SRGP图形包使用实例ppt课件_第2页
二十讲SRGP图形包使用实例ppt课件_第3页
二十讲SRGP图形包使用实例ppt课件_第4页
二十讲SRGP图形包使用实例ppt课件_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SRGP简介简介根本绘图函数根本绘图函数 点、线、面 SRGP_defPoint(int x, int y); SRGP_lineCoord(int x1, int y1, int x2, int y2); SRGP_line(point pt1, point pt2); SRGP_polyLine(int vert_count, point *vertices); 绘图属性 SRGP_setLineStyle SRGP_setLineWidth 文本 SRGP_text(point pt, char *text); 颜色、字体 SRGP_setColor(int value); SRGP_l

2、oadColorTable(int start, int count, ush *red, ush *green, ush *blue); SRGP_setFont(int value); SRGP_inquireTextExtent(char*text, int *width, int *height, int* descent); /见书P14, 本API有错lXlYl坐标系坐标系SRGP简介简介根本绘图函数根本绘图函数颜色的处置颜色的处置#define BLACK 0#define WHITE 1#define RED 2 #define GREEN 3#define BLUE 4#de

3、fine YELLOW 5const int MaxColor = 15; unsigned short red = 0, 255, 255, 0, 0, 255, 255, 0, 192, 114, 240, 130, 225, 10, 255;unsigned short green = 0, 255, 0, 255, 0, 255, 0, 255, 192, 114, 240, 130, 225, 10, 255;unsigned short blue = 0, 255, 0, 0, 255, 0, 255, 255, 192, 114, 240, 130, 225, 140, 230;

4、SRGP_loadColorTable(0, MaxColor, red, green, blue); /装载颜色装载颜色表表SRGP_setColor(RED); /设置为红色设置为红色 RGB(255, 0, 0)SRGP_setColor(YELLOW);/设置为黄色设置为黄色 RGB(255, 255,0)SRGP简介简介根本交互处置根本交互处置 设置设备方式SRGP_setInputMode(LOCATOR, SAMPLE); 定位设备的丈量locator_measure Mouse;do SRGP_sampleLocator(&Mouse);/采集鼠标信息/判别鼠标的形状,做相应操

5、作 while ( );l设置设备方式lSRGP_setInputMode(KEYBOARD, EVENT);l主事件循环ldo lSRGP_waitEvent(-1); /阻塞,直至某事件发生。lSRGP_getKeyboard(&measure); ll/判别键盘形状,作相应操作l while ( );SRGP简介简介根本交互处置根本交互处置SRGP简介简介根本交互处置根本交互处置 /Srgppublic.h typedef enum UP, DOWN buttonStatus; typedef struct point postion;buttonStatus button_chord3

6、;int button_of_last_transition; locator_measure;SRGP_sampleLocator(&Mouse);/鼠标信息鼠标信息采样采样1. if ( Mouse.buttonChord0=DOWN ) /左键按下左键按下2. if ( Mouse.buttonChord0=UP ) /左键弹起左键弹起3. if ( Mouse.buttonChord1=DOWN ) /右键按下右键按下SRGP简介简介运用阐明运用阐明void UserMain() SRGP_begin(COOL Drawing V1.0, width, height, 4, FALSE

7、); SRGP_setInputMode(LOCATOR, SAMPLE); do /主处置循环主处置循环 SRGP_sampleLocator(&Mouse); /采集鼠标信息,给出反响采集鼠标信息,给出反响 while ( 1 ); SRGP_end();SRGP简介简介与与Windows SDK结合运用结合运用 1. 1. 获得设备的获得设备的DCDC HDC hdc = GetDC(srgp_canvasTable0.drawable.win);HDC hdc = GetDC(srgp_canvasTable0.drawable.win); 2. 2. 运用运用SDKSDK完成完成SR

8、GPSRGP不提供的绘图操作不提供的绘图操作 3. 3. 释放设备释放设备DCDC ReleaseDC(srgp_canvasTable0.drawable.win, hdc);ReleaseDC(srgp_canvasTable0.drawable.win, hdc); 参见参见srgplocal.hsrgplocal.h 常用的一些常用的一些API API 参考参考VCVC协助协助 COLORREF SetPixel( HDC hdc, int X, int Y, COLORREF COLORREF SetPixel( HDC hdc, int X, int Y, COLORREF crC

9、olor); crColor); COLORREF GetPixel( HDC hdc, int XPos, int nYPos); COLORREF GetPixel( HDC hdc, int XPos, int nYPos); lYlXlWindows坐标系,与坐标系,与SRGP不同不同COOL Drawing的界面的界面COOL Drawing的界面的界面COOL DrawingCOOL Drawing的界面设计模拟了的界面设计模拟了IE 4IE 4风格。风格。图标和菜单按钮处于平面形状或凹陷形状图标和菜单按钮处于平面形状或凹陷形状标志此时处于某种方式中;标志此时处于某种方式中;当鼠标

10、指针进入该区域时,产生浮起效果;当鼠标指针进入该区域时,产生浮起效果;移出该区域后,图标恢复原来形状。鼠标移出该区域后,图标恢复原来形状。鼠标在该区域内单击,使图标凹陷或恢复原在该区域内单击,使图标凹陷或恢复原平面形状,并触发对应事件;平面形状,并触发对应事件;菜单与工具条有延时的徐徐弹出,富有动菜单与工具条有延时的徐徐弹出,富有动感。感。COOL Drawing的处置流程的处置流程初始化绘图环境初始化绘图环境 按参数动态创建菜单条,按参数动态创建菜单条,工具条,画板等对象工具条,画板等对象由菜单条,工具条,画板由菜单条,工具条,画板这三个对象监听鼠标信息这三个对象监听鼠标信息某个对象监听到与

11、它有关某个对象监听到与它有关的鼠标动作,那么该对象由的鼠标动作,那么该对象由监听形状进入处置形状。监听形状进入处置形状。由该对象内部的各个子由该对象内部的各个子对象开场监听。对象开场监听。COOL Drawing对鼠标的反响对鼠标的反响 程序采用采样方式。缘由:程序需求捕捉鼠标挪动事件,而该事件被SRGP屏蔽。 各个对象均有各自的监听函数,在主处置循环中轮番监听。同样,在对象的监听函数中由各个子对象轮番监听。 一旦鼠标进入某对象的区域,那么触发对应事件,进入处置形状。 COOL Drawing的组成的组成 MenuBar 菜单条类 IconBar 工具条类 StatusBar 形状条类 Can

12、vas 画板类 这些对象由参数动态创建虽然SRGP库建立在C言语环境中,但程序的编写采用了面向对象的思想:每个构造都有其对应的方法函数,函数的传入参数中有构造指针,即每个函数只对其所属的构造进展操作。经过这种方法实现了数据的封装。 MenuBar 菜单条简介菜单条简介typedef struct int x1, y1, x2, y2;char str20; MenuItem;typedef struct int x1, x2, y1, y2;int nItem;MenuItem* item;COLORREF* buf; Menu;typedef struct int x1, x2, y1, y

13、2;point origin;char str20;Menu menu; MenuButton;typedef struct int nMenu;MenuButton* btn;int x1, x2, y1, y2; MenuBar; 1. MenuBar的初始形状,各个MenuButton对象都在监听鼠标信息。 2. 鼠标挪动到某MenuButton上方,该对象监听到该事件,给出反响使按钮浮起,然后进入处置形状,不断采集鼠标信息,直至鼠标移出本Button范围。 3. 在MenuButton的处置形状中,不断采集鼠标信息,在鼠标左键按下时做出反响使MenuButton凹陷并弹出菜单Menu弹

14、出菜单时需求保管菜单的背景以便恢复。这时,由MenuButton以及被激活的Menu 以及其中的MenuItem子对象开场进入处置形状,监听鼠标信息。MenuBar 的事件处置的事件处置在MenuButton与被激活的Menu 以及其中的MenuItem子对象的处置形状中,将有三种情况产生:1.鼠标在MenuButton上单击,弹出的Menu收回恢复保管的背景,并使凹陷的Button恢复浮起。2 鼠标挪动至某MenuItem上方,该对象监听到该事件,给出反响使文字以反色显示。3 鼠标挪动出本MenuButton以及Menu的范围,这两个对象退出处置形状,MenuButton恢复初始形状并收回弹

15、出的Menu。其他MenuButton采集到鼠标信息进入的信息,按钮凹陷并弹出菜单,这两个对象进入处置形状。MenuBar 的事件处置的事件处置IconBar 工具条简介工具条简介 特点:特点: 1. Icon代表着一种绘图工具、绘图代表着一种绘图工具、绘图方式或绘图颜色。某方式或绘图颜色。某Icon选中后,选中后,将运用这种风格绘图。将运用这种风格绘图。 2. 一个一个IconGroup内只能有一个内只能有一个Icon处于选中形状。处于选中形状。 3. 鼠标在鼠标在Icon上停留一定时间后,上停留一定时间后,将弹出提示将弹出提示Hint。 4. 鼠标移出鼠标移出IconBar一段时间后,一段时间后,IconBar将自动隐藏在窗口左部将自动隐藏在窗口左部缩成一个小条缩成一个小条 。鼠标移到隐藏的。鼠标移到隐藏的IconBar上方一段时间后,上方一段时间后,IconBar又将自动弹出。又将自动弹出。IconBar 工具条简介工具条简介 翻开的翻开的IconBar 隐藏的IconBar缺乏之处缺乏之处

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论