如何在程序中创建一个颜色块?我已经查看了MSDN文档以获得答案,但它似乎并不存在。我现在只需要能够在某些地方创建颜色块。 (我已经知道WM_CREATE
的工作原理以及如何在WndProc
中实现内容。)
答案 0 :(得分:0)
要在窗口上绘制任何内容,您需要处理WM_PAINT。然后,您将调用BeginPaint,使用各种函数进行绘制,最后调用EndPaint。
要绘制矩形,您可以使用FillRect。
此处有更多详情:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd162759(v=vs.85).aspx
还提供了一个引导范例:
https://msdn.microsoft.com/en-us/library/windows/desktop/ff381401(v=vs.85).aspx
基本上:
switch (uMsg)
{
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
// All painting occurs here, between BeginPaint and EndPaint.
FillRect(hdc, &ps.rcPaint, (HBRUSH) (COLOR_WINDOW+1));
EndPaint(hwnd, &ps);
}
return 0;
}
答案 1 :(得分:0)
您可以使用自定义颜色创建画笔,然后创建一个矩形或任何形状,然后填充它: 这个例子只是为了告诉你如何。
**将此代码放在窗口过程中
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hDc = BeginPaint(hWnd, &ps);
HBRUSH hBrush = CreateSolidBrush(RGB(90, 50, 120));
RECT rct = {100, 100, 300, 200};
FillRect(hDc, &rct, hBrush);
EndPaint(hWnd, &ps);
DeleteObject(hBrush); // freeing resource to avoid memory leak
}
break;