Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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???

Geschrieben
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.

Geschrieben

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;

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...