MessageBox bei bestimmten Sliderwert deaktiviert Slider - wie vermeiden?



  • Hallo allerseits!

    Ich habe folgendes Problem:
    Ich möchte, wenn auf einem Slider ein bestimmter Wert (1) eingestellt wird einen Hinweis in Form einer MessageBox anzeigen.
    Soweit klappt das ja auch, **allerdings kann man den Slider nachdem der Hinweis angezeigt wurde nicht mehr bewegen!

    Hat jemand eine Idee, wie das vermieden werden könnte?**

    Hier der auf das wesentliche reduzierte Code:

    void CMischungDlg::OnNMCustomdrawSliderKritisch1(NMHDR *pNMHDR, LRESULT *pResult)
    {
    	LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
    	*pResult = 0;
        short wert;
    	wert = m_sl_kritisch1.GetPos();
    	if (wert == 1) 
    	{
    		MessageBox(L"bla bla",L"Hinweis:",MB_ICONINFORMATION);
    	}
    }
    

    Danke und Gruß,
    Dong


  • Mod

    Ich würde dies nicht mit einer Message Box machen.
    Ich denke damit der Slider wieder bewegbar wird, muss man ihn erneut anklicken. Das Problem ist, dass Du ihm im Drag den Fokus nimmts.
    Günstiger wäre einfach eine Bitmap oder ein statische Control, dass eingeblendet wird wenn es kritisch ist. Oder erst die Warnung anzuzeigen wenn der Dialog verlassen wird.



  • Martin Richter schrieb:

    Ich würde dies nicht mit einer Message Box machen.
    Günstiger wäre einfach eine Bitmap oder ein statische Control, dass eingeblendet wird wenn es kritisch ist.

    Danke schön, aber der Hinweis ist doch zu lang, um ihn auf diese Weise anzuzeigen.

    Martin Richter schrieb:

    Oder erst die Warnung anzuzeigen wenn der Dialog verlassen wird.

    Das geht auch nicht, die Änderungen im Dialog werden direkt verarbeitet.

    Aber trotzdem wie gesagt Danke. 🙂

    Ich habe die MessageBox jetzt einfach mit einem neuen Mini-Thread eingeblendet, damit besteht das Problem mit der Slider Sperrung auch nicht mehr. [Übrigens sprang nicht der Zustand auf "disabled", sondern man konnte ihn einfach nicht mehr bewegen, auch nicht nach einm Fokuswechsel.]

    Gruß,
    Dong


  • Mod

    dong schrieb:

    Martin Richter schrieb:

    Ich würde dies nicht mit einer Message Box machen.
    Günstiger wäre einfach eine Bitmap oder ein statische Control, dass eingeblendet wird wenn es kritisch ist.

    Danke schön, aber der Hinweis ist doch zu lang, um ihn auf diese Weise anzuzeigen.

    Static Fields können auch mehrzeilig sein... Ausßerdem könnte man auch einen ToolTip oder Ballontip aufpoppen lassen.



  • Martin Richter schrieb:

    Static Fields können auch mehrzeilig sein... Ausßerdem könnte man auch einen ToolTip oder Ballontip aufpoppen lassen.

    ToolTip oder Ballontip wären tatsächlich noch Möglichkeiten, danke für den Hinweis. 🙂
    Werde ich mir gelegentlich wenn ich Zeit habe mal angucken, vorerst geht es ja auch mit dem MessageBox-Thread. 🙂

    Gruß,
    Dong


Anmelden zum Antworten