|
taowentao
高级用户
积分 739
发帖 111
注册 2004-11-30 来自 辽宁沈阳
状态 离线
|
『楼 主』:
个人编写的GUI图形界面软件
rtCell 真正的图形模式多窗口 - 用 Borland C 编写,具有下列功能:
1. 完善而精巧的多视口裁剪和消隐处理,与实时微内核rtCell紧密结合;
2. 真正的事件(或消息)驱动的多窗口技术,且支持顶层窗口和透明窗口;
3. 当前支持Label、Edit、Botton、Slider、Listbox、TreeView和Checkbox控件,其中的
Edit控件支持剪切、复制和粘贴(ctrl+x,ctrl+c,ctrl+v);
4. 支持窗口的平移、缩放,和窗口系统按钮,及窗口和控件的过程回调;
5. 内存需求小(不到64K),窗口和控件所耗内存很小(全部采用直接读写显存技术,没有内存设备),
因此实用性强,包括rtCell、鼠标、键盘及图形驱动,在DOS下也仅 100 多 K 字节。
演示方法:解压缩gui_Test.rar,在windows下(双击)执行gui_Test.bat,
或在纯dos下直接执行bc_gui.exe(在windows的dos窗口中无鼠标)。
注意:本演示中由于包含一个说明性位图而使得bc_gui.exe比较大。
下载地址:
http://zhenlove.com.cn/cndos/fileup/files/bc_gui.rar
http://zhenlove.com.cn/cndos/fileup/files/bc_gui.zip
|
来自山东,现居沈阳 |
|
2007-1-3 03:19 |
|
|
zqlcch
初级用户
积分 178
发帖 85
注册 2006-7-6
状态 离线
|
『第
2 楼』:
从演示上看不错啊,楼主怎么不放出开发包呢?让兄弟们用用
要收费的吗?
用过QbWin和WinSail,QbWin太弱,Winsail功能和你的看起来差不多,但它太丑了。。。。。
|
|
2007-1-9 00:57 |
|
|
happybasic
中级用户
积分 298
发帖 118
注册 2006-3-1
状态 离线
|
『第
3 楼』:
Quote: | Originally posted by zqlcch at 2007-1-9 00:57:
从演示上看不错啊,楼主怎么不放出开发包呢?让兄弟们用用
要收费的吗?
用过QbWin和WinSail,QbWin太弱,Winsail功能和你的看起来差不多,但它太丑了 ... |
|
QBWIN太弱... 想必这位兄弟一定是高手了,可否做一个更强一的出来
让所有的QB爱好者们爱惠一下,包括偶...
|
欢迎光临happyBASIC小站:http://yxbasic.51.net |
|
2007-1-9 02:01 |
|
|
zqlcch
初级用户
积分 178
发帖 85
注册 2006-7-6
状态 离线
|
『第
4 楼』:
QbWin的缺点是要写C盘,会产生~Qbwin.0等4个文件,每个38K,就是640x480x16色环境下显存四个位面的镜像文件,不能在只读的环境中使用,比如硬盘上所有的分区都是NTFS的情况,当初很认真地学习一段时间的QBWin,也做了一些基于QbWin的程序,后面就放弃了。另外Qbasic的数据段只有64k,建立大一些的数组就比较麻烦了。调用XMS也没有现成的包可以用,如果真要用XMS写还不如用C了,大量现成的包可以使用,以上这些都算是Qb无法解决的缺点了吧,除非谁能再写一个QB的编译器。
建议三楼的去用一下WinSail,基于BC的GUI库,编程方便多了。
象“想必这位兄弟一定是高手了,可否做一个更强一的出来”这样赌气伤感情的话就不要再说了,就算是一个基于应用层面的编程者(比如我)对语言的喜好也不能被自己的感情所左右,编程自然是哪个好用就用哪个,提高生产率何乐而不为,某种语言的优点自然要发杨光大,但缺点也要老老实实承认。。。。
[ Last edited by zqlcch on 2007-1-9 at 05:45 AM ]
|
|
2007-1-9 05:42 |
|
|
happybasic
中级用户
积分 298
发帖 118
注册 2006-3-1
状态 离线
|
『第
5 楼』:
呵呵,楼上兄弟莫介意。。。我是真希望有一个更好的QB开发库, 因为QBWIN停止开发了,而且作者现在一直很忙... Hoker一直建议他开源,目前尚无消息。。。
所以,我在我的小站已经在开始自已做的QBCH开发库就是想取代bas原来的那个showfnt开发库(DOS字符界面的中文库),但GUI界面的目前还未敢试 ....
兄弟有任何意见,关于QB or QBWIN的尽管提,,当然最好的是改进意见,或开发意见。。。。
|
欢迎光临happyBASIC小站:http://yxbasic.51.net |
|
2007-1-9 07:05 |
|
|
zqlcch
初级用户
积分 178
发帖 85
注册 2006-7-6
状态 离线
|
『第
6 楼』:
真的吗?QbWin的窗口风格和界面我一直都非常喜欢,很漂亮很舒服,就是那该死的临时文件受不了,应该是用bload和bsave函数产生的吧,能把这个改了我就满足了。
|
|
2007-1-9 07:36 |
|
|
happybasic
中级用户
积分 298
发帖 118
注册 2006-3-1
状态 离线
|
『第
7 楼』:
但目前还缺少不少知识,最好是bas能开源,QBWIN还是有很多地方可以优化的...
我正在研究一个问题就是在程式中抓自已的文件名,但还没做好,不知兄弟会不会,会的话,就指点一二,这个主要用于捆绑字库
|
欢迎光临happyBASIC小站:http://yxbasic.51.net |
|
2007-1-9 08:08 |
|
|
zqlcch
初级用户
积分 178
发帖 85
注册 2006-7-6
状态 离线
|
『第
8 楼』:
运行程序时,第0个参数就是自身的文件名。
在Pascal中函数ParamStr(0),返回的就是自身的文件名。。。
在Qb中找到相对应的函数就OK了。
现在居然连Qb都下不到了。。。。汗
|
|
2007-1-9 09:57 |
|
|
happybasic
中级用户
积分 298
发帖 118
注册 2006-3-1
状态 离线
|
|
2007-1-9 12:07 |
|
|
xugaohui
高级用户
积分 774
发帖 293
注册 2003-4-16 来自 湖北仙桃
状态 离线
|
『第
10 楼』:
Quote: | Originally posted by happybasic at 2007-1-9 02:01 AM:
QBWIN太弱... 想必这位兄弟一定是高手了,可否做一个更强一的出来
让所有的QB爱好者们爱惠一下,包括偶... |
|
qbwin是不错,但遗留的问题太多了,根本不打算用这个。在vmware正准备用qbwin,发现它显示窗体十分慢。鼠标移动一下都不容易。还有很多人说qbwin 编写的程序在部分液晶显示器上无法显示,显示器上只显示出刷新率超出范围。
qbwin的msgbox正好与vbdos冲突。这些问题作者都不打算去解决它。
[ Last edited by xugaohui on 2007-1-10 at 04:44 AM ]
|
下载
09年7月7日 更新
感谢网友 囧HQY 提供空间 |
|
2007-1-10 00:48 |
|
|
happybasic
中级用户
积分 298
发帖 118
注册 2006-3-1
状态 离线
|
『第
11 楼』:
1.窗体刷新速度是有些慢,不过不能用倒是没听说过...
ps: 可以先加载smartdrv.exe后速度就快多了
2.与VBDOS的MSGBOX冲突,QBWIN是for QBX 7.1的, 根本没有打算for VBDOS
(虽然可以兼容), VBDOS只是诱导大家去用VB的饵,不想用,呵呵,而且界面也太丑了
|
欢迎光临happyBASIC小站:http://yxbasic.51.net |
|
2007-1-10 01:03 |
|
|
zqlcch
初级用户
积分 178
发帖 85
注册 2006-7-6
状态 离线
|
『第
12 楼』:
查找DOS中断编程相关资料,没有找到与此有关的中断服务,程序的PSP段中也只有参数而没有自身文件名,无法。。。
|
|
2007-1-10 06:41 |
|
|
happybasic
中级用户
积分 298
发帖 118
注册 2006-3-1
状态 离线
|
『第
13 楼』:
查到资料说PSP段 2Ch开始,查找0010之后就是文件名称,可是在QB中不知怎
么实现, 我原来弄过一段汇编程序是OK的,
代码如下,你看能不能用QB实现它:
cseg segment
assume cs:cseg,ds:cseg
org 100h
start: mov si,2ch
lodsw
mov ds,ax
mov si,0
push cs ;exe格式需要这两句
pop es ;com格式 cs==ds==es 可以不要
mov di, offset buf
cld
loc_1: lodsb
cmp al,0 ;0
jnz loc_1
lodsb
cmp al,0 ;0
jnz loc_1
lodsb
cmp al,1 ;1
jnz loc_1
lodsb ;0
loc_2:lodsb ;文件名开始
cmp al,0
jz disp_1
stosb
jmp loc_2
disp_1:push cs
pop ds
mov dx, offset buf
mov ah,9
int 21h ;显示文件名
mov ah,4ch
int 21h ;返回DOS
buf db 256 dup('$')
cseg ends
end start
|
欢迎光临happyBASIC小站:http://yxbasic.51.net |
|
2007-1-10 09:44 |
|
|
zqlcch
初级用户
积分 178
发帖 85
注册 2006-7-6
状态 离线
|
『第
14 楼』:
有资料就容易
先运行qbx /L qbx.qlb载入qbx库,如果你没有在QB中设置路径就要在/L后加路径了
代码如下:
//先调用DOS中断21的子功能62来取PSP的地址
'$INCLUDE: 'e:\programs\qb71\src\qbx.bi'
CLS
DIM s AS RegType
s.ax = &H6200
CALL Interrupt(&H21, s, s) //调用中断
//定义段地址
DEF SEG = s.bx
//从2C取两个字节,这两个字节就是环境变量的段地址
s1 = PEEK(&H2C)
PRINT s1
s2 = PEEK(&H2D)
PRINT s2
//这里计算段地址
DEF SEG = s2 * 16 * 16 + s1
//这里取环境变量的内容,自身的文件名是以01,00打头的,查找以01,00找头,后面的一串以0结尾的字符串就是自己的文件,自己补些代码吧
//这里我偷懒了,把全部都取出来了,自己修改吧,要喝酒去了
a$ = ""
FOR aa = 0 TO 1855
a$ = a$ + CHR$(PEEK(aa))
NEXT
PRINT a$
汗,QB还是先天不足,操作起来实在麻烦,在C或PASCAL中一个指针就搞定了。。。。。。
[ Last edited by zqlcch on 2007-1-10 at 10:40 AM ]
|
|
2007-1-10 10:38 |
|
|
happybasic
中级用户
积分 298
发帖 118
注册 2006-3-1
状态 离线
|
|
2007-1-11 22:45 |
|