Avatar billede faramir Nybegynder
10. juni 2004 - 21:00 Der er 7 kommentarer og
1 løsning

Fuldt skærmbillede i program

Hej programmører!

Jeg er en nystartet programmør der har lidt problemer med at få et program til at starte i fuld skærm. Altså uden bjælker eller noget andet. Kun fuld skærm som når man starter et spil.
I må gerne forklare koden da jeg som sagt er meget grøn...

På forhånd tak!
Avatar billede bertelbrander Novice
10. juni 2004 - 22:48 #1
DirectX? Standard Windows? Konsol? Kompiler? Platform?
Avatar billede nlf Nybegynder
10. juni 2004 - 22:54 #2
Det kan du hurtigt gøre ved hjælp af Windows'DEVMODE (Device Mode):
Bemærk, jeg bruger Dev-C++, men filerne plejer at ligge nogenlunde det samme sted, ellers må du jo lige spørge.

//husk at inkludere denne fil:
#include <windows.h>
//eller, for at gøre det mindre, disse filer:
#include <stdarg.h>
#include <windef.h>
#include <winbase.h>
#include <wingdi.h>
#include <winuser.h>

DEVMODE DM; //type deklaration

ZeroMemory(&DM, sizeof(DM)); //udfylder hele Device Moden med nuller
DM.dmSize = sizeof(DEVODE); //sætter størrelsen

//under Device Mode findes der så forskellige indstillinger, men her kommer nok dem
//man oftest bruger:

DM.dmPelsWidth = 640; //opløsningens bredde
DM.dmPelsHeight = 480; //opløsningens højde
DM.dmBitsPerPel = 32; //farvedybde
DM.dmDisplayFrequency = 85; //opdateringshastighed
DM.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT | DM_DISPLAYFREQUENCY; //hvilke "felter" i skærmindstillingerne der skal ændres
ChangeDisplaySettings(&DM, CDS_FULLSCREEN); //og endelig fortælle windows at den
//skal skifte til fuld skærm uden menubar osv.

//For så at gøre dit program klar til det (husk at udskifte Wnd med dit vindues handle):
ShowWindow(Wnd, SW_MAXIMIZE); //Maksimer dit vindue
SetForegroundWindow(Wnd); //Sætter dit vindue i toppen af Z-ordenen (hvilke vinduer
//der skal ligge øverst i windows)
SetFocus(Wnd); //Sætter fokus på dit dit vindue

Sådan! Du behøver sådan set ikke den del med Device Mode, men hvis du tilpasser dit program til en bestemt størrelse (fx 640x480) er den meget rar at have, sådan at det ikke ser akavet ud i en brugers egen opløsning.
Avatar billede faramir Nybegynder
11. juni 2004 - 00:38 #3
nlf >>Ok det ser rigtig godt ud. Skal nok studere den lidt nærmere for at forstå det hele... Er jo nybegynder.
Avatar billede faramir Nybegynder
11. juni 2004 - 00:41 #4
Det drejer sig om at jeg skal lave et slags konsol-program med en promp hvorfra man kan kalde en masse komandoer som jeg selv har defineret. Så kunne det være lidt cool at få det op i fuld skærm nemlig...
Nogle der ligefrem har et eksempel skrevet til C++Builder ville det være fedt, men nfl's er også storartet.
Avatar billede bertelbrander Novice
11. juni 2004 - 01:08 #5
Jeg er bange for at nlf's løsning ikke virker med et konsol program.

Så vidt jeg ved skal du bruge SetConsoleDisplayMode():
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/setconsoledisplaymode.asp

Men det kræver at du har XP og en nyere version af Platform SDK. Jeg har ingen af delene, så jeg kan ikke lave et eksempel.
Avatar billede nlf Nybegynder
11. juni 2004 - 02:04 #6
Argh, det kunne du jo godt lige have fortalt i starten, så jeg ikke behøvede at fortælle dig den lange kode...Nå men skidt pyt, håber du kan bruge det når du engang når til Win32 API'en, men jeg kender ikke lige til fuldskærmsmaksimering af konsolprogrammer. Ifølge Windows XP må kommandopromten i hvert fald kun fylde 80 tegn i bredden hvis man maksimerer den...
Avatar billede faramir Nybegynder
11. juni 2004 - 09:37 #7
Problemet er at jeg íkke skal lave et konsolprogram basseret på en dos-opsætning. Jeg skal lave en gui der minder om det men hvor jeg selv har kontrol over skrifttyper, placering af teksten, eventuel grafik, outputs ved forskellige kommandoer jeg selv har defineret osv...
Avatar billede faramir Nybegynder
10. august 2004 - 16:02 #8
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester