10. juni 2004 - 21:00Der 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...
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.
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.
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...
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...
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.