`
lilisalo
  • 浏览: 1102013 次
文章分类
社区版块
存档分类
最新评论

FORCAL扩展动态库之Windows窗口库FcWin

 
阅读更多

欢迎访问 Forcal数学软件

FORCAL扩展动态库之Windows窗口库FcWin

目 录

1 什么是FcWin

2 Windows控件窗口

FcWin::WinControl 控件窗口生成函数
FcWin::ClearEdit 清除当前有效的编辑框输出窗口的内容
FcWin::SetEditText 设置指定的编辑框窗口的内容
FcWin::SetCodeToEdit 将当前命令字符串传送到指定的编辑框
FcWin::  

3 一般窗口函数

FcWin::MessageBox 消息框函数
FcWin::  

1 什么是FcWin [返回页首]

FcWin32W.dll是一个基于Forcal的Windows窗口扩展动态库,主要包含一些操作Windows窗口的函数。

在FcWin中的函数是通过二级函数命名空间“FcWin”输出的,所有函数均具有类似“FcWin::MessageBox(...)”的格式。使用!using("FcWin");可简化FcWin中的函数访问。

FcWin32W.dll需要FcData32W.dll的支持,FcData32W.dll要先于FcWin32W.dll加载。

2 Windows控件窗口 [返回页首]

[返回页首][实数函数] FcWin::WinControl(...):控件窗口生成函数

用户可在窗口中自定义多个控件,为计算提供了方便。目前可以使用的控件有编辑框、静态文本、普通按钮、单选按钮、复选框、组框、位图等。

可以使用以下常量:

1) AUTOCLOSEWINDOW:卸载FcWin32W.dll时,自动关闭打开的窗口,如果不包含此常量,需手动关闭窗口。
2) BUTTON: 标识普通按钮控件。
3) RADIOBUTTON: 标识单选按钮控件。
4) CHECKBOX: 标识复选框控件。
5) GROUPBOX: 标识组框控件。
6) EDIT: 标识编辑框控件。
7) STATIC: 标识静态文本控件。
8) BITMAP: 标识位图控件。

当WinControl[...]多于两个参数时,可以在参数中直接定义控件使用,这是该函数的一般用法。
当WinControl[a,20]只有两个参数时,第一个参数为一维数组,第二个参数为数组中的有效数据个数,控件在数组中定义。

运行错误:

1、参数不匹配;
2、字符串地址错误;
3、窗口或控件的位置及大小不能小于0;
4、内存分配失败;
5、不可识别控件ID;
6、数组地址错误,指定的数组不存在;
7、没有足够的数组元素个数。

---------------------------------------------------------------------------

WinControl用法1:一般用法

每次调用WinControl[...]函数将会打开一个窗口,可以在窗口中放置多个预定义的控件,当用户选择了该控件时,可以执行相应的预定义的操作。我们通过例子说明WinControl[]函数的使用:

!using("FcWin");

(:DoStr)=
{ DoStr= //变量DoStr保存程序代码;

"
(*计算时清屏*)
FcWin::ClearEdit[]; //在单击普通按钮时(*...*)中的字符串将被替换为指定的文本;
(*表达式*);
(*MB*);
",

//在WinControl[...]函数中定义各类控件及操作;
WinControl
{ "例子",0,0,500,550,//窗口名称为"例子",0,0,500,550定义了该窗口的大小;


//静态文本控件定义,控件标题是"表达式:",10,10,70,20是该控件在窗口中的相对位置;
STATIC,"表达式:",10,10,70,20,

//编辑框控件定义,该编辑框的名称为"表达式",1表示是多行编辑框,若该项为-1则表示是单行编辑框;
//80,10,380,100是该控件在窗口中的相对位置,最后的字符串""用于设置初始化文本;
//在单击普通按钮时将用编辑框中的文本替换指定字符串中的子串(*表达式*);
EDIT,"表达式",1,80,10,380,100,"",

//组框控件定义,控件标题是"组框",10,120,90,60是该控件在窗口中的相对位置;
GROUPBOX,"组框",10,120,90,60,

//单选按钮控件定义,控件标题是"消息框1",15,135,80,20是该控件在窗口中的相对位置;
//"MB"表示是同一组单选按钮(只要该位置有相同的字符串,就属于同一组单选按钮,用户只能选择其中的一个);
//最后一个字符串"..."定义了按钮被选择后将被替换的文本;
//在单击普通按钮时,若选择了"消息框1",则用"FcWin::MessageBox(/"aaa/",/"消息框1/")"替换指定字符串中的子串 (*MB*);
//在单击普通按钮时,若选择了"消息框2",则用"FcWin::MessageBox(/"bbb/",/"消息框2/")"替换指定字符串中的子串 (*MB*);
RADIOBUTTON,"消息框1",15,135,80,20,"MB","FcWin::MessageBox(/"aaa/",/"消息框1/")",
RADIOBUTTON,"消息框2",15,155,80,20,"MB","FcWin::MessageBox(/"bbb/",/"消息框2/")",

//复选框控件定义,控件标题是"计算时清屏",120,135,100,20是该控件在窗口中的相对位置;
//在单击普通按钮时,若设置了选中标志,则用""替换指定字符串中的子串 (*计算时清屏*);
//在单击普通按钮时,若没有设置选中标志,则用"//"替换指定字符串中的子串 (*计算时清屏*);
//-1表示初始化时不设置选中标志,若为1则表示初始化时设置选中标志;
CHECKBOX,"计算时清屏",120,135,100,20,"","//",-1,

//普通按钮控件定义,控件标题是"计算",400,335,50,25是该控件在窗口中的相对位置;
//在单击该按钮时,先对字符串DoStr中的子串(*...*)进行相应地替换,具体替换行为如前所述;
//对字符串DoStr处理完所有的控件替换后,编译计算该字符串中的表达式,将结果输出到编辑框"结果输出2:";
//注意字符串DoStr中的内容在前面进行了定义,DoStr表示该字符串的地址;
BUTTON,"计算",400,335,50,25,DoStr,"结果输出2:",

//位图控件定义,加载位图文件"函数图象.bmp",245,120,220,180是该控件在窗口中的相对位置;
BITMAP,"函数图象.bmp",245,120,220,180,

STATIC,"结果输出1:",10,310,100,20,
EDIT,"结果输出1:",-1,120,310,330,20,"aaaaaa",

STATIC,"结果输出2:",10,340,100,20,
EDIT,"结果输出2:",1,10,370,450,130,""
}
};

运行时,请输入 FcWin::SetEditText("结果输出1:","结果输出到了这里!"); 或者 FcWin::SetCodeToEdit("结果输出2:"); ,观察运行情况。

---------------------------------------------------------------------------

WinControl用法2:允许使用一个数组传递参数

!using("FcWin","XSLSF");

(::array)= array=new[rtoi(real_s),rtoi(20)]; //定义数组array,元素个数为20个;
(::begin)= begin=0;
//begin>0时开始打开窗口;

//num为数组array中的有效数据个数,其余全局变量为控件定义中用到的字符串,这些字符串和WinControl[]必须在一个表达式中;
f(::array,begin,num,Titil,Static1)=
{
Titil="例子", Static1="静态文本控件!",
if[begin++, WinControl(array,num-1)]
};

(::num)= num=0;
//定义窗口大小及标题;
(::array,num,Titil)=setra(array,&num,Titil,0,0,300,300);
//定义静态文本控件;
(::array,num,Static1)=setra(array,&num,STATIC,Static1,100,100,150,20);

f[]; //显示窗口;

[返回页首][实数函数] FcWin::ClearEdit():清除当前有效的编辑框输出窗口的内容

[返回页首][实数函数] FcWin::SetEditText("编辑框名称","内容"):设置指定的编辑框窗口的内容

如果指定的编辑框"编辑框名称"存在,将该编辑框的内容替换为"内容"。
该函数可能返回如下运行错误:1、指定的字符串不存在。

[返回页首][实数函数] FcWin::SetCodeToEdit("编辑框名称"):将当前命令字符串传送到指定的编辑框

如果指定的编辑框"编辑框名称"存在,用当前命令字符串替换该编辑框的内容。该函数用于编程调试。
该函数可能返回如下运行错误:1、指定的字符串不存在。

[返回页首][整数函数、实数函数] FcWin::(... ...):

 

3 一般窗口函数 [返回页首]

[返回页首][整数函数、实数函数] FcWin::MessageBox("消息框中显示的字符串","作为标题的字符串"):消息框函数

格式1:MessageBox["消息框中显示的字符串","作为标题的字符串"]
格式2:MessageBox["消息框中显示的字符串","作为标题的字符串",nType]
格式3:MessageBox[HWND,"消息框中显示的字符串","作为标题的字符串",nType]

说明:HWND标识将被创建的消息框的拥有窗口,如果此参数为0,则消息框没有拥有窗口;nType指定一个决定对话框的内容和行为的位标志集,此参数可以为下列标志组中标志的组合:
MB_OK
MB_OKCANCEL
MB_YESNO
MB_YESNOCANCEL
其他标志请参考WINDOWS API手册中该函数的说明。
返回值:如果没有足够的内存来创建消息框,则返回值为0。如果函数调用成功,则返回值为下列对话框返回的菜单项目值中的一个:
IDABORT:Abort按钮被选中。
IDCANCEL:Cancel按钮被选中。
IDIGNORE:Ignore按钮被选中。
IDNO:NO按钮被选中。
IDOK:OK按钮被选中。
IDRETRY:RETRY按钮被选中。
IDYES:YES按钮被选中。
标志和返回值的具体值请参考WINDOWS API手册,也可以自行验证。

该函数实际上是一个整数函数,但可以作为实数函数来使用。
该函数可能返回如下整数运行错误:1:参数设置不符合要求;2:指定的字符串不存在。


版权所有© Forcal数学软件 2002-2009,保留所有权利
E-mail:
forcal@sina.com
QQ:630715621
最近更新: <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y年%m月%d日" startspan -->2009年11月08日<!--webbot bot="Timestamp" i-checksum="1628" endspan -->

分享到:
评论

相关推荐

    FORCAL数值计算扩展动态库FcIMSL V1.0测试版.pdf

    FORCAL数值计算扩展动态库FcIMSL V1.0测试版.pdf

    开放式计算程序OpenFC

    OpenFC通过加载Forcal扩展动态库进行功能扩展,这些库可以用VC、Delphi或者Fortran等高级语言进行编写。  OpenFc可以对源程序进行模块化编译,可以打开多个文件同时进行操作,提高了运行效率。  OpenFC允许用户将...

    通用的数学表达式编译计算动态库 V5.1

    该动态库支持实数、复数和整数三种类型的数学表达式,这三种表达式可以单独使用,也可同时使用,在同时使用时,允许三种表达式之间的相互调用。 该动态库中的基本函数总数达100多个,除了包括常用数学函数外,还...

    Forcal数据库应用

    让Forcal的控制台应用程序能够读取数据库中的表达式字符串并计算,你只要双击\ForcalConsole\Forcal数据库应用\ForcalConsole.exe文件,就可以完成创建数据库,读取数据库中的表达式字符串并运算的功能了。...

    forcal编程软件

    这个是forcal进行编程的工具,对于需要此程序的人,希望能提供帮助

    FORCAL V7.0 字符表达式编译运行库

    内容索引:VC/C++源码,控件相关,Forcal,编译 Forcal是一个对字符表达式进行编译计算的动态链接库,具有数值计算、关系运算、逻辑运算、字符处理、流程控制、函数调用等许多的可编程功能。它的部分开发文档是由C++...

    VC Forcal7调用例子.rar

    VC Forcal7调用例子,请在此输入表达式!一次只计算一个表达式!  可在多行中输入表达式。  如果有自变量,只进行编译,但将保留编译结果,自定义的函数随时可以调用。  重新初始化将清除以前的编译结果。  ...

    数学计算系统.rar

    数学和工程计算平台,采用forcal语言和内核,内置有丰富的范例可供参考,可广泛应用于数学建模,工程设计与计算,作图,程式设计等等,计算速度快而准确,让你解决问题不再感觉困难。

Global site tag (gtag.js) - Google Analytics