Avatar billede baitianlong Nybegynder
13. april 2004 - 17:58 Der er 9 kommentarer og
1 løsning

minimer / maximer / hide konsolvindue

Hey.

Hvilken kode skal man bruge for at gemme et konsolvindue, mens det stadig kører ??

Også gerne kode til at maximere, minimere og lign.

Jeg hentede et lille program, der hed ShowConsole.exe, og jeg vil gerne vide hvilken kode, der ligger bag.
Avatar billede arne_v Ekspert
13. april 2004 - 19:06 #1
#include <stdio.h>
#include <windows.h>

extern "C" {
WINBASEAPI HWND WINAPI GetConsoleWindow(void);
}

int main()
{
  ShowWindow(GetConsoleWindow(), SW_HIDE);
  Sleep(5000);
  ShowWindow(GetConsoleWindow(), SW_SHOW);
  return 0;
}
Avatar billede arne_v Ekspert
13. april 2004 - 19:07 #2
(kræver vistnok 2000 eller XP)
Avatar billede baitianlong Nybegynder
13. april 2004 - 19:23 #3
Det virker fint nok. Gider du ikke forklare lidt. Jeg har ledt på nettet hele dagen efter et eller andet, der kunne forklare mig hvad der sker. Det var noget med et handle og noget gui kode på et konsol vindue. Hvis du vil skrive et par kommentarer til koden ville jeg blive meget glad
Avatar billede arne_v Ekspert
13. april 2004 - 19:27 #4
GetConsoleWindow er en ny funktion som returnerer en handle til console vinduet, ingen
argumenter.

ShowWindow er en kendt funktion som kan manipulere et vinduw, første argument = handle
til vindue, andet argument = action.

Sleep venter bare 5 sekunder (5000 millisekunder).
Avatar billede arne_v Ekspert
13. april 2004 - 19:28 #5
SW_HIDE    Hides the window and activates another window.
SW_MAXIMIZE    Maximizes the specified window.
SW_MINIMIZE    Minimizes the specified window and activates the next top-level window in the Z order.
SW_RESTORE    Activates and displays the window. If the window is minimized or maximized, Windows restores it to its original size and position. An application should specify this flag when restoring a minimized window.
SW_SHOW    Activates the window and displays it in its current size and position.
SW_SHOWDEFAULT    Sets the show state based on the SW_ flag specified in the STARTUPINFO structure passed to the CreateProcess function by the program that started the application.
SW_SHOWMAXIMIZED    Activates the window and displays it as a maximized window.
SW_SHOWMINIMIZED    Activates the window and displays it as a minimized window.
SW_SHOWMINNOACTIVE    Displays the window as a minimized window. The active window remains active.
SW_SHOWNA    Displays the window in its current state. The active window remains active.
SW_SHOWNOACTIVATE    Displays a window in its most recent size and position. The active window remains active.
SW_SHOWNORMAL    Activates and displays a window. If the window is minimized or maximized, Windows restores it to its original size and position. An application should specify this flag when displaying the window for the first time.
Avatar billede baitianlong Nybegynder
13. april 2004 - 19:38 #6
ok, hvad er det så lige der sker med den der extern "c" ?? : )

Resten fatter jeg fint, men hvad er det for en sjov erklæring ?
Avatar billede arne_v Ekspert
13. april 2004 - 19:43 #7
extern "C" {
...
}

bruges til at erklære C funktioner i C++ med.
Avatar billede arne_v Ekspert
13. april 2004 - 19:45 #8
C++ supporterer jo overloading med forskellige argumenter.

void f(int iv)
void f(double xv)

er 2 forskellige funktioner.

Det gør compileren ved at ændre navnene til (teoretisk eksempel):

f_int
f_double

Det duer naturligvis ikke med C funktioner.

extern "C" betyder hold snitterne fra de her navne.
Avatar billede baitianlong Nybegynder
13. april 2004 - 20:15 #9
ok, det blev jeg en lile-bitte smule klogere af, men jeg skal vist læse lidt mere c++. For et ligger da milevidt fra det Java, jeg er vant til... Det lyder som noget hen ad static final med gammel arv fra C ?!? (jeg er ikke helt nede med det) - Men mange tak for info'en og hjælpen : ))
Avatar billede arne_v Ekspert
13. april 2004 - 20:32 #10
C++ er noget mere kompleks end Java.

Jeg kan ikke rigtigt komme i tanke om noget i Java der reelt svarer til extern "C".
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