Avatar billede rhandersen Nybegynder
13. august 2005 - 21:00 Der er 10 kommentarer og
1 løsning

Køre i fuld skærm

Kan i hjælpe mig med at få mit c++ dos-program til at køre i fuld skærm så snart man starter det?

Dvs helt sort skærm med hvid skrift:)
Avatar billede visualdeveloper Nybegynder
13. august 2005 - 21:01 #1
du kan bare starte computeren i dos og så starte det derfra !
Avatar billede rhandersen Nybegynder
13. august 2005 - 21:03 #2
ja, men når man starter det i windows paphovede:)
Avatar billede visualdeveloper Nybegynder
13. august 2005 - 21:03 #3
ok slap af !
Avatar billede arne_v Ekspert
13. august 2005 - 21:40 #4
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/setconsoledisplaymode.asp

ser ud til at kunne gøre det - men jeg kan ikke lige få den til at compile
(for gamle compilere)
Avatar billede bertelbrander Novice
13. august 2005 - 23:02 #5
Følgende virker med mingw på XP:

#define _WIN32_WINNT 0x501
#include <windows.h>
#include <iostream>

int main()
{
  SetConsoleDisplayMode(GetStdHandle(STD_OUTPUT_HANDLE), CONSOLE_FULLSCREEN_MODE, 0);
  std::cout << "I'm full screen" << std::endl;
  std::cin.get();
}
Avatar billede rhandersen Nybegynder
14. august 2005 - 19:55 #6
hvad er mingw?

Den virker ikke i mit Dev c++ 4
Avatar billede bertelbrander Novice
14. august 2005 - 20:03 #7
Dev-Cpp bruger en kompiler der hedder MinGW.
Den version som din dev-cpp bruger er tilsyneladende for gammel.

Du kan måske løse problemet ved at instalere en nyere dev-c++, ellers kan du downloade en ny version af mingw fra:
http://www.mingw.org/

Og så overskrive de filer som ligger under dev-cpp.
Avatar billede arne_v Ekspert
14. august 2005 - 21:13 #8
alternativt er der jo "the hard way":

#include <windows.h>

#include <stdlib.h>

typedef BOOL (*F)(HANDLE hConsoleOutput,DWORD dwFlags,COORD *lpNewScreenBufferDimensions);
#define CONSOLE_FULLSCREEN_MODE 1

int main()
{
  HINSTANCE dll;
  F SetConsoleDisplayMode;
  HANDLE h;
  COORD size = { 80, 25 };
  h = GetStdHandle(STD_OUTPUT_HANDLE);
  dll = LoadLibrary("kernel32.dll");
  SetConsoleDisplayMode = (F)GetProcAddress(dll,"SetConsoleDisplayMode");
  SetConsoleDisplayMode(h,CONSOLE_FULLSCREEN_MODE,&size);
  system("PAUSE");
  return 0;
}
Avatar billede rhandersen Nybegynder
14. august 2005 - 21:42 #9
Og forskellen på de to er?

Ud over at der er mere kode i arnes:)

Smid svar begge.
Avatar billede arne_v Ekspert
14. august 2005 - 21:44 #10
min kode slår funktionen op dynamisk og virker derfor i gamle
compilere selvom funktionen mangler i .h og .lib/.a

og svar
Avatar billede bertelbrander Novice
14. august 2005 - 23:15 #11
Man bør nok checke om GetProcAddress returnerer noget der ikke er NULL, i det tilfælde at nogen skulle finde på at køre koden på en PC uden XP.

Jeg samler ikke på point.
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