WinAPI
Verfasst: 16.05.2018 18:40
Hallo
Suche eine Möglichkeit wie man bei Labels die Hintergrundfarbe ändert und Icons transparent dargestellt.
Es sollen keine Purebasic Befehle wie SetGadgetColor verwendet werden, sondern nur reines Winapi.
Suche eine Möglichkeit wie man bei Labels die Hintergrundfarbe ändert und Icons transparent dargestellt.
Es sollen keine Purebasic Befehle wie SetGadgetColor verwendet werden, sondern nur reines Winapi.
Code: Alles auswählen
Procedure WindowCallback(hWnd, Msg, wParam, lParam)
Shared hButton
Select Msg
Case #WM_COMMAND
Case #WM_CLOSE
DestroyWindow_(hWnd)
Case #WM_DESTROY
PostQuitMessage_(0) : Result = 0
Default
Result = DefWindowProc_(hWnd, Msg, wParam, lParam)
EndSelect
ProcedureReturn Result
EndProcedure
InitCommonControls_()
#Style = #WS_VISIBLE | #WS_CAPTION | #WS_SYSMENU
DefaultFont = GetStockObject_(#DEFAULT_GUI_FONT)
WindowClass.s = "My_Win"
wc.WNDCLASSEX
wc\cbsize = SizeOf(WNDCLASSEX)
wc\lpfnWndProc = @WindowCallback()
wc\hCursor = LoadCursor_(0, #IDC_ARROW)
wc\hbrBackground = #COLOR_WINDOW
wc\lpszClassName = @WindowClass
RegisterClassEx_(@wc)
Win_x=GetSystemMetrics_(#SM_CXSCREEN)/2-100
Win_y=GetSystemMetrics_(#SM_CYSCREEN)/2-50
hWndMain = CreateWindowEx_(0, WindowClass, "WinAPI", #Style, Win_x, Win_y, 300, 200, 0, 0, 0, 0)
Text.s="Label"
hText=CreateWindowEx_(0,"Static", Text, #WS_CHILD | #WS_VISIBLE, 10,10,180,54, hWndMain, 0, 0, 0)
SendMessage_(hText, #WM_SETFONT, DefaultFont, 1)
Text.s=""
hText1=CreateWindowEx_(#WS_EX_TRANSPARENT,"Static", "", #WS_CHILD | #WS_VISIBLE|#SS_ICON|#WS_DISABLED|#SS_CENTERIMAGE, 10,80,104,60, hWndMain, 0, 0, 0)
; : SendMessage_(hText, #WM_SETFONT, DefaultFont, 1)
; hBrush2 = CreateSolidBrush_(RGB(255, 255, 255))
; SetClassLong_(hText1, #GCL_HBRBACKGROUND, hBrush2)
;SetWinColor(hText,RGB(233,95,85))
; InvalidateRect_(hText1,#False,#True)
; UpdateWindow_(hText1)
num_icons = ExtractIconEx_("shell32.dll", 3, @ico, #Null, 1)
; Debug num_icons
; SendMessage_( hText1, #STM_SETIMAGE, #IMAGE_BITMAP, Ergebnis)
SendMessage_( hText1, #STM_SETIMAGE, #IMAGE_ICON, ico)
; SendMessage_(hText1, #WM_SETICON, 1, ico)
;#ima
ShowWindow_(hWndMain, #SW_SHOWDEFAULT)
UpdateWindow_(hWndMain);
While GetMessage_(msg.MSG, #Null, 0, 0 )
TranslateMessage_(msg)
DispatchMessage_(msg)
Wend
End