Zum Inhalt springen

C...View ==> CMainFrame


Don_Pazo

Empfohlene Beiträge

Hallo,

ich habe eine MFC Anwendung erstellt. In der Klasse CMainFrame habe ich einen zusätzlichen CDialogBar in der Toolbar eingefügt. In diesem neuen Toolbar gibt es einen ComboBox(Kombinationsfeld). Das Problem ist, ich will mal das ComboBox aktivieren / deactivieren. Dies soll von der Klasse C...View statt statt finden. Ich habe es probirt von der C...View auf die Toolbar so zuzugreifen:

void CE_LearnView::Request(CString Link){

  m_strLink = Link;

  // Funktion Link anzeigen

  Navigate2(_T(m_strLink),0,NULL);


  CWinApp* ptrApp = AfxGetApp();

  CMainFrame* pFrame = (CMainFrame*)ptrApp;


  pFrame->GetDlgItem(IDC_AUSWERTUNG)->EnableWindow(FALSE);

}// ende 

Ich bekomme Laufzeitfelermeldung.

Könnte mir bitte jemand sagen bzw. zeigen, wie ich von der Klasse C...View ein ComboBox Element (im Toolbar verwendet) activieren un deactivieren kann???

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bekomme Laufzeitfelermeldung.
Das kommt davon, wenn man einfach einen Zeiger umcastet ;)

AfxGetMainWnd sollte helfen. Den musst du aber dann wirklich auf deinen Mainframetyp casten.

Allerdings wird dir GetDlgItem nicht weiterhelfen.

Überhaupt ist der Ansatz eher unüblich. Zum Aktivieren und Deaktivieren von Befehlselementen in Menüs und Toolbars nutzt man normalerweise UpdateUi-Handler.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke Klotzkopp,

ich wess es nicht wie man UpdateUi-Handler benutzt. Wenn du es mir bitte zeigen könntest !?!

Ansonsten hat mir wieder mal deinen Vorschlag geholfen. So habe ich es gelöst:

//// C...View.cpp

void CE_LearnView::Request(CString Link){

  m_strLink = Link;

  // Funktion Link anzeigen

  Navigate2(_T(m_strLink),0,NULL);


  CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();

  pFrame->m_wndDlgBar.GetDlgItem(IDC_AUSWERTUNG)->EnableWindow(FALSE);

}// ende
// CMainFrame.h


class CMainFrame : public CFrameWnd{

public:

	CDialogBar  m_wndDlgBar;

....

protected:  // Eingebundene Elemente der Steuerleiste

	CStatusBar  m_wndStatusBar;

	CToolBar    m_wndToolBar;

	CReBar		m_wndReBar;

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...