主题:最近的三个目标研究了两个,还有一个要麻烦冷石了
强强
[专家分:4740] 发布于 2007-02-02 09:47:00
最近预定了三个目标:
1、QB内嵌入汇编
2、QB调用鼠标
3、QB显示图像
最后一个得向冷石讨教了,哈哈
回复列表 (共6个回复)
沙发
冷石_jasv [专家分:1570] 发布于 2007-02-02 11:25:00
调用鼠标..?
好象QB7.1有个很好的例子
我是直接调用的.(做了点小小的修改..让他能在xp下画出自己的指针)
图形反而要你去内嵌看看怎么提速了
板凳
强强 [专家分:4740] 发布于 2007-02-02 12:12:00
显示位图,还有画指针什么的还得请教请教你呀
3 楼
强强 [专家分:4740] 发布于 2007-02-02 12:13:00
请教你两个问题怎么画鼠标指针和怎么显示BMP图像
4 楼
强强 [专家分:4740] 发布于 2007-02-02 12:15:00
还有就是别的调用方法怎么用,还得告诉我一下
比如调用汇编有用库调用的
5 楼
强强 [专家分:4740] 发布于 2007-02-02 12:17:00
最近我看了几个帖子都关于QB实现网络通信的,冷石有没有研究过,有啥经验告诉一下,实在不行做个COM口通信的??
6 楼
冷石_jasv [专家分:1570] 发布于 2007-02-02 12:22:00
图片我只会pcx文件的,这东西简单
画鼠标指针,也不过就是两次put(xmouse%,ymouse%),指针数组
pcx图片显示,screen 13下显示
最好是256色(高的这个程序暂时不能处理)的图片没其他限制了,过程会自己判断图片大小
dos低下256色也勉强了
DECLARE SUB CHANGECOLOR (RedValue%, GreenValue%, BlueValue%,ColorNumber%) '调色板
DECLARE SUB pcxload256 (left%, right%, File$)
'$INCLUDE: 'qb.bi'
TYPE pcxgs '定义PCX图片格式
MAN AS STRING * 1
VER AS STRING * 1
ENC AS STRING * 1
BIT AS STRING * 1
XLS AS INTEGER
YLS AS INTEGER
XMS AS INTEGER
YMS AS INTEGER
HRE AS INTEGER
VRE AS INTEGER
col AS STRING * 48
RES AS STRING * 1
PLA AS STRING * 1
BYT AS INTEGER
pal AS INTEGER
FIL AS STRING * 58
END TYPE
DIM SHARED pcx AS pcxgs
SCREEN 13
pcxload256 10, 10, "games\pcx16\1.pcx"
a$ = INPUT$(1)
DEFINT A-Z
SUB CHANGECOLOR (RedValue, GreenValue, BlueValue, ColorNumber)
OUT &H3C8, ColorNumber
OUT &H3C9, RedValue
OUT &H3C9, GreenValue
OUT &H3C9, BlueValue
END SUB
DEFSNG A-Z
SUB pcxload256 (left%, right%, File$) STATIC
'读取 256色图片
DIM dat AS STRING * 1
DIM dats AS STRING * 2
c& = 1: x% = 1: y% = 1
filenumber% = FREEFILE
OPEN File$ FOR BINARY AS #filenumber%
'------------------调色板开始--------------
GET #filenumber%, 9, dats '图片宽度。第9,10字节
w% = CVI(dats) + 1
GET #filenumber%, 11, dats '图片高度。第11,12字节
h& = CVI(dats) + 1
GET #filenumber%, LOF(filenumber%) - 768, dat '读取图片调色板
FOR lps% = 0 TO 255
GET #filenumber%, , dat
aa% = INT(ASC(dat) \ 4)
GET #filenumber%, , dat
bb% = INT(ASC(dat) \ 4)
GET #filenumber%, , dat
cc% = INT(ASC(dat) \ 4)
CHANGECOLOR aa%, bb%, cc%, lps%
NEXT lps%
'------------------调色板结束--------------
GET #filenumber%, 1, pcx
WHILE c& <= w% * h&
GET #filenumber%, , dat
IF ASC(dat) > 192 AND ASC(dat) <= 255 THEN
lps% = ASC(dat) - 192
GET #filenumber%, , dat
value% = ASC(dat)
WHILE lps% > 0
PSET (x% + left%, y% + right%), value%
IF x% = w% THEN
x% = 1
y% = y% + 1
ELSE
x% = x% + 1
END IF
c& = c& + 1
lps% = lps% - 1
WEND
ELSE
value% = ASC(dat)
PSET (x% + left%, y% + right%), value%
IF x% = w% THEN
x% = 1
y% = y% + 1
ELSE
x% = x% + 1
END IF
c& = c& + 1
END IF
WEND
CLOSE #filenumber%
END SUB
我来回复