第8章图形用户接口MiniGUI

上传人:无*** 文档编号:182895473 上传时间:2023-01-29 格式:PPT 页数:26 大小:1.70MB
收藏 版权申诉 举报 下载
第8章图形用户接口MiniGUI_第1页
第1页 / 共26页
第8章图形用户接口MiniGUI_第2页
第2页 / 共26页
第8章图形用户接口MiniGUI_第3页
第3页 / 共26页
资源描述:

《第8章图形用户接口MiniGUI》由会员分享,可在线阅读,更多相关《第8章图形用户接口MiniGUI(26页珍藏版)》请在装配图网上搜索。

1、第第 8 章章 图形用户接口图形用户接口MiniGUI 2第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 主要内容MiniGUI简介简介 MiniGUI在在Linux下运行环境的建立下运行环境的建立 Linux下下S3C2410 FrameBuffer的启动的启动 MiniGUI输入引擎输入引擎IAL的开发的开发 在在S3C2410上运行简单的绘图程序上运行简单的绘图程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真应用上的仿真应用 3第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8 8.1.1 MiniGUI.1.1 M

2、iniGUI的功能特色的功能特色 MiniGUI是一种在嵌入式系统中提供图形及图形用户界是一种在嵌入式系统中提供图形及图形用户界面支持的中间件技术,是面向嵌入式系统的轻量级图形用户面支持的中间件技术,是面向嵌入式系统的轻量级图形用户界面支持系统,国内著名的自由软件项目之一。界面支持系统,国内著名的自由软件项目之一。功能特性功能特性 完备的多窗口机制和消息传递机制。完备的多窗口机制和消息传递机制。常用的控件类,包括静态文本框、按钮、单行和多行编辑常用的控件类,包括静态文本框、按钮、单行和多行编辑框、列表框、组合框、进度条、属性页、工具栏、拖动条、树框、列表框、组合框、进度条、属性页、工具栏、拖动

3、条、树型控件、月历控件等。型控件、月历控件等。支持对话框和消息框以及其它支持对话框和消息框以及其它GUIGUI元素,包括菜单、加速键元素,包括菜单、加速键、插入符、定时器等。、插入符、定时器等。通过两种不同的内部软件结构支持低端显示设备(比如单通过两种不同的内部软件结构支持低端显示设备(比如单色色 LCDLCD)和高端显示设备(比如彩色显示器)。前者小巧灵活)和高端显示设备(比如彩色显示器)。前者小巧灵活,而后者在前者的基础上提供了更加强大的图形功能。,而后者在前者的基础上提供了更加强大的图形功能。支持支持WindowsWindows的资源文件,如位图、图标、光标等。的资源文件,如位图、图标、

4、光标等。支持各种流行的图像文件,包括支持各种流行的图像文件,包括JPEGJPEG、GIFGIF、PNGPNG、TGATGA、BMPBMP等等。等等。支持多字符集和多字体。支持多字符集和多字体。针对嵌入式系统,支持一般性的针对嵌入式系统,支持一般性的I/OI/O操作和文件操作等。操作和文件操作等。4第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8 8.1.2 MiniGUI.1.2 MiniGUI 的技术优势的技术优势 和其它针对嵌入式产品的图形系统相比,和其它针对嵌入式产品的图形系统相比,MiniGUI具有如具有如下几大技术优势:下几大技术优势:1占用资源少占用资源少

5、2高性能、高可靠性高性能、高可靠性 3可定制配置可定制配置 4跨操作系统支持跨操作系统支持 5第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 主要内容MiniGUI简介简介 MiniGUI在在Linux下运行环境的建立下运行环境的建立 Linux下下S3C2410 FrameBuffer的启动的启动 MiniGUI输入引擎输入引擎IAL的开发的开发 在在S3C2410上运行简单的绘图程序上运行简单的绘图程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真应用上的仿真应用 6第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8.2

