如何在程序中创建一个颜色块?我已经浏览了MSDN文档以获得答案,但似乎并不存在。现在我只需要能够在地方创建颜色块。 (我已经知道WM_CREATE
如何工作以及如何在WndProc
中实现)在WINAPI中创建一个颜色块
回答
您可以创建一个刷自定义颜色然后创建一个矩形角度或任何形状,然后填写它: 这个例子只是为了告诉你如何。
**把这个代码的窗口过程中
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;
这不会持续很长时间。在下一个“WM_PAINT”上有一个裁剪矩形与你的相交,它将成为历史。如果你想要显示它是如何完成的,那么做对(即把渲染代码放在一个'WM_PAINT'处理程序中)。 – IInspectable
要在窗口上绘制任何东西,您需要处理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;
}
@kitchik在你的例子中,你正在画整个客户区,这不是问题的关键。只需创建矩形或椭圆形或任何形状,然后用自定义颜色为其着色 – Raindrop7
- 1. 我想创建一个具有不同背景颜色块和不同悬停颜色块的导航栏块
- 2. 创建一个OS关闭按钮? (WinAPI)
- 3. 如何在javascript中创建一个散景颜色映射器?
- 4. 在matlab中创建一个定制的颜色条
- 5. 尝试在PHP中创建一个随机颜色生成器
- 6. 在按下按钮后在WinAPI中创建一个窗口
- 7. 使用依赖属性从四个滑块创建颜色C#
- 8. 在VBA中创建颜色矢量
- 9. 在PDF中创建透明颜色
- 10. 在C#中创建类RGB颜色#
- 11. 在JExcelApi中创建新颜色
- 12. 在cpp中创建颜色变化
- 13. 在view.phtml创建一个块
- 14. 创建颜色调色板从基色
- 15. 如何在2d颜色选择器中创建一个返回2色之间颜色的函数?
- 16. 用.NET中的gobal颜色表创建一个多帧gif
- 17. 从matplotlib中的RGBA函数创建一个颜色条
- 18. 如何在JavaScript悬停内创建一个颜色键?
- 19. 创建一个显示两种组合颜色结果的颜色混合器
- 20. GPUImage查询过滤器 - 创建一个颜色深度大于512²颜色
- 21. 创建一个所有相邻颜色不同的随机颜色网格
- 22. 设置控件的背景颜色? (WinAPI)
- 23. WinApi - 获取标准背景颜色
- 24. 在Emacs中,如何创建一个特定的颜色常量以映射到另一种颜色?
- 25. 在DNN中创建一个C#模块
- 26. 在linux中创建一个模块
- 27. 在Sitefinity中创建一个新模块
- 28. 创建jvectormap区域颜色
- 29. CSS创建颜色渐变
- 30. 用UIColor创建颜色
你的意思画一个窗口上的矩形? – kichik
@kichik是的。我知道这看起来很基本,但我刚刚开始像一周前学习。 – Creep2DJ
[在C++中使用FillRect()]的可能副本(http://stackoverflow.com/questions/16110527/using-fillrect-in-c) –