ComboBox Farblich darstellen!



  • Hallo weiss jamand wie ich den Hintergrund einer ComboBox farblich darstellen kann?

    In der MFC finde ich dazu nichts!

    Ich nutze Embedded Visual C++ 3.0 und entwickle für Pocket PC 2002

    Wer hat eine Idee?

    Vielen Dank!



  • Als ersten Ansatz würde ich mal nach OnCtlColor suchen. So wird normalerweise von Controls die Farbe geändert.

    Ob das bei Embedded auch funktioniert weiß ich aber nicht.



  • estartu_de schrieb:

    Als ersten Ansatz würde ich mal nach OnCtlColor suchen. So wird normalerweise von Controls die Farbe geändert.

    Ob das bei Embedded auch funktioniert weiß ich aber nicht.

    Das habe ich schon versucht! Wird nur der Rand farblich dargestellt!

    Ich will aber den Inhalt farblich darstellen! Auch beim aufpoppen der Combobox!



  • Die Liste unter der Combobox hat eine andere ID.

    Ich habe mir das mal ausgeben lassen. Die Funktion wird beim Aufklappen so aufgerufen.

    OnCtlColor(CDC* pDC(==0012F3E0), CWnd* pWnd(==00698C2C), UINT nCtlColor(==1))
    OnCtlColor(CDC* pDC(==0012F44C), CWnd* pWnd(==00698C2C), UINT nCtlColor(==1)) 
    OnCtlColor(CDC* pDC(==0012F398), CWnd* pWnd(==00698C2C), UINT nCtlColor(==1))
    OnCtlColor(CDC* pDC(==0012EFD4), CWnd* pWnd(==0012EFE8), UINT nCtlColor(==2)) 
    OnCtlColor(CDC* pDC(==0012EF64), CWnd* pWnd(==0012EF78), UINT nCtlColor(==2)) 
    OnCtlColor(CDC* pDC(==0012F45C), CWnd* pWnd(==00698C2C), UINT nCtlColor(==1)) 
    OnCtlColor(CDC* pDC(==0012F3A8), CWnd* pWnd(==00698C2C), UINT nCtlColor(==1))
    

    Die Zeilen mit der 2 hinten sind es. Da ich die Bedeutung der Werte grade rausgesucht habe, hier sind sie.
    UINT nCtlColor bedeutet:

    #define CTLCOLOR_MSGBOX         0
    #define CTLCOLOR_EDIT           1
    #define CTLCOLOR_LISTBOX        2
    #define CTLCOLOR_BTN            3
    #define CTLCOLOR_DLG            4
    #define CTLCOLOR_SCROLLBAR      5
    #define CTLCOLOR_STATIC         6
    #define CTLCOLOR_MAX            7
    

    Irgendwie muss man doch auch an den Zeiger drankommen...

    Jedenfalls hat das Teil die ID 1000, falls dir das hilft. 🙂



  • Hi ich habe mal versucht an den Zeiger zu kommen!

    Hast du eine Idee wie ich das machen könnte?

    estartu_de schrieb:

    Die Liste unter der Combobox hat eine andere ID.

    Ich habe mir das mal ausgeben lassen. Die Funktion wird beim Aufklappen so aufgerufen.

    OnCtlColor(CDC* pDC(==0012F3E0), CWnd* pWnd(==00698C2C), UINT nCtlColor(==1))
    OnCtlColor(CDC* pDC(==0012F44C), CWnd* pWnd(==00698C2C), UINT nCtlColor(==1)) 
    OnCtlColor(CDC* pDC(==0012F398), CWnd* pWnd(==00698C2C), UINT nCtlColor(==1))
    OnCtlColor(CDC* pDC(==0012EFD4), CWnd* pWnd(==0012EFE8), UINT nCtlColor(==2)) 
    OnCtlColor(CDC* pDC(==0012EF64), CWnd* pWnd(==0012EF78), UINT nCtlColor(==2)) 
    OnCtlColor(CDC* pDC(==0012F45C), CWnd* pWnd(==00698C2C), UINT nCtlColor(==1)) 
    OnCtlColor(CDC* pDC(==0012F3A8), CWnd* pWnd(==00698C2C), UINT nCtlColor(==1))
    

    Die Zeilen mit der 2 hinten sind es. Da ich die Bedeutung der Werte grade rausgesucht habe, hier sind sie.
    UINT nCtlColor bedeutet:

    #define CTLCOLOR_MSGBOX         0
    #define CTLCOLOR_EDIT           1
    #define CTLCOLOR_LISTBOX        2
    #define CTLCOLOR_BTN            3
    #define CTLCOLOR_DLG            4
    #define CTLCOLOR_SCROLLBAR      5
    #define CTLCOLOR_STATIC         6
    #define CTLCOLOR_MAX            7
    

    Irgendwie muss man doch auch an den Zeiger drankommen...

    Jedenfalls hat das Teil die ID 1000, falls dir das hilft. 🙂



  • Schau dir die Klasse CComboBox genauer an. Theoretisch sollte es dort einen Zeiger auf die Liste geben (m_hIrgendwas oder so).

    Oder vielleicht gibt es eine Funktion um den rauszugeben.

    WENN es eine der beiden Sachen gibt, dann musst du nur eine eigene Comboboxklasse ableiten und in dieser den Zeiger nach außen geben. Oder gleich OnCtlColor einbauen. 😃

    Wenn nicht, dann weiß ich auch nicht wirklich weiter...



  • estartu_de schrieb:

    Schau dir die Klasse CComboBox genauer an. Theoretisch sollte es dort einen Zeiger auf die Liste geben (m_hIrgendwas oder so).

    Oder vielleicht gibt es eine Funktion um den rauszugeben.

    WENN es eine der beiden Sachen gibt, dann musst du nur eine eigene Comboboxklasse ableiten und in dieser den Zeiger nach außen geben. Oder gleich OnCtlColor einbauen. 😃

    Wenn nicht, dann weiß ich auch nicht wirklich weiter...

    Hallo,
    ich kann leider nichts finden! Wer hat noch eine Idee?

    Ich hole mir die ID der Combobox und setze die Farbe! Leider ist nur der Rahmen farblich! Das innere der Combobox ist nachwievor weiss!


Anmelden zum Antworten