I last updated the Calendar Demo in \GUI_DEMOS\ in 2020 by learning how to disable THEMES.
See 2020 posts above for a refresher on that.
Today's update adds the ability to adjust the FONT attributes, to account for higher resolution screens.
I refuse to let this demo die ...
GUI "BCX_Calendar_Demo", DPI
GLOBAL MyForm AS CONTROL
GLOBAL MyCalendar AS CONTROL
GLOBAL cxClient AS INTEGER
GLOBAL cyClient AS INTEGER
SUB FORMLOAD
'============================================================================
LOCAL iccex AS INITCOMMONCONTROLSEX
'============================================================================
iccex.dwSize = SIZEOF(INITCOMMONCONTROLSEX)
iccex.dwICC = ICC_DATE_CLASSES
InitCommonControlsEx(&iccex)
'============================================================================
MyForm = BCX_FORM ("BCX Calendar" , 10, 0, 950, 820 )
MyCalendar = BCX_CONTROL ("sysmonthcal32", MyForm, "", 0, 10, 0, 950, 800 )
'============================================================================
MonthCal_SetColor(MyCalendar, MCSC_BACKGROUND , RGB(190, 255, 255))
MonthCal_SetColor(MyCalendar, MCSC_TITLETEXT , RGB(0, 0, 0))
MonthCal_SetColor(MyCalendar, MCSC_TITLEBK , RGB(245, 175, 0))
MonthCal_SetColor(MyCalendar, MCSC_MONTHBK , RGB(248, 245, 225))
MonthCal_SetColor(MyCalendar, MCSC_TEXT , RGB(0, 0, 225))
MonthCal_SetColor(MyCalendar, MCSC_TRAILINGTEXT , RGB(0, 225, 0))
'============================================================================
' Added in 2020 by MrBcx
'============================================================================
DECLARE FUNCTION SetWindowTheme LIB "uxtheme.dll" ALIAS "SetWindowTheme" _
(hWnd AS HWND, A AS WCHAR PTR, B AS WCHAR PTR) AS INTEGER
LOCAL dummy AS wchar_t
SetWindowTheme ( MyCalendar, &dummy, & dummy) ' Disable THEMES for this app
'============================================================================
' Added in 2023 by MrBcx
'============================================================================
SendMessage (MyCalendar, WM_SETFONT, BCX_SET_FONT ( "Verdana" , 12, 1, 1), 1)
'============================================================================
CENTER (MyForm)
SHOW (MyForm)
END SUB
BEGIN EVENTS
SELECT CASE CBMSG
CASE WM_SIZE THEN
cxClient = LOWORD (lParam)
cyClient = HIWORD (lParam)
SetWindowPos(MyCalendar, 0, 0, 0, cxClient, cyClient, SWP_NOMOVE)
END SELECT
END EVENTS