Konsolenfenster

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Sylvia
verheiratet<br>1. PureGolf-Gewinner
Beiträge: 487
Registriert: 29.08.2004 09:42
Wohnort: Old Europe

Konsolenfenster

Beitrag von Sylvia »

Seit längerem stört mich die mickrige Größe des Konsolenfensters auf einem 4k-Monitor. Lässt sich das Konsolenfenster rein optisch irgendwie vergrößern (z.B.auf die doppelte Größe)?
Basic Pur = PureBasic
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Konsolenfenster

Beitrag von RSBasic »

Damit kannst du die Größe ändern:

Code: Alles auswählen

EnableExplicit

ImportC "msvcrt.lib"
  system(cmd.p-ascii)
EndImport

If OpenConsole("Meine Konsole")
  system("mode 200,60")
  
  Input()
  
  CloseConsole()
EndIf
(nur Windows)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Sylvia
verheiratet<br>1. PureGolf-Gewinner
Beiträge: 487
Registriert: 29.08.2004 09:42
Wohnort: Old Europe

Re: Konsolenfenster

Beitrag von Sylvia »

Danke, RSBasic.

Das meinte ich aber nicht. Ich möchte es einfach "zoomen" irgendwie, so dass die Darstellung grösser wird
Basic Pur = PureBasic
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Konsolenfenster

Beitrag von RSBasic »

Wenn DPI aktiviert ist und auf deinem Monitor genutzt wird (z.B. 200 %), sollte es ausreichen und wird von Windows automatisch skaliert.
Aber nur das Konsolenfenster zu vergrößern, ist mir keine Lösung bekannt. Aber ich stelle gerade fest, dass man unter Windows 10 mit Strg+Scrollrad den Inhalt des Konsolenfensters vergrößern kann. Das ist mir neu. Ich weiß aber gerade nicht, ob es eine WinAPI-Funktion gibt, um den Zoom-Wert festzulegen.
Alternatv könnte man mit mouse_event_() das Scrollen simulieren:

Code: Alles auswählen

EnableExplicit

Define a

If OpenConsole("Meine Konsole")
  keybd_event_(#VK_CONTROL, #Null, #Null, #Null)
  For a=1 To 20
    mouse_event_(#MOUSEEVENTF_WHEEL, 0, 0, #WHEEL_DELTA, 0)
  Next
  keybd_event_(#VK_CONTROL, #Null, #KEYEVENTF_KEYUP, #Null)
  Input()
  
  CloseConsole()
EndIf
Das würde ich aber nur als letzte Lösung nutzen, wenn keine andere Möglichkeit gibt.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Konsolenfenster

Beitrag von mk-soft »

Anderen Zeichensatz wählen, Oben links...

Windows merk sich die Einstellung für das Konsolen-Fenster.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: Konsolenfenster

Beitrag von Mijikai »

Es gibt eine Funktion um die Font zu ändern SetConsoleFont() (kernel32) eventuell geht es damit.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Konsolenfenster

Beitrag von RSBasic »

Hier ein Beispielcode: https://www.purebasic.fr/english/viewto ... 74#p462074
Unter Windows bekomme ich aber:
PureBasic - Linker error hat geschrieben:POLINK: error: Unresolved external symbol 'GetNumberOfConsoleFonts'.

POLINK: error: Unresolved external symbol 'SetConsoleFont'.

POLINK: fatal error: 2 unresolved external(s).
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Sylvia
verheiratet<br>1. PureGolf-Gewinner
Beiträge: 487
Registriert: 29.08.2004 09:42
Wohnort: Old Europe

Re: Konsolenfenster

Beitrag von Sylvia »

Danke euch allen! Wieder was dazugelernt!

@mk-soft:
Bullseye!! DAS war's ! :allright:
Basic Pur = PureBasic
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: Konsolenfenster

Beitrag von Mijikai »

Habs mal getestet:

Code: Alles auswählen

EnableExplicit

Import "kernel32.Lib"
  SetCurrentConsoleFontEx.i(hOut.i,bMaximumWindow.b,*lpConsoleCurrentFontEx)
EndImport

Structure CONSOLE_FONT_INFOEX
  cbSize.l
  nFont.l
  dwFontSize.COORD
  FontFamily.l
  FontWeight.l
  FaceName.u[#LF_FACESIZE]
EndStructure


Global cfi.CONSOLE_FONT_INFOEX

OpenConsole()

With cfi.CONSOLE_FONT_INFOEX
  \cbSize = SizeOf(CONSOLE_FONT_INFOEX)
  \dwFontSize\X = 0
  \dwFontSize\Y = 48
  \FontWeight = #FW_BOLD
EndWith

PokeS(@cfi\FaceName, "Lucida Console", -1, #PB_Unicode)

SetCurrentConsoleFontEx(GetStdHandle_(#STD_OUTPUT_HANDLE), 1, @cfi)
PrintN("The quick brown fox jumped over the lazy dog.")
Input()

CloseLibrary(0)
End
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Konsolenfenster

Beitrag von RSBasic »

:allright:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten