RichEdit erzeugt Fehler



  • Hallo,

    ich habe eine SDI Anwendung erzeugt und nehme anstatt eines CView ein CFormView, welches ich als Membervariable in der MainFrm abgelegt habe (Pointer drauf - damit ich new aufrufen kann), damit ich das ganze nicht über DYNCREATE machen muss.

    Soweit ging auch alles ganz gut - ich konnte alle möglichen Komponenten drauflegen auf dieses Formview. Sobald ich aber ein Richedit drauflege und die Anwendung starte bekomme ich ne Exception.
    Ich dachte zunächst, dass es mit meiner Art die Formview einzubinden zu tun hat, also habe ich mal ein Richedit in den AboutDlg gelegt und habe den mal aufgerufen, da tut sich gar nix sobald ich in den RichEdit wie gesagt ein RichEdit lege (alle anderern Komponenten laufen).

    Jedes Mal wenn ich den AboutDlg aufrufen will kommt im Debug Fenster von VC folgende Meldung:

    > If this dialog has OLE controls:
    > AfxEnableControlContainer has not been called yet.
    > You should call it in your app's InitInstance function

    Jemand ne Idee was ich hier alles falsch mache ?


  • Mod

    Bist Du auf die Idee gekommen schon mal zu machen was da steht: AfxEnableControlContainer aufrufen?

    Weiterhin hast Du AfxInitRichEdit bzw. AfxInitRichEdit2 aufgerufen?



  • Stimmt hatte das nicht aufgerufen (das musste auch erst mal wissen, wenn du noch nicht solange mit der MFC arbeitest)

    Allerdings ergibt sich mir noch ein ähnliches Problem:
    Ich habe mal einfach auf einer SDI Anwendung einen Dialog aufgerufen und ihn nicht modal gemacht. Soweit so gut...wird alles vernünftig angezeigt und wieder geschlossen. Nur bleibt dieser Dialog immer "onTop" selbst wenn ich auf das SDI View dahinter klicke und er eigentlich wieder mein Hauptfenster anzeigen müsste. Dabei habe ich die Eigenschaft topmost gar net gesetzt... 😞


  • Mod

    Solange der Dialog als Parent Dein Mainframe hat wird er immer über ihm liegen. Wenn Du auch den nicht modalen Dialog hinter Deinem Mainframe haben willst, muss er als Parent den Desktop haben.


Anmelden zum Antworten