Entwickler-Ecke

Alle Sprachen - Alle Plattformen - C++ SetConsoleLong mit HANDLE


Kasko - Di 12.02.19 14:24
Titel: C++ SetConsoleLong mit HANDLE
Ich bin grad dabei ein mehr oder weniger eigenes Consolen-Fenster mit entsprechenden draw und print Funktionen zu erstellen. Jetzt möchte ich aber dafür sorgen, dass der Benutzer entscheiden kann ob man das Fenster vergrößern/verkleinern kann und anderes. Dafür hab ich die Funktionen SetConsoleLong und SetConsolePos gefunden. Allerdings benötigen diese ein HWND und für mein Fenster benötige ich nur das Consolen Input und Output HANDLE.

Wie kann ich diese Funktionen mit einem HANDLE aufrufen oder gibt es andere dafür?


Th69 - Di 12.02.19 14:48

GetConsoleWindow [https://docs.microsoft.com/en-us/windows/console/getconsolewindow] sollte dir helfen.


Kasko - Di 12.02.19 15:41

Erstmal danke für die schnelle Antwort. Zumindest hab ich keinen Syntaxfehler mehr auch wenn das Ergebnis ziemlich komisch ist. Nach dem Ausführen dieser Zeilen, läuft so einiges falsch.


C++-Quelltext
1:
2:
3:
4:
if (!SetWindowLong(GetConsoleWindow(), GWL_STYLE, WS_BORDER | WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU)) {
  ERROR_LOG(SetWindowLong);
  return;
}


1. Sobald man das Fenster anklickt, schließt sich das Fenster, egal wo man klickt.
2. Mitten auf dem Fenster sind Scrollbars aufgetaucht, die da nichts zu suchen haben.
3. Das Fenster ist nicht mehr in der Taskleiste sichtbar.


Delete - Di 12.02.19 17:11

- Nachträglich durch die Entwickler-Ecke gelöscht -