Nachträglich MFC-Dialog in Win32-Konsolenanwendung. (VS6)



  • Hallo,

    hat jemand eine Ahnung wie man unter Visual Studio 6.0 einer Konsolenanwendung nachträglich einen MFC-Dialog verpassen kann?

    d.H. main Funktion soll einen mit dem Dialogdesigner erstellten Dialog aufblenden.

    Momentan verwende ich in der Konsolenanwendungen bereits einige ATL/COM sowie MFC Header.

    Vieleicht hat schonmal jemand was in die Richtung gemacht?

    Danke schonmal.



  • DaRpH schrieb:

    d.H. main Funktion soll einen mit dem Dialogdesigner erstellten Dialog aufblenden.

    die .res datei in dein programm mit einbinden und dann damit: http://msdn2.microsoft.com/en-us/library/ms645445.aspx
    musst eben nur die DlgProc selber schreiben.
    🙂



  • Er verweigert mir aber den Formularassistenten aufzublenden (Von wegen es geht bei dem Projekttyp nicht.)

    Wenn ich ein Dialog als Resource hinzufüge kann ich keine Dialog Eventhandler, Controls für die einzelnen Felder definieren...

    Gibt es keinen Weg diesen Formularassitenten auch in Konsolenanwendungen unter Visual Studio 6.0 zu nutzen?

    Edit:
    selbst wenn ich die Definition _CONSOLE durch _WINDOWS,WIN32 ersetze und folgenden Code habe gehts nicht. (das Window wird nicht richtig gezeichnet, sondern komisch als obs nicht geredrawt wird)

    INT_PTR CALLBACK DialogProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { 
        switch(message) { 
    		case WM_INITDIALOG: 
    			return 1; 
    
    		case WM_NOTIFY: 
    			break; 
        } 
        return 1;
    }
    
    int __cdecl _tmain(int argc, LPTSTR argv[])
    {
    	MSG msg; 
    
    	HWND test = CreateDialogParam(GetModuleHandle(0), MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc, 0);
    
    	ShowWindow(test,SW_SHOW);
    
    	RedrawWindow(test, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN);
    
        while (GetMessage(&msg, NULL, 0, 0)) {
             TranslateMessage(&msg);
             DispatchMessage(&msg);
        }
    
    	return 0;
    }
    

Anmelden zum Antworten