Re: Dategadget Kalender gößer darstellen
Verfasst: 21.05.2017 10:41
Das wäre aber leider etwas zu spät bei seinen 17.000 Zeilen. 

Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Code: Alles auswählen
EnableExplicit
LoadFont(1, "Segoe UI", 15)
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CalendarGadget(1, 10, 10, 250, 300)
SetWindowTheme_(GadgetID(1), @"", @"")
SetGadgetFont(1, FontID(1))
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf
Code: Alles auswählen
Procedure WindowCallback(hWnd, uMsg, wParam, lParam)
Protected *NMDATETIMECHANGE.NMDATETIMECHANGE
Protected Handle_DropDown
Protected Handle_SysMonthCal32
Protected ClassName$ = Space(1024)
Select uMsg
Case #WM_NOTIFY
*NMDATETIMECHANGE = lParam
If *NMDATETIMECHANGE\nmhdr\hwndfrom
GetClassName_(*NMDATETIMECHANGE\nmhdr\hwndfrom, @ClassName$, Len(ClassName$))
If ClassName$ = "SysDateTimePick32"
If *NMDATETIMECHANGE\nmhdr\code = #DTN_DROPDOWN
Handle_DropDown = FindWindow_("DropDown", 0)
Handle_SysMonthCal32 = FindWindowEx_(Handle_DropDown, #Null, "SysMonthCal32", #Null)
If Handle_SysMonthCal32
SetWindowTheme_(Handle_SysMonthCal32, @"", @"")
SendMessage_(Handle_SysMonthCal32, #WM_SETFONT, FontID(1), 0)
SetWindowPos_(Handle_DropDown, 0, 0, 0, 250, 300, #SWP_SHOWWINDOW | #SWP_NOZORDER | #SWP_NOMOVE | #SWP_FRAMECHANGED)
EndIf
EndIf
EndIf
EndIf
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
Standardmäßig werden alle Controls von Windows mit dem aktuellen Windows-Design (Theme) dargestellt. Einige Controls lassen sich aber optisch nicht verändern.gnaps hat geschrieben:Kannst Du mir das erklären
SetWindowTheme_(GadgetID(#cal_Kalender), @"", @"")
Code: Alles auswählen
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
SetWindowTheme_(GadgetID(1), @"", @"")
CompilerEndIf