MetaQuotes Software, Bugfixes & Enhancements by Doerk.
When you start to work on a pixel basis with the standard library, you'll soon figure out, that sometimes a pixel here and there is missing. This weird behavior is caused mainly by several bugs in the CRect class. The main problem here is, that the original class is failing by calculating the height and the width of a rectangle, which influences almost ALL classes which derive from CWnd, because CWnd is graphically based on CRect.
In the original CRect, the width is calculated as following:
width = x2 - x1
This is simply wrong. When you create any rectangular object starting from 0,0 until 10,10, then the width of the object is 11 pixels, not 10 pixels. Therefore, the right answer is
width = x2 - x1 +1
In some other classes of the standard library it's calculated right, sometimes, but also not always (i.e. in CCanvas when creating and addressing the resource in memory, but not when filling a rectangle). Anyway, it's an inconsistent behavior and should be corrected.
It's now possible to compare two rectangles by using normal operators like == != >= <= > <
instead of coding
if (rect1.left==rect2.left && rect1.top==rect2.rect.top && rect1.right==rect2.rect.right && rect1.bottom==rect2.bottom)
you type now just
Furhtermore, unary operators like ++, --, + are supported as well and expand or inflate a rectangle.
FuzzyNet library for developing fuzzy models was written in C#. While converting to MQL5, 8 membership functions and 4 defuzzification methods for Mamdani-type systems were added to the library.CWndContainer Replacement
This file replaces the WndContainer.mqh original file. It prevents the chart from being affected when you click and hold the mouse inside a container area.