Probleme mit Dialogbox
-
Hallo zusammen,
MV c++ 6.0
Ich stehe bei einer Standartaufgabe an.
In meiner Win32-Anwendung möchte ich gerne eine Dialogbox verwenden.
Dazu habe ich im MFC Anwendungsassistenten ein Dialog erstellt.Leider habe ich keine Ahnung (und fand auch im Netz nichts), wie ich dieses
Dialogfeld in meiner Hauptanwendung aufrufe.Ich habe gesehen, dass man unter Einfügen->Resource->Dialog
schnell einen Dialog erstellen kann. Ich habe leider nicht herausfinden können, mit welchem Befehl man in der Hauptanwendung dann das Fenster erstellen kann
-
Du erstellst eine Klasse für diesen Dialog über den Assistenten. Wenn die Klasse dann zum Beispiel CMeinDialog heißt, dann kannst du aus deiner Hauptanwendung den Dialog beispielsweise so aufrufen:
CMeinDialog myDlg; myDlg.DoModal();
DoModal() gibt eine ID zurück, mit welchem Button der Dialog beendet wurde. Entweder IDOK oder IDCANCEL.
-
Hallo Source, vielen Dank für deine Antwort.
Dies habe ich versucht. Allerdings kann ich den Klassenassistenten nicht aufrufen (ctrl+w reagiert nicht). Mölicherweise hängt das zusammen, dass
es sich um eine Win32-Applikation handelt.
In einem MFC-Anwendungsprojekt kann ich den Klassenassistnten verwenden.
Wie löst man dieses Problem?Folgenden Code habe ich in mein Hauptfile geschrieben:
#include <afxwin.h> #include "Resource.h" class CExerciseApp : public CWinApp { public: BOOL InitInstance(); }; class CExoDialog : public CDialog { public: enum { IDD = IDD_DIALOG1 }; CExoDialog(); }; CExoDialog::CExoDialog() : CDialog(CExoDialog::IDD, NULL) { } BOOL CExerciseApp::InitInstance() { CExoDialog Dlg; m_pMainWnd = &Dlg; Dlg.DoModal(); return TRUE; } CExerciseApp theApp;
Ich habe diesen code von einer step by step anleitung aus dem Internet.
Der nächse Schritt in dieser anleitung wäre dann auch, den Klassenassistenten
anzuklicken. DIes funktioniet nicht.Muss ich an meinem Projekt etwas einstellen, damit ich den Klassenassistenten verwenden kann?
Gruss
-
Da du in das MFC-Forum gepostet hast, hab ich einfach mal angenommen du verwendest auch MFC. Wenn du eine Win32-Anwendung hast dann gibts dafür keinen Klassen-Assistenten. Du musst dann mit den ganzen grundlegenden Win32-Funktionen
arbeiten, die ansonsten von der MFC gekapselt werden.Wie du jetzt vorgehen musst kann ich dir in einem kurzen Posting leider nicht erklären. Besser ein gutes Buch zu diesem Thema lesen.
-
Schade.
Kennst du eine andere möglichkeit, eine Dialogfeld aufzurufen?
-
Unter Win32 gibts die Funktion
INT_PTR DialogBox(HINSTANCE hInstance, LPCTSTR lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc);
-
ok. Vielen Dank