Ich habe die Element ID, wie komme ich an den Objektzeiger?



  • Folgendes Problem:
    Ich habe eine Funktion mit bestimmten Übergabeparametern.

    void CDigitalIO::SetInputStatus(CButton* InBut, bool anaus)
    {
    	HBITMAP bitmap;
    	b2=::LoadBitmap(::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_GRUEN));
    
    	if(anaus == 1)
    		bitmap = ::LoadBitmap(::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_GRUEN)); 
    	else
    		bitmap = ::LoadBitmap(::AfxGetInstanceHandle(), MAKEINTRESOURCE(NULL)); 
    
    	InBut->SetBitmap(bitmap);
    	UpdateData(FALSE);
    }
    

    Diese möchte ich jetzt ändern.
    Ich will nämlich nicht den Zeiger, sondern die ID übergeben.
    etwa so:

    void CDigitalIO::SetIS(int ButtonID, bool anaus) //1. Parameter soll jetzt die ID sein
    {
    	HBITMAP bitmap;
    	b2=::LoadBitmap(::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_GRUEN));
    
    	if(anaus == 1)
    		bitmap = ::LoadBitmap(::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_GRUEN)); 
    	else
    		bitmap = ::LoadBitmap(::AfxGetInstanceHandle(), MAKEINTRESOURCE(NULL)); 
    
    	GetDlgItem(ButtonID)->SetBitmap(bitmap); // Wird nicht unterstützt
    	UpdateData(FALSE);
    }
    

    Mein Problem ist nur, das die Funktion

    GetDlgItem(ButtonID)->SetBitmap(bitmap);
    

    Nicht Funktioniert.
    Kann jemand mir einen Tip geben?



  • CButton *pButton = (CButton*)GetDlgItem(ButtonID);
    pButton ->SetBitmap(bitmap);
    


  • Ähm. Ja.
    Das ist mal eine kurze, konkrete und richtige Antwort.
    Hat natürlich geklappt.
    DANKE

    BYE


Anmelden zum Antworten