6、.1 MiniGUI 8.2.1 MiniGUI在在LinuxLinux下的运行环境下的运行环境 在运行在运行Linux的的PC机上,机上,MiniGUI应用程序可以通过以下两种应用程序可以通过以下两种方式运行:方式运行:在在X Window上,在虚拟上,在虚拟FrameBuffer的的QVFB中运行;中运行;在在Linux的字符控制台上,在的字符控制台上,在Linux内核提供的内核提供的FrameBuffer驱动上运行。驱动上运行。QVFB FrameBuffer设备驱动设备驱动 QVFB是是Qt(Qt是是Linux 窗口管理器窗口管理器KDE使用的底层函数库)使用的底层函数库)提供的一个虚

7、拟的提供的一个虚拟的FrameBuffer工具。在工具。在X Window环境下,环境下,进行基于进行基于QVFB之上的之上的MiniGUI模拟开发、调试是常用的开发模拟开发、调试是常用的开发调试手段。调试手段。对于大部分兼容对于大部分兼容VESA标准显卡的标准显卡的PC机,使用机,使用RedHat内核中包含的内核中包含的VESA FrameBuffer驱动程序驱动程序就可以运行就可以运行MINIGUI了。如果自己编译内核,则需要了。如果自己编译内核,则需要选中选中FrameBuffer的支持。的支持。7第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8.2.2 8.2.

8、2 安装资源文件安装资源文件 在在Linux环境下,把该文件复制到环境下,把该文件复制到/opt/emulation目录下目录下(emulation目录为创建的目录目录为创建的目录)。执行如下解压缩命令:。执行如下解压缩命令:rootlocalhost emulation#tar zxvf minigui-res-1.3.3.tar.gz 该命令将建立该命令将建立minigui-res-1.3.3目录,然后进入该目录:目录,然后进入该目录:rootlocalhost emulation#cd minigui-res-1.3.3最后,通过最后,通过make install命令安装资源文件:命令安

9、装资源文件:rootlocalhost minigui-res-1.3.3#make install这样,资源文件就安装到这样,资源文件就安装到/usr/local/lib/minigui/res目录。目录。8第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8.2.3 8.2.3 配置安装配置安装MiniGUIMiniGUI库文件库文件 MiniGUI是以库的形式提供给用户的,通过将是以库的形式提供给用户的,通过将MiniGUI的库文件编译进应用程序来使用的库文件编译进应用程序来使用MiniGUI。步骤如下:。步骤如下:1、下载压缩的库文件、下载压缩的库文件libmini

10、gui-1.3.3.tar.gz 2、解压缩、解压缩 tar zxvf libminigui-1.3.3.tar.gz 3 3、配置图形界面配置图形界面 make menuconfig4、安装库文件、安装库文件 make make install 9第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 主要内容MiniGUI简介简介 MiniGUI在在Linux下运行环境的建立下运行环境的建立 Linux下下S3C2410 FrameBuffer的启动的启动 MiniGUI输入引擎输入引擎IAL的开发的开发 在在S3C2410上运行简单的绘图程序上运行简单的绘图程序 MiniG

11、UI在在S3C2410上的移植上的移植 在在QVFB上的仿真应用上的仿真应用 10第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI v 在在QVFBQVFB上运行示例程序的步骤上运行示例程序的步骤 mg-samples-1.3.1目录下包含了目录下包含了MiniGUI提供的多个示例提供的多个示例程序,通过在程序,通过在mg-samples-1.3.1目录下依次执行目录下依次执行./configure命命令和令和make命令,可以将这些示例程序编译生成可执行程序。命令,可以将这些示例程序编译生成可执行程序。1按照如下配置,修改按照如下配置,修改/usr/local/etc目录

12、下的配置文件目录下的配置文件MiniGUI.cfg。systemgal_engine=fbcon改为改为gal_engine=qvfbial_engine=console改为改为ial_engine=qvfbqvfbdefaultmode=320 x240-8bpp 2使用使用qvfb&命令启动已经安装的命令启动已经安装的qvfb,并在,并在File菜单菜单下配置下配置qvfb为为320 x240-8bpp模式。模式。3运行运行/opt/emulation/mg-samples/src/目录中的可执目录中的可执行程序行程序。11第八章第八章 图形用户接口图形用户接口MiniGUI MiniGU

