[C++] cursor verplaatsen naar console scherm

Pagina: 1
Acties:

  • Mg-02
  • Registratie: Oktober 2005
  • Laatst online: 28-09-2023
Hoi,
ik heb een applicatie met daarin twee windows 1 opengl en 1 console scherm.
Ik wil dat zodra mijn programma start dat de cursor naar het console scherm springt.
Maar eigenlijk wil ik wel dat mijn opengl scherm op de voorgrond blijft.

Ik wil dus dat het console scherm alle in en output regelt, zonder dat dit zichtbaar is.

ik heb het console scherm op de volgende manier gemaakt:
AllocConsole ();
freopen ("CONOUT$", "w", stdout);
freopen ("CONIN$", "r", stdin);

bedankt.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Om even mezelf te quoten:
-NMe- schreef op woensdag 12 oktober 2005 @ 17:41:
Hoi Mg-02 en welkom op GoT. :)

Helaas verwachten we hier iets meer inzet van mensen dan wat je tot nu toe hebt laten zien. Wat had je zelf al gezocht en gevonden? Wat heb je geprobeerd? Wat was er niet goed aan? Allemaal vragen die je in je topicstart al hoort te beantwoorden, voordat wij je überhaupt kunnen helpen. Zie ook P&W FAQ - De "quickstart". :)
Datzelfde geldt hier ook. Geef eens wat meer informatie over wat je zelf al gedaan hebt om je probleem op te lossen, dan kunnen wij je ook veel beter helpen. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Mg-02
  • Registratie: Oktober 2005
  • Laatst online: 28-09-2023
Ik heb het geprobeert met
HWND SetFocus(
HWND hWnd
);

maar ik weet niet hoe ik het dan naar het console scherm krijg

  • ThunderNet
  • Registratie: Juni 2004
  • Laatst online: 16:59

ThunderNet

Flits!

door de hWnd van je consolewindow in te voeren?

Maar is dat wel wat je wil? want je wilt dat je openGL window de focus houdt?
als je iets duidelijker bent, kunnen we er misch. iets meer mee :)

Heb je liever vooraf, of achteraf, dat ik zeg dat ik geen flauw idee heb wat ik doe?


  • Mg-02
  • Registratie: Oktober 2005
  • Laatst online: 28-09-2023
Ik dacht dat de Setfocus alleen de focus van de keyboard veranderde zonder het scherm naar voren te halen.

  • ThunderNet
  • Registratie: Juni 2004
  • Laatst online: 16:59

ThunderNet

Flits!

Heb je liever vooraf, of achteraf, dat ik zeg dat ik geen flauw idee heb wat ik doe?


  • Mg-02
  • Registratie: Oktober 2005
  • Laatst online: 28-09-2023
Ik begrijp niks van die setfocus, hoe kan ik de focus van het ene naar het andere scherm overzetten.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
De setfocus functie verwacht 1 parameter, namelijk het hWnd van het window dat je focus wilt geven. Wat begrijp je daar niet aan?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Mg-02
  • Registratie: Oktober 2005
  • Laatst online: 28-09-2023
Noem mee een noob, maar hoe weet ik wat de hWnd is van mijn schermen

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
Eh - was er niet iets met console windows en HWND's? Ik meen me te herinneren dat het uitzonderingen waren.

Blijft staan dat de TS natuurlijk z'n cursus Win32 API af moet maken voordat hij hier dit soort vragen stelt - je HWND is wat je terugkrijgt als Windows een window aanmaakt. En aangezien windows in Windows nogal belangrijk zijn :X is een HWND dat ook.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

Mg-02 schreef op woensdag 19 oktober 2005 @ 23:59:
Noem mee een noob, maar hoe weet ik wat de hWnd is van mijn schermen
Die heb je zelf gemaakt bij het creëeren van je window. De naamgeving is e rook naar, de handle naar je window.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17:52

.oisyn

Moderator Devschuur®

Demotivational Speaker

Cursus documentatie gebruiken
  1. Je hebt AllocConsole en GetStdHandle al gevonden. Die zoek je op in de MSDN.
  2. Onderaan de pagina, onder het kopje "See Also", klik je op "Console Functions". Dit brengt je naar een lijst met win32 API functies die met de console te maken hebben
  3. Aangezien je de hwnd van je console window op wilt vragen, zal de functie een naam hebben in de trant van GetConsoleWindow. En waarempel, die staat er idd tussen! Klik erop.
  4. The GetConsoleWindow function retrieves the window handle used by the console associated with the calling process.. Nou, da's precies wat je moest hebben!

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Mg-02
  • Registratie: Oktober 2005
  • Laatst online: 28-09-2023
Het is me gelukt!! :) Dus ik zal voor de andere mensen die dit ook willen, even zeggen hoe ik het gedaan heb.

Ik heb in mijn WinMain met een console screen gemaakt met de volgende code.
C++:
1
2
3
AllocConsole();
freopen("CONOUT$", "w", stdout);
freopen("CONIN$", "r", stdin);


ik heb er voor gezorgt dat dit scherm eerder werd aangemaakt dan mijn opengl scherm, zodat het opengl scherm op de voorgrond komt.

bij mij in mijn code staat erop dit:
C++:
1
2
3
4
ShowWindow(hWnd,SW_SHOW);   // Show The Window
SetForegroundWindow(hWnd);      // Slightly Higher Priority
SetFocus(hWnd);         // Sets Keyboard Focus To The Window
ReSizeGLScene(width, height);       // Set Up Our Perspective GL Screen

Hier heb ik het volgende van gemaakt
C++:
1
2
3
4
ShowWindow(hWnd,SW_SHOWNA); // Show The Window
//SetForegroundWindow(hWnd);        // Slightly Higher Priority
//SetFocus(hWnd);           // Sets Keyboard Focus To The Window
ReSizeGLScene(width, height);       // Set Up Our Perspective GL Screen

door ShowWindow te veranderen naar SW_SHOWNA laat hij het scherm wel zien maar maakt het niet actief.
SetForegroundWindow(hWnd); heb ik uitgezet, omdat via dit alsnog het scherm actief wordt gemaakt.
//SetFocus(hWnd); en SetFocus ook omdat deze het scherm actief maakt en dat wil ik niet.

voor de mensen die geholpen hebben met mij op de goede weg te sturen ERG bedankt _/-\o_ _/-\o_
Pagina: 1