CButton Unsichtbar machen?



  • Moin,
    hab schon überall gesucht aber nix gefunden.
    Ich mach ich einen CButton Unsichtbar. Also wie heisst die Funktion?

    Habt herzlichen Dank



  • CWnd::ShowWindow()
    
    GetDlgItem(IDC_MYBUTTON)->ShowWindow(SW_HIDE);
    // oder
    m_myButton.ShowWindow(SW_HIDE);
    


  • DU solltest den Button zusätzlich noch disablen mit

    btn.EnableWindow(FALSE);
    


  • so:

    Aktivieren/Deaktivieren

    GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE); <-- FALSE = Deaktiviert TRUE = Aktiviert

    sichtbar/unsichtbar

    GetDlgItem(IDC_BUTTON1)->ShowWindow(FALSE); <-- FALSE = unsichtbar TRUE = sichtbar

    😃



  • hallo,

    leider klappt das so nicht bei mir. beim compilen schießt es ihn immer in der function:

    BOOL CWnd::ShowWindow(int nCmdShow)
    {
    	ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL));
    
    	if (m_pCtrlSite == NULL)
    		return ::ShowWindow(m_hWnd, nCmdShow);
    	else
    		return m_pCtrlSite->ShowWindow(nCmdShow);
    }
    

    in dieser Zeile ab:

    ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL));
    

    Denn die GetDlgItem liefert einen NULLpointer zurück, warum was mache ich falsch? Vermutlich weiß er nicht welchen button er öffnen soll... weiß nicht mehr weiter. Vielen Dank.



  • Zieg mal den Code wo Du das machst.
    Scheinbar existiert der Button noch nicht.



  • An welcher Stelle versuchst Du denn diesen Button zu verstecken, bzw. zu deaktivieren? Im Konstruktor? Wenn ja ... versuch es mal in OnInitDialog() hinter dem aufruf der Basisklassenmethode.



  • und oder hast du auch bei GetDlgItem() die richtigen Resourcen-ID angegeben?
    also die von dem gewünschten button.

    edit:
    okay, zu schnell gepostet, da der in das assert von CWnd reingelaufen ist, ist der GetDlgItem() auch nicht null, sorry 😉


Anmelden zum Antworten