ruby
HfCloud
这个作者很懒,什么都没留下…
展开
-
[综合] 一个简单图形界面框架XYGui的设计与实现 (二)
封装!上一节最后用了30多行ruby代码做了一个窗口出来,看起来很是麻烦,如何像XYGui里面一样,一行就能创建那样的窗口呢?实际上这里面是有很深的套路的,本节开始,讲述XYGui对创建窗口的封装先解决一些技术上的问题:已编译成的机器语言与ruby语言互相调用没错,你没有看错,机器语言调用ruby语言!高版本的ruby(准确来说是ruby2.0之后)标准库里面就有了一个叫做Fiddle的东西,这个东原创 2016-11-28 21:46:59 · 776 阅读 · 0 评论 -
从ruby到x86机器语言
(同步个人博客 http://sxysxy.org/blogs/69 到csdn 在最开始之前,我要特别感谢 兰兰姐姐 在相关技术上给予我的指导。也正是在兰兰姐姐的帮助下,我才能较为顺利地进行 XYGui 的开发。准备在这里我假定泥大概看过ruby的源码,知道怎么写ruby的c扩展,略懂一些汇编语言与操作系统相关的原理。请安装devkit for ruby(on windows)随便写个原创 2016-11-28 21:49:47 · 940 阅读 · 0 评论 -
一个简单图形界面框架XYGui的设计与实现 (三)
回顾上节解决了只用ruby语言制作窗口过程的问题。只用ruby语言的话,可以用局部变量_self = self,然后在Fiddle::Closure的匿名子类里面的call方法,借助_self变量访问ruby世界的”窗口对象”。但是用C语言的话,怎么办呢?CreateWindowEx这个函数最后一个参数,lpParam。一般我们都把它设为0,也就是无用。但是现在他就要派上用场了。这个参数可以传递一个原创 2016-11-29 07:07:02 · 1039 阅读 · 0 评论 -
一个简单图形界面框架XYGui的设计与实现 (四)
给窗口更多功能窗口出来了,但是什么实用功能都不能做的话,那也就太无趣了,我们想扩展出来更多的功能,比如与用户互动之类的。事件机制与请求机制XYGui提供一套事件机制和请求机制。先说说事件机制:在发生比如鼠标按下,窗口被拖拽入文件等,在窗口过程里面是可以截取到这些事件的,但是如何让XYGui库的用户自定义处理这些事件的方法呢?常用的套路是借助oop+重载,我们约定一下比如发生鼠标按下时,调用onBut原创 2016-11-29 07:52:09 · 2537 阅读 · 0 评论 -
一个简单图形界面框架XYGui的设计与实现 (五)
到这里,没有什么技术含量的东西差不多就说完了,剩下的就是更没有技术含量的体力活了。修改XYGui_ext.c里面的窗口过程,让窗口能够响应更多的交互事件:比如支持拖拽文件到窗口:case WM_DROPFILES: // Drop files into the window // wParam is HDrop (Win32) __tmpcptr1原创 2016-11-29 08:09:07 · 1157 阅读 · 0 评论 -
一个简单图形界面框架XYGui的设计与实现 (一)
前传和dram神犇做了个交♂易,我来发布一些关于制作一个Gui库的教程。借用林则徐的两句名言来描述我现在的心情:(这里省略14个字)简介这里我以半年多前我开坑的 XYGui 为讲解的对象。XYGui是一个几乎完全使用ruby语言开发的,简洁快速的,支持opengl等高级功能的Gui框架,是我学OI颓废之时抽空制作的….你需要准备:windows系统,ruby 2.x(32位),devkit for原创 2016-11-26 22:03:29 · 1124 阅读 · 0 评论