Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo,

wie kann ich auf der weiße Fläche eines MDI-Dokluemnts Steuerelemente platzieren?!

Grund: Wenn ich eine Datei öffne, so soll die Dateianzeige mit Hilfe eines TreeViews erfolgen.

Im Ressourceneditor habe ich leider keine Möglichkeit gefunden, die "Dokumentenfläche" zu bearbeiten und Steuerelemente draufzulegen :confused:

Wer kann mir helfen?

Grüße,

Technician

P.S.: Ich bin im "Visual"-Teil von C++ noch totale Anfängerin ;)

Mit dem Ressourceneditor kannst Du nur arbeiten, wenn Deine View-Klasse von CFormView abgeleitet ist, denn nur diese Klasse kann man mit Dialogressourcen verknüpfen. Allerdings ist der Hintergrund dann grau, nicht mehr weiß.

Ansonsten musst Du die Steuerelemente von Hand erzeugen, mittels CreateWindow.

Original geschrieben von Klotzkopp

Mit dem Ressourceneditor kannst Du nur arbeiten, wenn Deine View-Klasse von CFormView abgeleitet ist, denn nur diese Klasse kann man mit Dialogressourcen verknüpfen. Allerdings ist der Hintergrund dann grau, nicht mehr weiß.

Ansonsten musst Du die Steuerelemente von Hand erzeugen, mittels CreateWindow.

okay, danke!

werd mir's mal anschauen!

grüße,

technician

wenn ich jetzt in der headerdatei meiner view die zeile

class CMdiProgramView : public CView

durch

class CMdiProgramView : public CFormView

ersetze, bekomme ich den Compilerfehler

"error C2512: 'CFormView' : Kein geeigneter Standardkonstruktor verfuegbar"

und bleib dann in der CDMdiProgramView.cpp hier hängen:

CMdiPrigramView::CMdiProgramView()

{

// ZU ERLEDIGEN: Hier Code zur Konstruktion einfügen,

}

was muss ich da noch ändern, damit's funktioniert?

... hat sich schon erledigt...

Original geschrieben von Technician

was muss ich da noch ändern, damit's funktioniert?

Der Fehler kommt daher, dass CFormView im Konstruktor ein Argument braucht, und zwar die ResourceId der Dialogresource, mit der sie verknüpft ist.

Es ist ziemlich aufwändig, ein SDI/MDI-Projekt nachträglich auf eine andere View-Klasse umzustellen. Wenn es nicht zuviel Aufwand ist, würde ich von vorn beginnen. Du kannst beim Anlegen des Projekts mit dem Assistenten auf der letzten Seite die Basisklasse der View festlegen. Wenn Du da CFormView wählst, wird auch gleich eine Dialogressource angelegt, und die View damit verknüpft.

Falls das nicht geht, muss folgendes geändert werden:

In CDeineView.h

class CDeineView: public CFormView (logisch)

//{{AFX_DATA(CDeineView)

enum{ IDD = IDD_ZU_VERWENDENDE_DIALOGRESSOURCE };

// NOTE: the ClassWizard will add data members here

//}}AFX_DATA

In CDeineView.cpp:

IMPLEMENT_DYNCREATE(CDeineView, CFormView)

BEGIN_MESSAGE_MAP(CDeineView, CFormView)

Das gleiche für jeden Eintrag in der MessageMap: Überall muss CView durch CFormView ersetzt werden.

Der Konstruktor:

CDeineView::CDeineView() : CFormView(CDeineView::IDD)

{

//{{AFX_DATA_INIT(CDeineView)

// NOTE: the ClassWizard will add member initialization here

//}}AFX_DATA_INIT

// TODO: add construction code here

}

Außerdem muss bei jeder virtuellen Funktion, in der die Funktion der Basisklasse aufgerufen wird (z.B. DoDataExchange, PreCreateWindow, OnInitialUpdate) CView durch CFormView ersetzt werden.

Hallo Klotzkopp,

Original geschrieben von Klotzkopp

Es ist ziemlich aufwändig, ein SDI/MDI-Projekt nachträglich auf eine andere View-Klasse umzustellen. Wenn es nicht zuviel Aufwand ist, würde ich von vorn beginnen. Du kannst beim Anlegen des Projekts mit dem Assistenten auf der letzten Seite die Basisklasse der View festlegen. Wenn Du da CFormView wählst, wird auch gleich eine Dialogressource angelegt, und die View damit verknüpft.

Das habe ich jetzt auch festgestelllt ;)

Da es ja nur ein kleines Übungsprojekt ist mit dem ich mich in die Thematik einarbeiten werde, leg ich dann mal ein neues an.

Jetzt ist mir das mit den FormViews klar :cool: - bis ich wieder ne Frage hab ;)

Wirst mich hier in dem Forum demnächst noch öfter finden :)

Grüße,

Technician

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.