SysMonthCal32 - Color
-
Guten Morgen,
ich versuche an einem SysMonth32 die Farbe zu ändern.
Dazu nutze ich dieses Bsp. aus dem Netz wo es ganz klasse
erklärt wird ... http://www.functionx.com/win32/controls/monthcalendar.htmMein Compiler (VC10) meldet keine Fehler, aber der Kalender
ändert seine Farbe leider kein Stück
Hier mein Source, evtl überseh ich etwas:
Das Calendar-Teil im RC-File:
IDD_DIALOG_CALENDAR DIALOGEX 0, 0, 255, 111 STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE EXSTYLE WS_EX_CONTROLPARENT FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN CONTROL "",IDC_MONTHCALENDAR,"SysMonthCal32",MCS_WEEKNUMBERS | WS_TABSTOP,7,7,107,93 ENDHier meine cpp:
INITCOMMONCONTROLSEX iccex; // Common controls initialisation iccex.dwSize = sizeof(INITCOMMONCONTROLSEX); iccex.dwICC = ICC_DATE_CLASSES|ICC_TAB_CLASSES; InitCommonControlsEx(&iccex); HWND hWndMonthCal; hWndMonthCal = GetDlgItem(hWnd, IDC_MONTHCALENDAR); MonthCal_SetColor(hWndMonthCal, MCSC_TITLETEXT, RGB(245, 0, 0)); //SendMessage(hWndMonthCal, MCM_SETCOLOR, MCSC_TITLETEXT, RGB(245, 0, 0));Ich habs wahlweise mit MonthCal_SetColor(..) und SendMessage probiert,
leider hat keines von beiden den Kalender-Titeltext "gefärbt".
Jemand eine Ahnung wie es richtig geht? ... oder warum es bei mir nicht klappt?
-
hat keiner eine idee woran es hapert

ich häng immernoch da
-
Ich kann's leider nicht nachvollziehen. Gerade habe ich dies in einem meiner Dialoge probiert und hatte keine Probleme...
Wird das Codestück denn durchlaufen, ist hWndMonthCal wirklich ungleich 0? Hast du die Returnwerte einmal getestet?HWND hwndDate = GetDlgItem(hwnd,IDC_MONTHCALENDAR1); if(-1==MonthCal_SetColor(hwndDate, MCSC_TITLETEXT, RGB(0,0,0))) MessageBox(hwnd,"err",0,0); if(-1==MonthCal_SetColor(hwndDate, MCSC_TITLEBK, RGB(0,0,0xAA))) MessageBox(hwnd,"err",0,0); if(-1==MonthCal_SetColor(hwndDate, MCSC_TEXT, RGB(0,0,0xAA))) MessageBox(hwnd,"err",0,0); if(-1==MonthCal_SetColor(hwndDate, MCSC_BACKGROUND, RGB(0,0,0))) MessageBox(hwnd,"err",0,0);
-
DANKESCHÖN FALCON

Ich weiss das sieht jetzt komisch aus aber du hast mich dazu bewegt
etwas genauer mit dem GetLastError (bzw auch dem debugger) zu forschen
und siehe da - ich war zu *** das richtige hWnd anzusprechen.
(Das sitzt bei mir noch auf einem Dialog drauf und nicht wie ichs versucht habe im HauptWindow).Also ... Problem is solved
und ich sag artig DANKESCHÖN