13、I v 在在QVFBQVFB上运行自己编写的应用程序的步骤上运行自己编写的应用程序的步骤 假设文件名为假设文件名为demo.c,需要的步骤如下:,需要的步骤如下:1进入进入mg-samples-1.3.1目录,执行目录,执行./configure;2把文件把文件demo.c复制到复制到/opt/emulation/mg-samples-1.3.1/src目录下目录下;3打开该目录下的文件打开该目录下的文件Makefile.am:在在COMMON_PROGS=的内容末尾填加可执行文件名的内容末尾填加可执行文件名demo。然后,在然后,在noinst_PROGRAMS=$(COMMON_PROGS

14、)$(LITE_PROGS)下填加下填加demo_SOURCES=demo.c。4在目录在目录/opt/emulation/mg-samples-1.3.1/src下,执下,执行行make命令命令,生成可执行文件,生成可执行文件demo;5修改修改/usr/local/etc目录下目录下MiniGUI的配置文件的配置文件MiniGUI.cfg 6在在/opt/emulation/mg-samples-1.3.1/src目录下执行目录下执行qvfb&命令;命令;7执行执行demo程序:程序:rootlocalhost src#./demo 12第八章第八章 图形用户接口图形用户接口MiniGUI

15、 MiniGUI 主要内容MiniGUI简介简介 MiniGUI在在Linux下运行环境的建立下运行环境的建立 Linux下下S3C2410 FrameBuffer的启动的启动 MiniGUI输入引擎输入引擎IAL的开发的开发 在在S3C2410上运行简单的绘图程序上运行简单的绘图程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真应用上的仿真应用 13第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8.4.1 FrameBuffer 8.4.1 FrameBuffer简介简介 FrameBuffer是出现在是出现在linux 2.2.xx及以上内

16、核当及以上内核当中的一种驱动程序接口。这种接口将显示设备抽象为中的一种驱动程序接口。这种接口将显示设备抽象为帧缓冲区。用户可以将它看成是显示内存的一个映像帧缓冲区。用户可以将它看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读,将其映射到进程地址空间之后,就可以直接进行读写操作,写操作可以立即反映在屏幕上。该驱动程序写操作,写操作可以立即反映在屏幕上。该驱动程序的设备文件一般是的设备文件一般是/dev/fb0、/dev/fb1等等。等等。在应用程序中,若想使用在应用程序中,若想使用FrameBuffer,一般需要,一般需要把把FrameBuffer设备文件映射到进程地址空间

17、。操作设备文件映射到进程地址空间。操作方法是首先打开方法是首先打开/dev/fb0设备,然后通过设备,然后通过mmap系统系统调用进行地址映射,接下来就可以对调用进行地址映射,接下来就可以对Framebuffer进进行操作了。行操作了。14第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8.4.2 FrameBuffer 8.4.2 FrameBuffer驱动的添加驱动的添加 将支持将支持S3C2410的的FrameBuffer驱动的源程序驱动的源程序S3C2410fb.c编译进内核。编译进内核。为了保证编译成功,还需要对如下相关文件进行修改:为了保证编译成功,还需要对如

18、下相关文件进行修改:kernel/drivers/video/Config.in kernel/drivers/video/Config.in 这个文件包含许多与显示相关的配置信息。这个文件包含许多与显示相关的配置信息。kernel/drivers/video/Makefile kernel/drivers/video/Makefile 在该文件中设置如果配置时选择了在该文件中设置如果配置时选择了CONFIG_FB_S3C2410,就,就会将会将S3C2410 FrameBuffer的驱动程序加入的驱动程序加入linux内核。内核。kernel/drivers/video/fbmem.c ke

19、rnel/drivers/video/fbmem.c 该文件的作用是告诉内核如何调用相应的该文件的作用是告诉内核如何调用相应的FrameBuffer驱动。驱动。15第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8.4.3 FrameBuffer 8.4.3 FrameBuffer设备文件的添加设备文件的添加 Linux Linux要在嵌入式系统上运行,还需要文件系统的支持。要在嵌入式系统上运行,还需要文件系统的支持。应用程序对应用程序对FrameBufferFrameBuffer驱动程序的使用是通过驱动程序的使用是通过设备文件设备文件来进来进行的。行的。所以,必须在文件

