Dilaog in Konsolenanwendung öffnen



  • er macht ihn aber einfach nicht auf. Es passiert gar nichts.
    Das HWND von CreateDialog ist auch 0.



  • pmb schrieb:

    er macht ihn aber einfach nicht auf. Es passiert gar nichts.

    Tja, bei mir klappt's, mit einem frischen Dialog.

    pmb schrieb:

    Das HWND von CreateDialog ist auch 0.

    Was sagt denn GetLastError?



  • Habs jetzt auch mal mit einem "frischen" Dialog versucht.
    Er öffnet sich nun auch bei mir. Ich hab auch herausgefunden woran es
    liegt. Ich benutze ActiveXControls im Dialog. Die verhindern auch, dass der
    Dialog nicht aufgeht. Muss ich da nochwas initialisieren ?

    InitCommonControls(); habe ich mal versucht. Hat aber nichts geholfen.

    Vielen Dank schonmal MFK.
    Jetzt fehlt noch ein kleiner Schritt 🙄



  • pmb schrieb:

    Ich benutze ActiveXControls im Dialog.

    Ich denke, dass das möglich ist, aber ich weiß nicht, wie. Möglicherweise reicht OleInitialize.



  • OleInitialize() hab ich versucht.
    Hat leider nichts gebracht. Muss ich nochmal bissle googlen.
    Grundsätzlich denke ich auch das es möglich ist.

    Nochmals Vielen Dank


  • Mod

    Das geht gar nicht OleInitialize benötigt ein STA mit Message Loop.

    Weiterhin kannst Du mit Dialogen, die ActiveX Controls beinhalten nicht CreateDialog verwenden. Das ist ein spezielles Feature das nur mit der MFC geht.



  • Wenn Du eine Resource hast, und eine dialogklasse machst Du so:

    zb in einer Konsole anwendung die mindestens MFC statisch linkt und
    und eine dlg.cpp enthält:

    class CLuaEditHost : public CWinThread
    {
    public:
    	CLuaEditHost::CLuaEditHost(CString Path)
    	{
    		m_LuaEdit.m_File = Path;
    
    		CreateThread(CREATE_SUSPENDED);
    		m_bAutoDelete = true;
    		ResumeThread();//WaitForSingleObject(adapter->m_hThread, INFINITE)//delete(adapter) ;
    	}
    
    	virtual ~CLuaEditHost(){};
    
    	BOOL CLuaEditHost::InitInstance()
    	{
    		m_pMainWnd = &m_LuaEdit;
    
    		if(!m_LuaEdit.Create(IDD_LUAEDITOR))
    		 return FALSE;
    
    		return m_LuaEdit.Load(m_LuaEdit.m_File);
    	}
    
    	CLuaEditor    m_LuaEdit;
    };
    

    LuaHost hier als scheinkapsel

    m_pLuaHost = new CLuaEditHost(m_LuaPath);
    getch();//
    

Anmelden zum Antworten