﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-风无情-文章分类-GTK+</title><link>http://www.blogjava.net/fajingt/category/3163.html</link><description>我要花十年,练成一种绝世剑法</description><language>zh-cn</language><lastBuildDate>Sat, 03 Mar 2007 04:49:35 GMT</lastBuildDate><pubDate>Sat, 03 Mar 2007 04:49:35 GMT</pubDate><ttl>60</ttl><item><title>GTK+ 学习之一</title><link>http://www.blogjava.net/fajingt/articles/30130.html</link><dc:creator>风无情</dc:creator><author>风无情</author><pubDate>Fri, 10 Feb 2006 06:18:00 GMT</pubDate><guid>http://www.blogjava.net/fajingt/articles/30130.html</guid><wfw:comment>http://www.blogjava.net/fajingt/comments/30130.html</wfw:comment><comments>http://www.blogjava.net/fajingt/articles/30130.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fajingt/comments/commentRss/30130.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fajingt/services/trackbacks/30130.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.gtk+提供一些控件,底层是gdk,而gdk的实现,目前有四种,一种是基于windows的实现,另外默认的一种是基于X11的实现,还有一种是直接基于linux framebuffer,这需要linux kernel支持framebuffer驱动,打开驱动的方式是在/boot/grub/menu.lst里加入vga=0x317,gdk封装framebuffer的源代码叫GTKFB,在gdk/linux-fb下,编译时需要加-with-gdktarget=framebuffer&nbsp;选项.第四种是基于DirectFB,<A href="http://www.directfb.org/"><FONT color=#003366>DirectFB</FONT></A> 是德國 <A href="http://www.convergence.de/"><FONT color=#003366>convergence 公司</FONT></A>推動的 Open Source 計劃，主要是建構於 Linux Framebuffer Device 之上 hardware graphics acceleration、input device handling and abstraction、integrated windowing system with support for translucent windows，以及 multiple display layers 功能的新 Graphics 標準.<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; 2.gtk的信号机制依赖于gdk的事件机制,一般开发直接使用gtk的信号.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.GdkWindow是由X返回的整数ID号的一个封装.它确实保存一些信息的本地拷贝,所以一些Gdk操作比相应的Xlib操作效率更高.还有GdkWindow本质上是服务器端对象的一个句柄.许多Gdk对象都是相似的,font,pixmap,cursor等等也是服务器对象的一个句柄<BR><BR>&nbsp;&nbsp;&nbsp; 4.有些gtk控件没有与之关联的GdkWindow,用GTK_NO_WINDOW来标记它们,因而它们不能接受事件,因为事件总是由GdkWindow接收的,如果想让无窗口构件扑获事件,可以使用GtkEventBox.<BR><BR>&nbsp;&nbsp;&nbsp; 5.颜色的使用<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GdkColor color;<BR>&nbsp;&nbsp;&nbsp; &nbsp; /* 纯红色* /<BR>&nbsp;&nbsp;&nbsp;&nbsp; color.red = 65535;<BR>&nbsp;&nbsp;&nbsp;&nbsp; color.green = 0;<BR>&nbsp;&nbsp;&nbsp; &nbsp;color.blue = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp; if (gdk_colormap_alloc_color(colormap, &amp;color, FALSE, TRUE))<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* 成功！* /<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;如果g d k _ c o l o r m a p _ a l l o c _ c o l o r ( )函数返回T R U E，然后分配了一个颜色， c o l o r. p i x e l中包含了一个有效的值，这个颜色就可以用于绘画了<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR><BR><BR>&nbsp; <img src ="http://www.blogjava.net/fajingt/aggbug/30130.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fajingt/" target="_blank">风无情</a> 2006-02-10 14:18 <a href="http://www.blogjava.net/fajingt/articles/30130.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>