20、系统中创建所以,必须在文件系统中创建FrameBufferFrameBuffer相应的设备文相应的设备文件件,才能让应用程序使用,才能让应用程序使用FrameBufferFrameBuffer驱动。驱动。由于设备文件使用了设备文件系统,因此,可以不必考虑由于设备文件使用了设备文件系统,因此,可以不必考虑其主次设备号,只需要考虑驱动程序调用的是设备其主次设备号,只需要考虑驱动程序调用的是设备fb0fb0即可,即可,但又因为设备文件系统生成的设备文件为但又因为设备文件系统生成的设备文件为fb/0fb/0,所以需要在,所以需要在文件系统中做一个文件系统中做一个符号连接符号连接,也就是当找到,也就是当

21、找到fb/0fb/0时,直接连时,直接连接到接到fb0fb0。要实现以上的符号连接,只需要在文件系统的。要实现以上的符号连接,只需要在文件系统的/usr/etc/rc.local/usr/etc/rc.local文件中添加文件中添加 ln-s fb/0 fb0ln-s fb/0 fb016第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8.4.4 FrameBuffer 8.4.4 FrameBuffer测试程序编写测试程序编写 FrameBuffer FrameBuffer程序移植完成后,需要对其进行测试,确保程序移植完成后,需要对其进行测试,确保没有问题后才能进行下一

22、步没有问题后才能进行下一步MiniGUIMiniGUI的移植。的移植。测试程序的主要功能是:在文件系统中添加一个应用程测试程序的主要功能是:在文件系统中添加一个应用程序,通过系统调用打开序,通过系统调用打开/dev/fb0/dev/fb0设备文件,显示相应的信设备文件,显示相应的信息,并向映射的缓存写入显示数据,在息,并向映射的缓存写入显示数据,在LCDLCD屏上显示间隔相屏上显示间隔相等的多种颜色条纹。等的多种颜色条纹。17第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 主要内容MiniGUI简介简介 MiniGUI在在Linux下运行环境的建立下运行环境的建立 Lin

23、ux下下S3C2410 FrameBuffer的启动的启动 MiniGUI输入引擎输入引擎IAL的开发的开发 在在S3C2410上运行简单的绘图程序上运行简单的绘图程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真应用上的仿真应用 18第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8.5.1 8.5.1 安装安装MiniGUIMiniGUI的资源文件的资源文件 1、在、在PC机上对资源文件机上对资源文件minigui-res-1.3.3.tar.gz解压缩;解压缩;rootlocalhost target#tar zxvf minigui-re

24、s-1.3.3.tar.gz 2、进入、进入minigui-res-1.3.3目录,安装资源文件;目录,安装资源文件;rootlocalhost minigui-res-1.3.3#make install 3、把、把/opt/target/minigui/usr/local/lib目录下的目录下的minigui目目录拷贝到要制作的录拷贝到要制作的cramfs文件系统的文件夹中。文件系统的文件夹中。19第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8.5.2 8.5.2 配置安装配置安装MiniGUIMiniGUI库文件库文件 1、确认安装了交叉编译器,即、确认安装了交

25、叉编译器,即armv4l-unknown-linux系列系列的交叉编译器;的交叉编译器;2、改变目录到、改变目录到/opt/target/libminigui-1.3.3下下,键入命令键入命令make menuconfig进行配置;进行配置;3、安装库文件:、安装库文件:makemake make install make install 4、去除库文件、去除库文件libminigui-1.3.so.3.0.0和和libmgext-1.3.so.3.0.0中的调试信息和符号信息。中的调试信息和符号信息。armv4l-unknown-linux-strip libminigui-1.3.so.3

26、.0.0armv4l-unknown-linux-strip libminigui-1.3.so.3.0.0 20第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8.5.3 MiniGUI 8.5.3 MiniGUI的移植步骤的移植步骤 要将要将MiniGUIMiniGUI移植到移植到S3C2410S3C2410,通常需要按照如下步骤进行:,通常需要按照如下步骤进行:1 1把已经去除调试信息和符号信息的把已经去除调试信息和符号信息的MiniGUIMiniGUI库文件库文件libminigui-libminigui-1.3.so.3.0.01.3.so.3.0.0和和lib

