如何在程序中創建一個顏色塊?我已經瀏覽了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) –