CStatic "frisst" BUtton-Klick



  • hiho,

    ich habe folgenen Aufbau

    Dialog -> CStatic -> CCOlorButton(von CButton abgeleitet)

    Also der Dialog besitzt ein CStatic-Objekt als Kindfenster und auf diesem sind 2 Buttons- Das ganze wird zur Laufzeit erstellt und nicht mit dem Dialogeditor.
    Die Buttons und das Static sind jeweils mit Create angelegt.

    m_picBarTop.setBgColor(m_captionColor);
    	m_picBarTop.Create(0,WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS,rect,this,IDC_STATIC);	
    
    . . .
    
    CRect parentRect,rect;
    	m_picBarTop.GetClientRect(&parentRect);
    	rect.top	= 1;
    	rect.left   = 1;
    	rect.right  = parentRect.Width() - 1;
    	rect.bottom = parentRect.Width() - 1;
    	m_plus.Create(_T("+"),WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | BS_OWNERDRAW,rect,&m_picBarTop,IDC_BUTTON_PLUS);
    	m_plus.SetOwner(this);
    	m_plus.setColors(m_bgColorDiag,m_captionColor,RGB(100,100,100));
    

    Ich möchte den Button-Click nun im Dialog abfangen!
    Ich habe dazu 2 Methode erstellt und die MessageMap per hand angepasst:

    ON_BN_CLICKED(IDC_BUTTON_PLUS,&CRobCalV2Dlg::OnBnPlus)
    ON_BN_CLICKED(IDC_BUTTON_MINUS,&CRobCalV2Dlg::OnBnMinus)
    

    Ganz normal eben. Leider kommt die Nachricht nicht an. Das SetOwner hat auch nichts gebracht. SS_NOTIFY beim CStatic auch nicht. Was muss ich tun, dass die Nachricht korrekt durchgeleitet wird vom Button zum Dialog. (Sobald ich den DIalog als Elternfenster setze gehts natürlich)

    MfG Pellaeon


  • Mod

    SS_NOTIFY!



  • Martin Richter schrieb:

    SS_NOTIFY!

    Beim CStatic hatte ich das schon probiert, hatte aber nichts bewirkt. Was ich noch testen kann, ist das SetOwner und das Notify.
    Ich dachte aber, dass Notify sendet "nur" die Klick-Nachrichten auf, welche beim Static generiert werden, an das Elternfenster? Weil bei mir kommt der Klick ja vom Button, welcher ein Static als Elternfenster hat.

    MfG Pellaeon



  • Also auch das Notify + SetOwner bringt nichts.


  • Mod

    SetOwner nützt da gar nicht. Wenn das Static der Parentist, dann musst Du die WM_COMMAND Nachricht selbst weitereichen.
    WM_COMMAND wird nur an das parent gesendet! Punkt.

    Wenn DSu es anders willst musst Du selbst dafür sorgen.


Anmelden zum Antworten