27、mgext-1.3.so.3.0.0libmgext-1.3.so.3.0.0,以及它们的符号连接文件,一同复制,以及它们的符号连接文件,一同复制到要制作成到要制作成cramfscramfs文件系统的目录文件系统的目录root_techroot_tech中的中的/lib/lib下。下。2 2把把/opt/tgt/minigui/usr/local/lib/opt/tgt/minigui/usr/local/lib下的下的miniguiminigui目录复制到要制作目录复制到要制作cramfscramfs文件系统的目录中。比如放到该目录的文件系统的目录中。比如放到该目录的/usr/sbin/us

28、r/sbin/下。当嵌入式系统运下。当嵌入式系统运行时,应用程序在该行时,应用程序在该miniguiminigui目录下调用相关的资源文件。目录下调用相关的资源文件。3 3在在root_techroot_tech文件夹内,使用如下命令创建一个目录:文件夹内,使用如下命令创建一个目录:mkdir p/opt/host/armv4l/armv4l-unknown-linux/mkdir p/opt/host/armv4l/armv4l-unknown-linux/接下来,创建文件夹的符号连接:接下来,创建文件夹的符号连接:ln s/lib /opt/host/armv4l/armv4l-unkno

29、wn-linux/libln s/lib /opt/host/armv4l/armv4l-unknown-linux/lib4 4修改修改/opt/host/armv4l/armv4l-unknown-linux/etc/opt/host/armv4l/armv4l-unknown-linux/etc目录下的目录下的MiniGUI.cfgMiniGUI.cfg文件,把存放资源的路径改为文件,把存放资源的路径改为root_techroot_tech目录下对应的路径,从而使应用程序能目录下对应的路径,从而使应用程序能够找到它使用的资源文件。修改后的够找到它使用的资源文件。修改后的MiniGUI.c

30、fgMiniGUI.cfg文件要放到文件要放到root_techroot_tech目录的目录的/mnt/etc/mnt/etc目录下。目录下。5 5最后,把准备好的最后,把准备好的root_techroot_tech文件夹,利用文件夹,利用mkcramfsmkcramfs命令,生成命令,生成cramfscramfs文文件系统。生成的文件系统,可以通过件系统。生成的文件系统,可以通过imagewriteimagewrite命令,利用命令,利用NFSNFS网络文件系统或网络文件系统或U U盘下载到目标系统中。盘下载到目标系统中。21第八章第八章 图形用户接口图形用户接口MiniGUI MiniGU

31、I 主要内容MiniGUI简介简介 MiniGUI在在Linux下运行环境的建立下运行环境的建立 Linux下下S3C2410 FrameBuffer的启动的启动 MiniGUI输入引擎输入引擎IAL的开发的开发 在在S3C2410上运行简单的绘图程序上运行简单的绘图程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真应用上的仿真应用 22第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8.6.1 IAL 8.6.1 IAL引擎简介引擎简介 MiniGUI引入了引入了输入抽象层输入抽象层(Graphics and Input Abstract La

32、yer,即,即GAL和和IAL)的概念。的概念。抽象层抽象层的概念类似的概念类似于于Linux虚拟文件系统的概念。它定义了一组不依赖于任何虚拟文件系统的概念。它定义了一组不依赖于任何特殊硬件的抽象接口,所有顶层的输入处理都建立在抽象接特殊硬件的抽象接口,所有顶层的输入处理都建立在抽象接口之上。由于实现这一输入抽象接口的底层代码是一种口之上。由于实现这一输入抽象接口的底层代码是一种类似类似于操作系统驱动程序于操作系统驱动程序的的“输入引擎输入引擎”,所以它的设计实际上,所以它的设计实际上是一种面向对象的程序结构。利用这种抽象接口,可以将是一种面向对象的程序结构。利用这种抽象接口,可以将MiniG

