回 帖 发 新 帖 刷新版面

主题:最近的三个目标研究了两个,还有一个要麻烦冷石了

最近预定了三个目标:
1、QB内嵌入汇编
2、QB调用鼠标
3、QB显示图像
最后一个得向冷石讨教了,哈哈

回复列表 (共6个回复)

沙发

调用鼠标..?
好象QB7.1有个很好的例子
我是直接调用的.(做了点小小的修改..让他能在xp下画出自己的指针)
图形反而要你去内嵌看看怎么提速了

板凳

显示位图,还有画指针什么的还得请教请教你呀

3 楼

请教你两个问题怎么画鼠标指针和怎么显示BMP图像

4 楼

还有就是别的调用方法怎么用,还得告诉我一下
比如调用汇编有用库调用的

5 楼

最近我看了几个帖子都关于QB实现网络通信的,冷石有没有研究过,有啥经验告诉一下,实在不行做个COM口通信的??

6 楼

图片我只会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

我来回复

您尚未登录,请登录后再回复。点此登录或注册