我在Visual C++中有一個Window(win32 API)應用程序。我沒有使用MFC。我必須創建一個帶位圖圖像的圓形/圓形按鈕。我的應用程序有一個視圖。任何人都可以幫助我完成這項任務。提前致謝。如何在win32 API中使用visual C++創建圓形/圓形按鈕
回答
你可以谷歌找到BitBlting圖像技術使用內存DC和各種ROP2設置來實現掩蔽效果。表示按鈕的圓形圖像將使用特定的顏色來表示透明度。我手邊沒有特定的代碼,但它不是微不足道的。
按鈕是窗口。你可以創建一個CreateWindow的或CreateWindowEx呼叫按鈕:
-http://msdn.microsoft.com/en-us/library/ms632680(VS.85)的.aspx
當您創建按鈕窗口確保您通過BS_OWNDERDRAW風格:
-http://msdn.microsoft.com/en-us/library/bb775951(VS.85)的.aspx
這將告訴按鈕發送WM_DRAWITEM消息到您的按鈕'WNDPROC:
-http://msdn.microsoft.com/en-us/l (v = VS.85).aspx
在按鈕的WNDPROC中,您將處理WM_DRAWITEM消息,並根據作爲lParam中指針接收的DRAWITEMSTRUCT中的信息繪製按鈕。
要將位圖呈現爲除矩形之外的任何內容,您需要提供與您希望呈現給您的按鈕的位圖大小相同的1位位掩碼位圖。位掩碼的位設置在您希望按鈕位圖中的像素在屏幕上設置的位置。不顯示的按鈕位圖中的像素需要爲黑色。用AND運算符將你的位掩碼位圖顯示到屏幕上,或者你的按鈕位圖。當然,您需要考慮各種按鈕狀態(通常按鈕只有兩種狀態)。
我可能在上面的解釋中混合了黑/白或置位/置位位,但AND/OR按位(SRCAND/SRCPAINT)光柵操作對於您嘗試達到的操作而言是正確的操作。
-http://msdn.microsoft.com/en-us/library/aa930997.aspx
希望有所幫助。
您需要知道的關鍵api電話是SetWindowRgn
。這就是你所說的告訴窗口,窗口不是矩形而是不規則的區域。如果你周圍的谷歌,你會發現很多示例代碼。
一個有希望的例子是this project。它取決於MFC,但您可以使用它來了解您需要調用什麼順序才能獲得所需的效果。
- 1. 創建圓形按鈕
- 2. 我們如何使用vC++中的win32 API創建一個圓形的按鈕
- 3. 如何創建一個圓形按鈕?
- 4. 如何用VC++使用win32 API創建橢圓形窗口
- 5. 在Iphone SDK中創建圓形按鈕
- 6. 圓形按鈕
- 7. 圓形按鈕
- 8. 圓形按鈕
- 9. 用GWT創建一個圓形按鈕
- 10. 在矩形內創建橢圓/圓形
- 11. 圓形按鈕形成
- 12. 如何在WPF應用程序中創建橢圓形按鈕?
- 13. UIImage按鈕(圓形按鈕)
- 14. 如何使用Monotouch爲Ipad創建圓形按鈕?
- 15. 如何製作圓形的橢圓形按鈕?
- 16. 如何使用c#代碼在wpf中安排圓形按鈕?
- 17. 如何在WM6中創建圓角矩形按鈕?
- 18. 如何在Swift中創建一個圓形按鈕?
- 19. 如何在Javascript中使用Photoshop創建圓形或橢圓形選區?
- 20. 圓形到圓形三角形(菜單按鈕切換)
- 21. NSToolbar中的圓形矩形按鈕
- 22. 如何在iOS中創建圓形UITableView?
- 23. 在UWP的Windows 10 C#創建邊框圓形按鈕
- 24. (jquery)圓形按鈕組?
- 25. GTK和CSS:圓形按鈕
- 26. 如何在android中創建一個帶有圓形的方形框架按鈕?
- 27. 實施圓形按鈕
- 28. 移相器,圓形按鈕
- 29. iOS上的圓形按鈕
- 30. 自定義圓形按鈕
較新的一個被關閉爲精確重複。這一個應該不應該因爲欺騙原因而關閉。 – 2009-11-12 15:51:39
Ravi,你是說你的主窗口是皮膚窗戶嗎?這與如何繪製圓形按鈕有關? – AlanKley 2010-09-25 02:04:01