pva, а есть ли подобные функции (шум в картинке) в классическом GDI? Что бы разобраться на функциональном уровне, а не сразу в объектном GDI+/Direct3D
У меня есть функциональное предложение по коду, в процессе поиска предлагаю "находить каналы", хотя бы на профилактике.
Код:
void GeneratorTsvetnyhPolos_GDI(HDC *hDc, RECT *rectBar, int OffSet)
{
FillRect(*hDc, rectBar, CreateSolidBrush(RGB(255, 255, 255))); //Как вариант Rectangle
rectBar->left = rectBar->right;
rectBar->right += OffSet;
FillRect(*hDc, rectBar, CreateSolidBrush(RGB(196, 196, 0)));
rectBar->left = rectBar->right;
rectBar->right += OffSet;
FillRect(*hDc, rectBar, CreateSolidBrush(RGB(0, 196, 196)));
rectBar->left = rectBar->right;
rectBar->right += OffSet;
FillRect(*hDc, rectBar, CreateSolidBrush(RGB(0, 196, 0)));
rectBar->left = rectBar->right;
rectBar->right += OffSet;
FillRect(*hDc, rectBar, CreateSolidBrush(RGB(196, 0, 196)));
rectBar->left = rectBar->right;
rectBar->right += OffSet;
FillRect(*hDc, rectBar, CreateSolidBrush(RGB(196, 0, 0)));
rectBar->left = rectBar->right;
rectBar->right += OffSet;
FillRect(*hDc, rectBar, CreateSolidBrush(RGB(0, 0, 196)));
rectBar->left = rectBar->right;
rectBar->right += OffSet;
FillRect(*hDc, rectBar, CreateSolidBrush(RGB(0, 0, 0)));
}
//...
case WM_PAINT:
{
RECT rect = {0};
GetWindowRect(hWnd, &rect);
rect.right = (rect.right - rect.left) / 8;
rect.left = 0;
rect.bottom = rect.bottom - rect.top;
rect.top = 0;
PAINTSTRUCT ps = {0};
HDC hDc = BeginPaint(hWnd, &ps);
GeneratorTsvetnyhPolos_GDI(&hDc, &rect, rect.right);
EndPaint(hWnd, &ps);
}
break;
Код правда с применением функций GDI, по причине озвученной выше.