如何在C++/MASM32中更改Rectangle function的邊框顏色?在C++中更改矩形函數的邊框顏色
-2
A
回答
2
你可以嘗試這樣的事情,我只是舉個例子,你可以根據你的需求來改變它。
BOOL CRectangleDlg::OnEraseBkgnd(CDC* pDC)
{
CBrush brushBlue(RGB(0, 0, 255));// inner color blue.
CBrush* pOldBrush = pDC->SelectObject(&brushBlue);
// create and select a thick, black pen
CPen penBlack;
penBlack.CreatePen(PS_SOLID, 3, RGB(255, 0, 0));// red color with width 3
CPen* pOldPen = pDC->SelectObject(&penBlack);
// get our client rectangle
CRect rect;
GetClientRect(rect);// pass rect coordinates here
// shrink our rect 20 pixels in each direction
rect.DeflateRect(20, 20);
// draw a thick black rectangle filled with blue
pDC->Rectangle(rect);
// put back the old objects
pDC->SelectObject(pOldBrush);
pDC->SelectObject(pOldPen);
return true;//CDialog::OnEraseBkgnd(pDC);
}
0
這裏是一個快速MASM32的例子,我颳起了快速的爲您提供:
include masm32rt.inc
RGB MACRO red, green, blue
EXITM % blue SHL 16 + green SHL 8 + red
ENDM
WIDTH_MAIN_WINDOW equ 550
HEIGHT_MAIN_WINDOW equ 300
.data
szWndClsMain BYTE "RECT_MAIN", 0
szAppName BYTE "Rectangle Border Color Example", 0
.code
start:
call StartUp
push 0
call ExitProcess
StartUp proc uses ebx
LOCAL msg:MSG
LOCAL hInst, hMain:DWORD
push NULL
call GetModuleHandle
mov hInst, eax
call RegisterClasses
; ##### Coords to center window
invoke GetSystemMetrics, SM_CXSCREEN
sub eax, WIDTH_MAIN_WINDOW
shr eax, 1
xchg eax, ebx
invoke GetSystemMetrics, SM_CYSCREEN
sub eax, HEIGHT_MAIN_WINDOW
shr eax, 1
; ##### Create main window
invoke CreateWindowEx,WS_EX_APPWINDOW or WS_EX_CONTROLPARENT, \
offset szWndClsMain, \
offset szAppName, \
WS_OVERLAPPED or WS_SYSMENU or WS_MINIMIZEBOX or WS_CLIPCHILDREN or WS_VISIBLE, \
ebx, eax, \
WIDTH_MAIN_WINDOW, HEIGHT_MAIN_WINDOW, \
HWND_DESKTOP, NULL, \
hInst, NULL
mov hMain, eax
.WHILE TRUE
invoke GetMessage, ADDR msg,NULL,0,0
.BREAK .IF (!eax)
invoke IsDialogMessage, addr hMain, ADDR msg
.IF eax ==FALSE
invoke TranslateMessage, ADDR msg
invoke DispatchMessage, ADDR msg
.ENDIF
.ENDW
ret
StartUp endp
RegisterClasses proc
LOCAL wc:WNDCLASSEX
; ##### Create main window
invoke RtlZeroMemory, addr wc, sizeof WNDCLASSEX
mov wc.cbSize, SIZEOF WNDCLASSEX
mov wc.style, CS_HREDRAW or CS_VREDRAW
mov wc.lpfnWndProc, OFFSET ProcWndMain
mov wc.hInstance, esi
mov wc.hbrBackground, COLOR_3DFACE + 1
mov wc.lpszClassName, OFFSET szWndClsMain
invoke RegisterClassEx, addr wc
ret
RegisterClasses endp
ProcWndMain proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
LOCAL ps:PAINTSTRUCT, pOldPen, pNewPen:DWORD
mov eax,uMsg
.if eax==WM_CREATE
.elseif eax == WM_PAINT
invoke BeginPaint, hWin, addr ps
invoke CreatePen,PS_SOLID, 3, RGB(255, 0, 0) ; Red
mov pNewPen, eax
invoke SelectObject, ps.hdc, eax
mov pOldPen, eax
invoke Rectangle, ps.hdc, 10, 10, 200, 200
invoke SelectObject, ps.hdc, pOldPen
invoke DeleteObject, pNewPen
invoke CreatePen,PS_SOLID, 3, RGB(0,0,255) ; blue
mov pNewPen, eax
invoke SelectObject, ps.hdc, eax
mov pOldPen, eax
invoke Rectangle, ps.hdc, 250, 10, 445, 200
invoke SelectObject, ps.hdc, pOldPen
invoke DeleteObject, pNewPen
invoke EndPaint, hWin, addr ps
.elseif eax==WM_CLOSE
invoke DestroyWindow,hWin
.elseif eax==WM_DESTROY
invoke PostQuitMessage,NULL
.else
invoke DefWindowProc,hWin,uMsg,wParam,lParam
ret
.endif
xor eax,eax
ret
ProcWndMain endp
end start
+0
GSerg,Himanshu,Gunner,非常感謝! –
相關問題
- 1. 在jPanel中更改矩形的邊框
- 2. 更改網格中矩形的顏色
- 3. 更改Java GUI中的矩形顏色
- 4. 更改球邊框顏色
- 5. 更改NSWindow邊框顏色
- 6. 更改背景顏色更改邊框
- 7. 更改Fancybox v2.1.1中的邊框顏色
- 8. 更改複選框的顏色邊框
- 9. 更改選擇框的邊框顏色
- 10. 如何在Android中選擇更改邊框顏色(形狀)?
- 11. 更改c#winforms中的文本框的邊框顏色 - 新手
- 12. 更改組合框邊框顏色
- 13. 更改複選框邊框顏色
- 14. matplotlib - 即時更改矩形顏色
- 15. 使用TColorListBox從矩形更改顏色
- 16. 繪製多邊形並更改顏色
- 17. 更改NSTextField的邊框「發光」顏色
- 18. 如何更改Button的邊框顏色?
- 19. 更改UIPopOverController的邊框顏色
- 20. 更改DatePicker的邊框顏色
- 21. 如何更改iframe邊框的顏色?
- 22. 更改的EditText邊框顏色
- 23. Shiny R:更改selectInput的邊框顏色
- 24. 想要更改searchView的邊框顏色
- 25. 更改tr和td的邊框顏色
- 26. 如何更改colorbox的邊框顏色
- 27. 如何更改UIPopoverController的邊框顏色?
- 28. 更改所選UITableViewCell的邊框顏色
- 29. 如何更改SPAN的邊框顏色?
- 30. 如何更改UITableView邊框的顏色?
要鏈接到美國在第一行的文件:*矩形用概述使用當前筆*。所以[select](https://msdn.microsoft.com/en-us/library/windows/desktop/dd162957%28v=vs.85%29.aspx)當前[pen](https://msdn.microsoft .COM/EN-US /庫/窗/臺式機/ dd183509%28V = vs.85%29.aspx)。 – GSerg