文章 "图形界面 XI: 渲染控件 (统合构建14.2)"

 

新文章 图形界面 XI: 渲染控件 (统合构建14.2)已发布:

在新版本的函数库中, 所有控件将在 OBJ_BITMAP_LABEL 类型的单独图形对象上绘制。我们还将继续描述代码的优化: 讨论函数库核心类的变化。

以下是不同类型按钮的外观:

 图例. 9. 演示几种按钮类型的外观。

图例. 9. 演示几种按钮类型的外观。

作者:Anatoli Kazharski

 

酷!这是最终版本吗?这样,如果我从标准面板切换到你的面板,就不必在更新时重新做很多事情了。

 
Maxim Dmitrievsky:

酷!这是最终版本,还是会有更多改进?这样,如果我从标准面板切换到你的面板,就不必在更新时重新做很多事情了。

现在已经有一篇文章要发表了,其中有一些新增内容。输入框和组合框将添加到表格单元格中。

作为公告,我可以向大家展示一下它的样子:


//---

此外,我们还计划集成一个图形标准库,本文将对此进行描述:Visualise it(可视化)!MQL5 中的图形库与 R 中的 plot 类似

之后,我将休息一下。最后)

 

我不太了解指针,也不太了解使用方法的方法。

例如,当你创建一个背景时,intellens 会显示很多不适用于背景的方法。

这造成了很多困惑......

有没有可能在创建对象时只显示适用于对象的方法?


下面是一个例子

类测试

{

int met_1();

int met_2();

int met_3();

int met_4();

int met_5();

};


类 TEST2:公共测试

{


}

如何使子类中只有 3 4 个方法可见,而其他方法不可见?

 
Vladimir Pastushak:

...

如何使子类中只有 3 4 个方法可见而其他方法不可见?

定义访问说明符。

MQL5 参考指南>语言基础>变量>访问指定符 部分

以下指定符用于访问结构和类的成员:

  • public- 允许不受限制地访问类中的变量或方法;
  • protected- 允许访问本类的方法以及公开继承类的方法。其他访问是不可能的;
  • private- 只允许本类的方法访问类的变量和方法。
  • virtual- 仅适用于类方法(但不适用于结构方法),并通知编译器该方法应放在类的虚拟函数表中。

 
Anatoli Kazharski:

表示访问说明符。


我读了它,也看了视频课程,但我不明白....。

能给我一个简单的例子吗?

 
Vladimir Pastushak:

我读了它,也看了视频课程,但我还是不明白....。

你能举个简单的例子吗?

至少读读这篇文章:面向对象编程基础 >>>。 一切都很清楚,里面还有例子。

或者开设一个主题,提出有关面向对象编程的问题。

 
Anatoli Kazharski:

至少读读这篇文章:面向对象编程基础 >>>。 一切都很清楚,而且还有例子。

或者开设一个主题,提出有关面向对象编程的问题。


我都读过了,问题是,对作为程序员的你来说,这似乎是完美或正确的,因为你是这门学科的专家。

但对我这个不懂这门学科的人来说,这并不清楚.....。虽然我已经用过程式风格写了很长时间,但我还在努力掌握面向对象....。

 
Vladimir Pastushak:

我不太了解指针,也不太了解使用方法的方法。

例如,当你创建一个背景时,intellens 会显示很多不适用于背景的方法。

这造成了很多困惑......

有没有可能在创建对象时只显示适用于对象的方法?

下面是一个例子

class test

{
int met_1();
int met_2();
int met_3();
int met_4();
int met_5();
};

class TEST2: public test
{
}

如何使子类中只有 3 4 个方法可见,而其他方法不可见?

它们不适用吗?必须显示父对象的方法。在标准库中,我们添加了显示继承方法的特殊块。例如CWndObj

 
Vladimir Pastushak:

我都读过了,问题是,对于作为程序员的你来说,这似乎是完美或正确的,因为你是这个学科的人。

但对我这个不懂这门学科的人来说,这并不清楚.....。虽然我已经用过程式风格写了很长时间,而且我也在努力掌握对象......

那就再试着读一读吧。你的问题已经有了明确的答案。再清楚不过了。

在那里或其他讨论 OOP 的主题中提问吧。在这里,我们讨论的是一个用于创建图形界面 的库。

 

你好。Tol,我在示例中没有找到如何在窗口中绘制分界线。

索引 是什么意思?

bool CSeparateLine::CreateSeparateLine(const int index,const int x_gap,const int y_gap,const int x_size,const int y_size)

应该传递什么索引参数?

同时还有一个问题:在具有一定透明度的窗口背景上绘制文本标签(CTextLabel)时,标签是在不透明的背景上绘制的,而不透明的背景对 Alpha() 方法没有反应,这看起来不太好 ....。是否有可能使标签的背景也具有透明度?