![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-31 12:20 |
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 个人编写的GUI图形界面软件 |
| 可打印版本 5,884 / 28 |
| 第1楼 taowentao | 发表于 2007-01-03 03:19 |
| 高级用户 发帖 111 积分 739 来自 辽宁沈阳 | |
|
个人编写的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 |
|
| 第2楼 zqlcch | 发表于 2007-01-09 00:57 |
| 初级用户 发帖 85 积分 178 | |
|
从演示上看不错啊,楼主怎么不放出开发包呢?让兄弟们用用
要收费的吗? 用过QbWin和WinSail,QbWin太弱,Winsail功能和你的看起来差不多,但它太丑了。。。。。 |
|
| 第3楼 happybasic | 发表于 2007-01-09 02:01 |
| 中级用户 发帖 118 积分 298 | |
Originally posted by zqlcch at 2007-1-9 00:57: QBWIN太弱... 想必这位兄弟一定是高手了,可否做一个更强一的出来 让所有的QB爱好者们爱惠一下,包括偶... |
|
| 第4楼 zqlcch | 发表于 2007-01-09 05:42 |
| 初级用户 发帖 85 积分 178 | |
|
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 ] |
|
| 第5楼 happybasic | 发表于 2007-01-09 07:05 |
| 中级用户 发帖 118 积分 298 | |
|
呵呵,楼上兄弟莫介意。。。我是真希望有一个更好的QB开发库, 因为QBWIN停止开发了,而且作者现在一直很忙... Hoker一直建议他开源,目前尚无消息。。。
所以,我在我的小站已经在开始自已做的QBCH开发库就是想取代bas原来的那个showfnt开发库(DOS字符界面的中文库),但GUI界面的目前还未敢试 .... 兄弟有任何意见,关于QB or QBWIN的尽管提,,当然最好的是改进意见,或开发意见。。。。 |
|
| 第6楼 zqlcch | 发表于 2007-01-09 07:36 |
| 初级用户 发帖 85 积分 178 | |
|
真的吗?QbWin的窗口风格和界面我一直都非常喜欢,很漂亮很舒服,就是那该死的临时文件受不了,应该是用bload和bsave函数产生的吧,能把这个改了我就满足了。
|
|
| 第7楼 happybasic | 发表于 2007-01-09 08:08 |
| 中级用户 发帖 118 积分 298 | |
|
但目前还缺少不少知识,最好是bas能开源,QBWIN还是有很多地方可以优化的...
我正在研究一个问题就是在程式中抓自已的文件名,但还没做好,不知兄弟会不会,会的话,就指点一二,这个主要用于捆绑字库 |
|
| 第8楼 zqlcch | 发表于 2007-01-09 09:57 |
| 初级用户 发帖 85 积分 178 | |
|
运行程序时,第0个参数就是自身的文件名。
在Pascal中函数ParamStr(0),返回的就是自身的文件名。。。 在Qb中找到相对应的函数就OK了。 现在居然连Qb都下不到了。。。。汗 |
|
| 第9楼 happybasic | 发表于 2007-01-09 12:07 |
| 中级用户 发帖 118 积分 298 | |
|
C中也是第0个参数,但是QB中的参数是COMMAND$, 是一个字符串不是数组....
qb的下载地址: http://vb.lihuasoft.net/showdown.php?id=419 帮忙解决一下,thanks! |
|
| 第10楼 xugaohui | 发表于 2007-01-10 00:48 |
| 高级用户 发帖 293 积分 774 来自 湖北仙桃 | |
Originally posted by happybasic at 2007-1-9 02:01 AM: qbwin是不错,但遗留的问题太多了,根本不打算用这个。在vmware正准备用qbwin,发现它显示窗体十分慢。鼠标移动一下都不容易。还有很多人说qbwin 编写的程序在部分液晶显示器上无法显示,显示器上只显示出刷新率超出范围。 qbwin的msgbox正好与vbdos冲突。这些问题作者都不打算去解决它。 [ Last edited by xugaohui on 2007-1-10 at 04:44 AM ] |
|
| 第11楼 happybasic | 发表于 2007-01-10 01:03 |
| 中级用户 发帖 118 积分 298 | |
|
1.窗体刷新速度是有些慢,不过不能用倒是没听说过...
ps: 可以先加载smartdrv.exe后速度就快多了 2.与VBDOS的MSGBOX冲突,QBWIN是for QBX 7.1的, 根本没有打算for VBDOS (虽然可以兼容), VBDOS只是诱导大家去用VB的饵,不想用,呵呵,而且界面也太丑了 |
|
| 第12楼 zqlcch | 发表于 2007-01-10 06:41 |
| 初级用户 发帖 85 积分 178 | |
|
查找DOS中断编程相关资料,没有找到与此有关的中断服务,程序的PSP段中也只有参数而没有自身文件名,无法。。。
|
|
| 第13楼 happybasic | 发表于 2007-01-10 09:44 |
| 中级用户 发帖 118 积分 298 | |
|
查到资料说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 |
|
| 第14楼 zqlcch | 发表于 2007-01-10 10:38 |
| 初级用户 发帖 85 积分 178 | |
|
有资料就容易
先运行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 ] |
|
| 第15楼 happybasic | 发表于 2007-01-11 22:45 |
| 中级用户 发帖 118 积分 298 | |
|
做好了,去看看吧!多提提意见!
http://yxbasic.51.net/library/qbch.htm |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |