Windows-Fenster aus Konsolenprogramm



  • Aus einer Konsolenanwendung heraus würde ich gerne ein Fenster erstellen. Zur Erstellung eines solchen muß man ja bei der Registrierung der Fensterklasse ein Prozeß-Instanzhandle übergeben, das normalerweise der WinMain übergeben wird, auf das man in einer Konsolenanwendung daher aber nicht direkt verfügt. Nun habe ich irgendwo gelesen, daß das Prozeßmodul mittlerweile genau das gleiche sein soll wie das Instanzhandle, und deshalb folgendes probiert:

    WNDCLASSEX wc;
    ...
    wc.hInstance = GetModuleHandle (NULL);
    

    Beim Durchsteppen mit dem Debugger scheint auch alles zu funktionieren, jedenfalls gibt keine der aufgerufenen Funktionen einen Fehler zurück, und die Window-Prozedur wird ganz normal aufgerufen. Allerdings wird das Fenster seltsamerweise nicht angezeigt. Wenn ich den Code für die Erstellung des Fensters als Win32-Applikation kompiliere, funktioniert alles.

    Darf ich den Rückgabewert von GetModuleHandle (NULL) einfach so für hInstance verwenden? Wenn nicht, wo bekomme ich den korrekten Wert her? Oder kann man etwa doch nicht so einfach ein Fenster in einem Konsolenprogramm erzeugen?



  • der fehler liegt woanders.



  • audacia schrieb:

    Darf ich den Rückgabewert von GetModuleHandle (NULL) einfach so für hInstance verwenden?

    Jo das kannst Du so machen, Dein Fehler liegt also woanders (WS_VISIBLE Flag vllt nicht gesetzt ?) 😉 .



  • antwort schrieb:

    der fehler liegt woanders.

    Stimmt, ich merkte gerade, daß ich bei ShowWindow einen Fehler gemacht habe (versehentlich den Parameter 0 übergeben, mit SW_SHOW klappts). Danke für den Hinweis 😉


Anmelden zum Antworten