在Canvas上做一个众包项目 - 页 8 123456789101112131415...45 新评论 Zorro 2016.07.25 15:29 #71 o_O:好的。CFrame是清楚的。--- 我注意到你走了一条路,即gui块由它们自己的位图来表示。对于那些正在阅读这篇文章并且已经开始考虑这个问题的人来说,重要的一点是: 应该只在一个位图上工作,所有的gui元素都在上面渲染。包括z-order。 在这种情况下,将有更多的可能性进行渲染。(阴影、渐变等),而且控制也被简化了(我们不会达到MT对象的水平) 我认为,每个单独的应用程序窗口(对话框)应该在图表上有自己的位图和对象(甚至不要考虑多个EA或指标将 "强奸 "一个位图资源的情况)。 在这种情况下,一个窗口的阴影可以作为一个阿尔法通道位图来实现,从而消除计算这个阴影的计算负荷。 单个窗口的所有GUI元素都画在它的位图上,考虑到Z顺序和嵌套(我不知道如何正确调用GUI对象的嵌套) 通过CHARTEVENT_MOUSE_MOVE监控鼠标事件,我在我的项目 中做过,没有发现滞后。 在不损失鼠标输入质量的情况下使用其他事件是不可能的。 Zorro 2016.07.25 15:45 #72 对于我的MQL项目,我想把GUI库变成WPF的类似物,其中标记和事件是在一个文本文件(如XML)中描述。 我只需要根据文本文件中的描述实现GUI引擎将调用的事件。 --- 2016.07.25 15:46 #73 Zorro: 我认为,每个单独的应用程序窗口(对话框)应该在图表上有自己的位图和对象(甚至不要考虑多个EA或指标将 "滥用 "一个位图资源的情况)。 在这种情况下,一个窗口的阴影可以作为一个阿尔法通道位图来实现,从而消除计算这个阴影的计算负荷。 单个窗口的所有GUI元素都在其位图上绘制,考虑到Z顺序和嵌套(我不知道如何调用GUI对象的嵌套)。这是对的。 我想补充的是,不仅仅是 "每个对话框",而是具体到每个专家/指标的一个位图。 更多是可能的,但那是由编码者决定的。我认为,当你在位图上有一个工作的对话框,然后在同一个位图上添加模态窗口,或者在同一个位图上添加另一个对话框--这是一个技术问题,现在不是一个原则问题。首先,我们做一个抽象的模型,没有具体的细节,例如,哪些窗口位于哪里,等等。 然后你将能够涵盖所有不同的特征和行为 Maxim Kuznetsov 2016.07.25 15:49 #74 o_O:问候编码员。有一个有趣的任务是做一些真正有用的事情,我认为众包是一个好的选择。 首先,结果将在早期阶段提供给所有人。第二,我们将使用MQL制作新的东西。也许我们甚至会向MT的开发者索取新的好东西。----因此,这里是第一个和基本的任务。1.我们需要制作一个按钮类(比方说GButton,为了不与现有的按钮混淆,以G为前缀)。- 到目前为止,这个按钮只是简单的文字(没有多余的图片)- 按钮被画在画布的某个区域- 按钮有一个点击事件。 我很感兴趣地关注着这个问题,并想干涉一下:我认为开发者(像我一样)会投资于拥挤的GUI,如果这个GUI不仅可以通过终端来绘制。我将解释--漂亮的GUI是好的,它对销售是一个加分项......但就目前而言,它不会吞噬资源。如果有一个可以切换后端的GUI库,那就更理想了。例如,当我对资源不太在意时--让它由终端在画布上画出来(演示/市场),但一旦有了严肃的东西--通过快速工具在位图上画出来。有各种各样的开罗(更不用说OpenGL)可以更容易地处理绘图。 理想的图形用户界面是在一个单独的应用程序中设计的,例如以XML的形式导入。在EA中描述按钮和对话表单的位置不是一个好主意。 Zorro 2016.07.25 15:56 #75 例子,原理图。 布局。<sample> <window name='Sample' caption='Sample' x=0 y=0 width=320 height=240 OnClose='CloseApp'> <button caption='Exit' x y width height OnClick='ButtonExitClick'/> </window> </sample> 事件的实施。class SampleCloseAction : public CloseAction { public: SampleCloseAction() { SetActionName("CloseApp"); } virtual int Execute() { Print('Bye'); return(0); } }; class ButtonExitAction : public ButtonClickAction { public: ButtonExitAction() { SetActionName("ButtonExitClick"); } virtual int Execute() { GUI::WindowClose('Sample'); return(0); } }; BaseAction *actions[]; actions[0]=new SampleCloseAction; actions[1]=new ButtonExitAction; GUI::WindowCreate('Sample',actions); --- 2016.07.25 15:56 #76 Maxim Kuznetsov: 一般来说,最理想的是有一个在单独的应用程序中设计的GUI,并以XML的形式导入,例如。在专家顾问中编写按钮和对话框的布局并不是一个好主意。在那里 ) 你来看看我们的第一个任务,我们将在创建元素后进行。 Vasiliy Sokolov 2016.07.25 16:04 #77 Maxim Kuznetsov: 一般来说,最理想的是有一个在单独的应用程序中设计的GUI,并以XML的形式导入,例如。在EA中编写按钮布局和对话表单不是一个好主意。 在这种情况下,首先,你应该写一个快速和良好的XML解析器。这是在家里的一个好东西。我自己使用的是一个版本的CodeBase,它对一些任务来说太慢了,特别是对新的构建来说。我已经把所有这些补丁和拐杖放在里面了。总的来说,写一个好的解析器吧,同志们!让每个人都能轻松应对。 Реter Konow 2016.07.25 16:52 #78 Vasiliy Sokolov: 在这种情况下,你应该从编写一个快速和良好的XML解析器开始。家里有这个东西是很方便的。我自己也在使用一个版本的CodeBase,但它在某些任务上真的很慢,特别是在新的构建中。我已经把所有这些补丁和拐杖放在里面了。总的来说,写一个好的解析器吧,同志们!让每个人都能轻松应对。 也许你知道如何制作一个完全工作的、完全绘制的滑块?至少在一般情况下...我想掌握一般的概念。 Vasiliy Sokolov 2016.07.25 17:05 #79 Реter Konow: 也许你知道如何制作一个可以工作的、完整绘制的滑块?至少在一般情况下...我想了解一下一般的概念。 不幸的是,我不能。这是一个相当复杂的元素,即使你在普通基元的基础上创建它。 --- 2016.07.25 17:06 #80 Реter Konow: 也许你知道如何制作一个完全工作的、完全绘制的滑块?至少在一般情况下...我想了解一下一般的概念。看看CCanvas类。所有的渲染基元都是可用的。其次,你可以为你的空的东西加载bmp,然后像BitBlt那样把它们洗到画布上。 123456789101112131415...45 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
好的。
CFrame是清楚的。
---
我注意到你走了一条路,即gui块由它们自己的位图来表示。对于那些正在阅读这篇文章并且已经开始考虑这个问题的人来说,重要的一点是:
应该只在一个位图上工作,所有的gui元素都在上面渲染。包括z-order。
在这种情况下,将有更多的可能性进行渲染。(阴影、渐变等)
,而且控制也被简化了(我们不会达到MT对象的水平)
在这种情况下,一个窗口的阴影可以作为一个阿尔法通道位图来实现,从而消除计算这个阴影的计算负荷。
单个窗口的所有GUI元素都画在它的位图上,考虑到Z顺序和嵌套(我不知道如何正确调用GUI对象的嵌套)
通过CHARTEVENT_MOUSE_MOVE监控鼠标事件,我在我的项目 中做过,没有发现滞后。
在不损失鼠标输入质量的情况下使用其他事件是不可能的。
我只需要根据文本文件中的描述实现GUI引擎将调用的事件。
我认为,每个单独的应用程序窗口(对话框)应该在图表上有自己的位图和对象(甚至不要考虑多个EA或指标将 "滥用 "一个位图资源的情况)。
在这种情况下,一个窗口的阴影可以作为一个阿尔法通道位图来实现,从而消除计算这个阴影的计算负荷。
单个窗口的所有GUI元素都在其位图上绘制,考虑到Z顺序和嵌套(我不知道如何调用GUI对象的嵌套)。
这是对的。
我想补充的是,不仅仅是 "每个对话框",而是具体到每个专家/指标的一个位图。 更多是可能的,但那是由编码者决定的。
我认为,当你在位图上有一个工作的对话框,然后在同一个位图上添加模态窗口,或者在同一个位图上添加另一个对话框--这是一个技术问题,现在不是一个原则问题。
首先,我们做一个抽象的模型,没有具体的细节,例如,哪些窗口位于哪里,等等。
然后你将能够涵盖所有不同的特征和行为
问候编码员。
有一个有趣的任务是做一些真正有用的事情,我认为众包是一个好的选择。
首先,结果将在早期阶段提供给所有人。第二,我们将使用MQL制作新的东西。也许我们甚至会向MT的开发者索取新的好东西。
----
因此,这里是第一个和基本的任务。
1.我们需要制作一个按钮类(比方说GButton,为了不与现有的按钮混淆,以G为前缀)。
- 到目前为止,这个按钮只是简单的文字(没有多余的图片)
- 按钮被画在画布的某个区域
- 按钮有一个点击事件。
理想的图形用户界面是在一个单独的应用程序中设计的,例如以XML的形式导入。在EA中描述按钮和对话表单的位置不是一个好主意。
布局。
事件的实施。
一般来说,最理想的是有一个在单独的应用程序中设计的GUI,并以XML的形式导入,例如。在专家顾问中编写按钮和对话框的布局并不是一个好主意。
在那里 )
你来看看我们的第一个任务,我们将在创建元素后进行。
一般来说,最理想的是有一个在单独的应用程序中设计的GUI,并以XML的形式导入,例如。在EA中编写按钮布局和对话表单不是一个好主意。
在这种情况下,你应该从编写一个快速和良好的XML解析器开始。家里有这个东西是很方便的。我自己也在使用一个版本的CodeBase,但它在某些任务上真的很慢,特别是在新的构建中。我已经把所有这些补丁和拐杖放在里面了。总的来说,写一个好的解析器吧,同志们!让每个人都能轻松应对。
也许你知道如何制作一个可以工作的、完整绘制的滑块?至少在一般情况下...我想了解一下一般的概念。
也许你知道如何制作一个完全工作的、完全绘制的滑块?至少在一般情况下...我想了解一下一般的概念。
看看CCanvas类。所有的渲染基元都是可用的。
其次,你可以为你的空的东西加载bmp,然后像BitBlt那样把它们洗到画布上。