Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Konzolna aplikacija, full-screen?

[es] :: C/C++ programiranje :: Konzolna aplikacija, full-screen?

[ Pregleda: 3065 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stameni
Ivan Stamenković

Član broj: 6739
Poruke: 538



+9 Profil

icon Konzolna aplikacija, full-screen?31.10.2004. u 15:26 - pre 237 meseci
Windows 98, Visual C++ 6.0. Konzolna aplikacija treba sama sebe da maksimizuje u full-screen režim, kao kada se istovremeno pritisnu Alt i Enter. Kako to izvesti?
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
..31.216.81.gus.vf.siwnet.net.

Sajt: dejan.lekic.org


+2 Profil

icon Re: Konzolna aplikacija, full-screen?31.10.2004. u 16:05 - pre 237 meseci
Ivane, Win98 kod nisam testirao jer nemam Win98. Evo ga:
Windows 95/98
Code:

#include <windows.h>
#include <conio.h>

// Vazno kada se koristi MinGW
#if __MINGW32__
# define cprintf _cprintf
#endif

int main(int argc, char** argv)
{
   // Nadji nas konzolni prozor
   char con[120];
   GetConsoleTitle(con,sizeof(con));
   HWND w=FindWindow("tty",con);

   cprintf("Pritisnite taster za odlazak u 'fullscreen' mod. Nakon "
   "toga pritisnite bilo koji taster za povratak u Winblows!");
   
   getch(); // Cekaj na pritisak tastera...

   // Idi u full-screen mod
   SendMessage(w,WM_COMMAND,57359,0);

   getch(); // Cekaj na pritisak tastera za izlazak iz programa.
   return 0; // Ponasaj se dobro i kazi sistemu da je sve okej.
}


Windows NT/XP
Code:

#include <windows.h>
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>

// Vazno kada se koristi MinGW
#if __MINGW32__
# define cprintf _cprintf
#endif

typedef BOOL WINAPI (*GetConsoleDisplayModeT)(DWORD*);
typedef BOOL WINAPI (*SetConsoleDisplayModeT)(HANDLE,DWORD,DWORD*);

GetConsoleDisplayModeT GetConsoleDisplayMode;
SetConsoleDisplayModeT SetConsoleDisplayMode;

int main(int argc, char** argv)
{
   HINSTANCE hLib=LoadLibrary("KERNEL32.DLL");
   SetConsoleDisplayMode=(SetConsoleDisplayModeT)
      GetProcAddress(hLib,"SetConsoleDisplayMode");
   GetConsoleDisplayMode=(GetConsoleDisplayModeT)
      GetProcAddress(hLib,"GetConsoleDisplayMode");

   HANDLE h=CreateFile("CONOUT$",GENERIC_WRITE|GENERIC_READ,FILE_SHARE_READ |
      FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,0);

   DWORD oldmode;

   cprintf("Za pet sekundi idem u 'fullscreen' mode. Nakon toga "
   "pritisnite bilo koji taster za povratak u Winblows!");
   Sleep(5000); // Cisto radi testa...

   // Ovde setujemo full scree mod...
   SetConsoleDisplayMode(h,1,&oldmode);

   getch(); // Cekaj da korisnik pritisne neki taster...
   
   return 0;
}

Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

stameni
Ivan Stamenković

Član broj: 6739
Poruke: 538



+9 Profil

icon Re: Konzolna aplikacija, full-screen?31.10.2004. u 18:02 - pre 237 meseci
Ha, jedan SendMessage, a program se i maksimizuje i restoreuje; kako? Kako si odredio baš 57359 kao argument u SendMessage? Bezuspešno se vrtim po MSDN-u skoro pola sata :)
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+165 Profil

icon Re: Konzolna aplikacija, full-screen?31.10.2004. u 19:59 - pre 237 meseci
To bi trebalo da je nedokumentovan message id koji se inače šalje kada se radi taj "fullscreen toggle" preko tastature.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Konzolna aplikacija, full-screen?

[ Pregleda: 3065 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.