33、UI方便地移植到其它方便地移植到其它POSIX系统上。系统上。一般嵌入式一般嵌入式Linux操作系统都具有操作系统都具有FrameBuffer的支持,的支持,所以针对特定嵌入式设备,只需要编写输入引擎所以针对特定嵌入式设备,只需要编写输入引擎IAL即可。即可。23第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8.6.2 IAL 8.6.2 IAL引擎的开发引擎的开发 以以44键盘为例,介绍键盘为例,介绍IAL引擎的开发。引擎的开发。F(转转换换)E(TAB)D(SPACE)C(CTL)B A 9(左左)8(ALT)7 6(上上)5 4(下下)3(ESC)2 1(右右)0

34、(回回车车)BOOL InitADSInput(INPUT*input,const char*mdev,const char*mtype)/只读形式打开键盘设备只读形式打开键盘设备 kbd_fd=open(/dev/Kbd7279,O_RDONLY);if(kbd_fd update_mouse=mouse_update;input-get_mouse_xy=mouse_getxy;input-set_mouse_xy=NULL;input-get_mouse_button=mouse_getbutton;input-set_mouse_range=NULL;input-update_keyb

35、oard=keyboard_update;input-get_keyboard_state=keyboard_getstate;input-set_leds=NULL;input-wait_event=wait_event;mousex=0;mousey=0;return TRUE;24第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 主要内容MiniGUI简介简介 MiniGUI在在Linux下运行环境的建立下运行环境的建立 Linux下下S3C2410 FrameBuffer的启动的启动 MiniGUI输入引擎输入引擎IAL的开发的开发 在在S3C2410上运行简单的绘

36、图程序上运行简单的绘图程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真应用上的仿真应用 25第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8.7.1 MiniGUI 8.7.1 MiniGUI的基本绘图函数的基本绘图函数 void GUIAPI SetPixel(HDC hdc,int x,int y,gal_pixel c);/设定像素值设定像素值 void GUIAPI SetPixelRGB(HDC hdc,int x,int y,int r,int g,int b);/设定像素设定像素RGB值值 gal_pixel GUIAPI Ge

37、tPixel(HDC hdc,int x,int y);/得到像素的坐标得到像素的坐标 void GUIAPI GetPixelRGB(HDC hdc,int x,int y,int*r,int*g,int*b);/得到像素的得到像素的RGB值值 void GUIAPI LineTo(HDC hdc,int x,int y);/画线到该点画线到该点 void GUIAPI MoveTo(HDC hdc,int x,int y);/设起点设起点 void GUIAPI Circle(HDC hdc,int x,int y,int r);/画圆画圆 void GUIAPI Rectangle(HD

38、C hdc,int x0,int y0,int x1,int y1);/画矩形区域画矩形区域 void GUIAPI FillBox(HDC hdc,int x0,int y0,int x1,int y1);/填充矩形区域填充矩形区域26第八章第八章 图形用户接口图形用户接口MiniGUI MiniGUI 8.7.2 8.7.2 绘图程序举例绘图程序举例 static void DrawDemo(HWND hwnd,HDC hdc)int x=DEFAULT_X,y=DEFAULT_Y;int tox=DEFAULT_WIDTH,toy=DEFAULT_WIDTH;int count;unsi

39、gned int nr_colors=GetGDCapability(hdc,GDCAP_COLORNUM);/设置画笔为绿色设置画笔为绿色,并画一条绿色对角线并画一条绿色对角线 SetPenColor(hdc,PIXEL_green);MoveTo(hdc,0,0);LineTo(hdc,320,240);/设置画笔为绿色设置画笔为绿色,画一圆画一圆,坐标为坐标为(150,140),半径为,半径为50 SetPenColor(hdc,PIXEL_green);Circle(hdc,150,140,50);/设置画笔为青色,画矩形,中心坐标为设置画笔为青色,画矩形,中心坐标为(90,80),x半径为半径为80,y半径为半径为40 SetPenColor(hdc,PIXEL_cyan);Rectangle(hdc,20,30,150,150);/设置画刷为红色,画一个左上角坐标为设置画刷为红色,画一个左上角坐标为(230,50),宽,宽80,高,高90的实心矩形的实心矩形 SetBrushColor(hdc,PIXEL_red);FillBox(hdc,230,50,80,90);

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!