自己整理的Fortran可视化库函数
USE IFQWIN 函数
参数类型字节作用
SETEXITQQ
exitmode 子函数
integer(4)设置 QuickWinApplicat exitmode QWIN$EXITPROMPT integer(4)为程序的默认情况
exitmode QWIN$EXITNOPERSIST integer(4)编译运行后窗口出现后马exitmode QWIN$EXITPERSIST integer(4)运行后窗口正常显示,没SETWSIZEQQ
unit,winfo 子函数integer(4)设置窗口的尺寸和位置unit 0,5,6integer(4)默认子窗口代号,该函数unit QWIN$FRAMEWINDOW integer(4)主窗口号winfo type(qwinfo)
type qwinfo
结构体
integer(2)TYPE
winfo%type
integer(2)x integer(2)y integer(2)H integer(2)W
END type qwinfo
SETBKCOLORRGB
color 子函数integer(4)更改窗口背景色,该函数并color #FF0000十六进制数每两位分别为蓝绿红color RGBTOINTEGER(0,0,0)子函数0~255,分别为蓝绿红RGBTOINTEGER blue,green,子函数integer(4)将RGB 分量值转换为代表blue,green,0~255integer()将RGB 分量值CLEARSCREEN
area 子程序integer(4)刷屏
area $GCLEARSCREEN
integer(4)用指定的颜色清除屏幕$GVIEWPORT integer(4)用指定的颜色清除当前视$GWINDOW
integer(4)用指定色清除当前用SET SETTEXTCOLORRGB color
子函数integer(4)文本的颜色,该函数只影
GETWINDOWCONFIG
wc 子函数
logical( kin
获取子窗口的相关
特征wc
type (windowconfig)type (windowconfig)
结构体,记录窗口特性
integer(2)numxpixels integer(2)numypixels integer(2)numtextcols integer(2)numtextrows integer(2)numcolors integer(4)fontsize CHARACTER(80title
integer(2)bitsperpixel integer(2)mode CHARACTER(32extendfontname
INTEGER(4) e xtendfontsize
INTEGER(4)extendfontattributes
END TYPE windowconfig
SETWINDOWCONFIG wc子函数logical(kind为了灵活使用子窗口,在
SETTEXTPOSITION row,column,t
子程序指定相对于文本窗口的文本输出位置
row integer(2)文本的行定位数
column integer(2)列定位数
t type(rccoord)保存之前的光标位置
type(rccoord)结构体
integer(2)row
integer(2)col
END TYPE rccoord
图形窗口模式
OUTGTEXT text子程序图形模式窗口中,为充分利用坐标定位带来text character(len=*)t''Arial''h18w10' INITIALIZEFONTS子函数integer(2)初始化操作系统中的字体
SETFONT option子函数integer(2)指定字体及其大小
option character(len=*)表述字体特征t''Arial''h18w10'
MOVETO x,y,t子程序为了确定文本输出位置,需调用子程序 x
y
t type(rccoord)保存了视口中前一位置的坐标
SETGTEXTROTATION degree-tent子程序文本输出需要倾斜角度degree-tenths integer(4)取值为旋转角度乘10 之多子窗口
OPEN UNIT,FILE,TITLE,IOFOCUS
函数创建子窗口
UNIT11,12等等integer(4)子窗口代号
FILE character(len=*)
USER'时打开的是子窗口TITLE character(le子窗口标题
IOFOCUS logical是否有焦点DISPLAYCURSOR a子函数integer(4)子窗口中显示闪烁的光标a$GCURSORON integer(4)
ClickMenuQQ a子函数integer(4)用来执行Quickwin预先封
a QWIN$TILE integer(4)
键盘事件
GETCHARQQ子函数character*(1)
捕获键盘事件,返回值为PASSDIRKEYSQQ logical子函数logical(4)准确监测这些特殊按键,鼠标事件
WaitOnMouseEvent mouseevents子函数integer(4)等待所关心的鼠标事件的mouseevents integer(4)传入值,用户所要监测的鼠
MOUSE$LBUTTONDOWN integer(4)按下鼠标左键
MOUSE$LBUTTONUP integer(4)释放鼠标左键首先,为监测鼠标事件, 应用程序必须包括无限循环 do while(.true.) resul
MOUSE$LBUTTONDBLCLK integer(4)双击鼠标左键MOUSE$RBUTTONDOWN integer(4)按下鼠标右键MOUSE$RBUTTONUP integer(4)释放鼠标右键MOUSE$RBUTTONDBLCLK integer(4)双击鼠标右键MOUSE$MOVE
integer(4)移动鼠标
keystate integer(4)返回值,鼠标事件发生时其
MOUSE$KS_LBUTTON integer(4)事件中按下鼠标左键MOUSE$KS_RBUTTON integer(4)事件中按下鼠标右键MOUSE$KS_SHIFT integer(4)事件中按下 SHIFT 键MOUSE$KS_CONTROL integer(4)事件中按下 CTRL 键
x integer(4)返回值,鼠标的位置y integer(4)返回值,鼠标的位置
REGISTERMOUSEEVENT unit,mousee 子函数integer(4)应用程序中,不同的鼠标
unit integer(4)鼠标事件发生的窗口代码mouseevents integer(4)需要注册的鼠标事件callbackrou external :: ShowLocatio 子函数回调子程序,必须声明为external 代号为 unit 的窗口中, 当鼠标事件 mous
MouseCallBackRouti unit, mouse 子程序鼠标事件的外部处理回调程序
unit
integer(4)事件发生的窗口代号mouseevents integer(4)鼠标事件keystate integer(4)功能键的状态MouseXpos integer(4)鼠标位置坐标MouseYpos integer(4)鼠标位置坐标
菜单编程
APPENDMENUQQ
menuID, fla 子函数logical(4)添加菜单项到某菜单的最menuID integer(4)菜单编号, 从左向右数第1
flags integer(4)表明菜单的状态,如菜单text
character (len=*)
routine
外调子程序external
INSERTMENUQQ
menuID,item 子函数logical(4)将菜单项插入某菜单
menuID integer(4)菜单编号, 从左向右数itemID
integer(4)菜单项的插入位置,顺序0integer(4)将插入的菜单项作为第me 其他整数
integer(4)将菜单项插入第menuID个flag integer(4)text
character (len=*)routine 外调子函数external
DELETEMENUQQ
menuID, ite 子函数
logical(4)menuID, itemID
为回调子程序,必须申
明该菜单项是否被选中,同时, Rou WINPRINT 为打印命令子程序, WINSAV
系统自动忽略回调子程
为菜单项的名称,是 n
单项设置快捷键,则需要在对应的字母
键“CTRL+R”激活回
menuID integer(4)为菜单编号
itemID integer(4)为要删除的菜单项的编号MODIFYMENUFLAGSQQ
menuID,itemID,flag logical(4)用来修改菜单项的状态
menuID integer(4)
itemID integer(4)
flag integer(4) MODIFYMENUROUTINEQQ menuID,itemID,routine logical(4)用来改变菜单项的回调函menuID integer(4)
itemID integer(4)
routine external MODIFYMENUSTRINGQQ m enuID,itemID,text logical(4)用来改变菜单项名
menuID integer(4)
itemID integer(4)
text character (len=*)
INITIALSETTINGS子函数logical(4)用来设定 Quickwin 工程
位置
最尾
后窗口出现后马上消失
示,没有任何提示信息
位置
口代号,该函数作用窗口
QWIN$MIN最小化窗口
QWIN$MAX最大化窗口
QWIN$RESTOR
恢复最小化窗口到之前的大小
QWIN$SET根据Winfo 中的其它值设定窗口的位置和大小
背景色,该函数并不能自动改变窗口的背景色,只有当调用子程序 CLEARSCREEN 或者有文本 读写发生时,背景才会改变
别为蓝绿红
为代表相应颜色的整数
屏幕
颜色清除当前视口
用SETTEXTWINDOW指定的文本窗口
数只影响由文本输出函数EXT, WRITE 和 PRINT 产生的输出
将结果存入wc
录窗口特性
X方向像素值
Y方向像素值
文本行数
文本列数
颜色索引数
Q WIN$EXTENDFONT,此时由extendfontsize 指字体大小,如果指定了扩展字体, fontsize 应该赋值为
子窗口标题
单个像素的位数
控制滚动条的滚动模式
字体名称,用来定制扩展字体
字体大小,用来定制扩展字体
字体属性,如粗体、斜体等,用来定制扩展字体
使用子窗口,在文本和图形输出前需要调整窗口的属性值
行
列
窗口中,为充分利用坐标定位带来的方便,文本的输出
作系统中的字体
笔移至当前位置
文本输出位置,需调用子程序 MOVETO 将画
需要倾斜角度
转角度乘10 之后的数值,水平向右方向为角度0 角度起始方向,逆时针旋转为角度正方向
默认0,5,6
开的是子窗口
可缺省
显示闪烁的光标
uickwin预先封装的系统菜单
只能监测字母和数字按键,对功能键和方向键就无能为力了
按键,参数为真时,CHARQQ 函数会自动监测特殊按键; 当函数参数为假时, GETCHARQQ 函数不能
results = WaitOnMouseEvent( MOUSE$MOVE, state, x, y) end do
事件的发生
户所要监测的鼠标事件,如果需要检测多个鼠标事件,用函数 IOR 加以组合
生时其他功能键(如Shift)的状态, 是鼠标事件中其他功能键的状态。适合于判断鼠标左键按下且移动等组
中,不同的鼠标事件需要激活不同的任务,所以必须将鼠标事件和用户的目标任务结合起来, 也就是鼠标事件的注册
发生的窗口代码
序,必须声明为external
it 的窗口中, 当鼠标事件 mouseevents 发生时,程序就会执行子程序 callbackroutine 设定的任务, 从而完成了鼠标事的外部处理回调程序
项到某菜单的最后且注册菜单项的回调函数
右数第一个菜单编号为1,其它以此类推
如菜单项灰显等
, 从左向右数第一个菜单编号为1,其它以此类推插入位置,顺序为从上到下
菜单项作为第menuID个菜单出现,其它菜单顺次向右移位插入第menuID个菜单的指定位置
必须申明为EXTERNAL 类, 其中每个回调子程序都有一个逻辑参数,用来说单项是否被选中,同时, Routine 也可以是系统预先定义的子程序的名称,如
为打印命令子程序, WINSAVE 为保存命令子程序等。当该菜单有其他菜单项时,系统自动忽略回调子程序,此时可将 routine 的值设为Nul
,是 null-terminatedC 字符串,如'WORDS OFTEXT'C,如果要为菜单或菜快捷键,则需要在对应的字母前加上符号“&”,如“P&rint”,用户就能用组合键“CTRL+R”激活回调子程序,从而方便程序的操作
的编号,如果itemID 为0,则将删除第menuID 个菜单
菜单项的状态
菜单项的回调函数
Quickwin 工程中主窗口的外观和菜单项注意: Quickwin 工程中主窗口的外观和菜单项是由系统预设的 INITIALSETTI
函数来实现的。如果程序开发者自己需要设定主窗口的外观和菜单项,则只要重
写该函数即可。 INITIALSETTINGS 函数通常是被系统自动调用,而不需要显式
这点尤为重要
才会改变
由extendfontsize 指定扩展字体的大小
检测到方向键,此时,方向键的作用是移动滚动条的位置数不能
动等组合事件
鼠标事件的注册
务, 从而完成了鼠标事件的注册
INITIALSETTINGS
外观和菜单项,则只要重新编自动调用,而不需要显式调用,