现在可以在mt4图表上设置按钮和文本字段了 - 页 4

 

我试过tbIsChecked,但不工作。我有两个复选框。我想在SwingTradechk被选中时取消对DayTradechk的检查,反之亦然。

如果(tbIsChecked(SwingTradechk)) {tbSetChecked(DayTradechk, false);}
else {tbSetChecked(SwingTradechk, false);}。

我的代码里有什么问题?

 

好阿夫顿,我对编程一无所知。谁能给我解释一下如何在mt4图表上做按钮和文本字段 的可能步骤?

谢谢

 
幽灵:这个错误在最新的mt4gui版本中已经被修复了,我明天会在网站上更新。最新的mt4gui有几个不同之处,我必须在这里解释。
 

这里是最新的0.1.08版本(也就是0.8版本)的更新。

主要的变化是,函数的定义被扩展为hwnd作为第一个参数,所有对象(文本、标签、按钮、复选框、列表)都支持颜色。另外,tbSetChecked的问题也得到了解决。由于许多问题,我们把所有的样本文件和它们的依赖关系(libtrade.mqh和libvisual.mqh)都纳入了.zip文件。

这里是最新的定义。

#import "mt4gui.dll"   
   string tbVersion();       
   
   // objects "button","checkbox","list","label","text"
   int tbPutObject(int,string,int,int,int,int,string); // hwnd,type,x,y,w,h,label   
   
   // colors
   int tbSetBgColor(int,int,int); // hwnd,object,bgcolor
   int tbSetTextColor(int,int,int); // hwnd,object,color
   
   // removing objects
   int tbRemove(int,int);  // hwnd,handle
   int tbRemoveAll(int); // hwnd
   
   // events
   bool tbIsClicked( int,int ); // hwnd,object
   bool tbIsChecked(int,int); // hwnd,object
   // properties
   int tbSetText(int,int,string,int,string); // hwnd,object,text,fontsize,fontname   
   string tbGetText(int,int); // hwnd,object   
   int tbSetChecked(int,int,bool); // hwnd,object,true|false      
   int tbEnable(int,int,int); // hwnd, object, 0|1   
   
   // listbox 
   int tbAddListItem(int,int,string); // hwnd,object,item
   int tbGetListSel(int,int); // hwnd,object
   int tbSetListSel(int,int,int); // hwnd,object,index
   
#import

还有tbPutObject函数在wikihttp://www.fx1.net/wiki/pmwiki.php/MT4GUI/MT4GUI 里面有详细的描述。
 

fx1.net:

- tbSetChecked不起作用,我不能在init函数 中把复选框的状态设置为选中。

- 我怎样才能检测一个对象是否存在?我想把活跃的交易以复选框的形式添加到图表中,但不想一次又一次地创建对象。

 
#import "mt4gui.dll"   
   string tbVersion();       
   
   // objects "button","checkbox","list","label","text"
   int tbPutObject(int,string,int,int,int,int,string); // hwnd,type,x,y,w,h,label   
   
   // colors
   int tbSetBgColor(int,int,int); // hwnd,object,bgcolor
   int tbSetTextColor(int,int,int); // hwnd,object,color
   
   // removing objects
   int tbRemove(int,int);  // hwnd,handle
   int tbRemoveAll(int); // hwnd
   
   // events
   bool tbIsClicked( int,int ); // hwnd,object
   bool tbIsChecked(int,int); // hwnd,object
   // properties
   int tbSetText(int,int,string,int,string); // hwnd,object,text,fontsize,fontname   
   string tbGetText(int,int); // hwnd,object   
   int tbSetChecked(int,int,int); // hwnd,object,0|1
   int tbEnable(int,int,int); // hwnd, object, 0|1   
   
   // listbox 
   int tbAddListItem(int,int,string); // hwnd,object,item
   int tbGetListSel(int,int); // hwnd,object
   int tbSetListSel(int,int,int); // hwnd,object,index
   


   // obj management
   int tbSetName(int,int,string); // hwnd,object,name
   string tbGetName(int,int); // hwnd,object
   int tbGetObjectsCount(int); // hwnd
   int tbGetByNum(int,int); // hwnd,pos
   int tbGetType(int,int); // hwnd,obj
   int tbGetByName(int,string); // hwnd,name
   
#import
这是新的定义。目前服务器上的版本已经支持这个。tbSetChecked已经更新为int,int,int,第三个参数0|1定义了检查状态。
 

你好。

我在哪里可以找到最新的版本?在你的主页上只有0.1.08版本。

 
fx1.net:
这是新的定义。目前服务器上的版本已经支持这个。tbSetChecked已经更新为int,int,int,第三个参数0|1定义了检查状态。


使用你的按钮,MT4的不可思议的附加功能。

至于设置颜色,我注意到按钮是强制性的矩形,有经典的窗口阴影/边框。

将来是否有可能改变这些边框的颜色。 我有一些以图片为 "字体 "的按钮是圆形的,我想让 "后面 "的按钮不可见。 能够设置tbBGC颜色是很有帮助的,但是如果也能设置边框tbBorderShadowColor和tbBorderHighlightColor的话。

或者用一个标志来启用/禁用 "3D "边框(即制作一个没有可见边缘的平面按钮,就像我提到的,只用字体文本/符号作为可点击的组件。

再次感谢你的工作。 你说你是用C++语言制作的吗? 希望我对它的了解足够多,可以编写代码。

吉姆-本茨。

 

是的,这样的代码只有在低级别的编码语言如C++和好的老式Windows MFC中才能做到。我们一直在开发这个项目,我不会在这里发布所有的信息。

谢谢大家

 
你好。

你是怎么做列表菜单的?(screen on 21.05.2011 16:15 this thread)

如何使用函数。


string tbAddListItem(int hwnd,int object,string item)
string tbGetListSel(int hwnd,int object)
string tbSetListSel(int hwnd,int object,int index)
列表框("list")对象的相关函数

请举一些例子?谢谢你。