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.htm

    Mein 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
    END
    

    Hier 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


Anmelden zum Antworten