Archiv verlassen und diese Seite im Standarddesign anzeigen : c++ - zusätzliches Fenster
Ich würde gerne wissen wie ich in c++ ein zweites fenster öffnen kann bzw. wie ich dieses kontrollieren kann (ausblenden, einblenden, ....)
Lord Nikon
2003-06-23, 18:42:16
Ein zweites Fenster kannst du durch
Create (
NULL, // Klassename über AFX-Msg
"Fenster2", //Fenstertitel
WS_CLIPCHILDREN // Fensterstil/-Eigentschaften
| WS_CLIPSIBLINGS,
CRect(0,0,400,400), //Fensterposition & Größe
NULL, //KEIN ELternfenster
NULL, // Kein DialogMenu
WS_EX_TOPMOST, // Erweitere Fensterstile
NULL) //kein ZeigerCreateContext
erstellen. Mit
ShowWindow(SW_HIDE); kann man das Fenster verstecken und mit ShowWindow(SW_SHOWNOACTIVATE) kannst du anzeigen lassen
Gast,
was meinst du mit "in C++"? Benutzt du ein Framework (MFC, VCL, Managed C++) oder reine Windows API. Bei letzterem erstellst du ein weiteres Fenster genauso wie das erste - mit CreateWindowEx().
thx..aber.....
ich spreche von Visual C++ 6.0
1. welches Handle hat dieses Fenster dann?
2. Diese Funktion gibt es nicht..oder zumindest kennt sie mein Compiler nicht
ahja..thx Xmas
und wie spreche ich dieses Fenster an?
Lord Nikon
2003-06-23, 18:55:49
Mit der Winapi kannst du es mit
ShowWindow(
HWND hWnd, // handle to window
int nCmdShow // show state of window
);
ansprechen. Übrigens dürfte der Code für das Fenster gepostet habe bei der gehen , weil es bei mir im vc 6.0 ohne Probleme klappt.
Die Methode Create ist von CFrameWnd abgeleitet.
ahja..danke
das werd ich mal ausprobiern
irgendwelche probleme werd ich sicher noch haben->ich melde mich wieder ;)
Original geschrieben von Lord Nikon
Übrigens dürfte der Code für das Fenster gepostet habe bei der gehen , weil es bei mir im vc 6.0 ohne Probleme klappt.
Die Methode Create ist von CFrameWnd abgeleitet.
Dafür muss das Projekt aber mit MFC-Unterstützung erstellt werden, und Create muss zu einer Instanz aufgerufen werden.
Das entspricht allerdings der Wahrheit
das problem hab ich aber ohnehin schon gelöst
andere Frage:
zum neu-zeichnen meines fensters verwende ich einen Performence Counter (QueryPerformanceFrequency((LARGE_INTEGER*)&frequency)). Mit einer if-abfrage überprüf ich, ob die zeit bis zum nächsten Frame schon abgelaufen ist. Wenn ja wird das fenster neu gezeichnet (und anderes).
ABER: das Bild flackert irrsinnig. Was kann man dagegen tun?
Original geschrieben von Gast
Das entspricht allerdings der Wahrheit
das problem hab ich aber ohnehin schon gelöst
andere Frage:
zum neu-zeichnen meines fensters verwende ich einen Performence Counter (QueryPerformanceFrequency((LARGE_INTEGER*)&frequency)). Mit einer if-abfrage überprüf ich, ob die zeit bis zum nächsten Frame schon abgelaufen ist. Wenn ja wird das fenster neu gezeichnet (und anderes).
ABER: das Bild flackert irrsinnig. Was kann man dagegen tun?
Was genau zeichnest du in das Fenster, und wie oft zeichnest du?
das zeichne ich ~100x/sekunde
http://booster.strikenet.com/blaxes.exe
Original geschrieben von Gast
das zeichne ich ~100x/sekunde
http://booster.strikenet.com/blaxes.exe
Du bräuchtest Double Buffering um das Flimmern zu vermeiden. Also entweder renderst du das Bild erst in einem Bitmap im Speicher fertig und bringst es dann auf den Bildschirm, oder du verwendest z.B. OpenGL oder DirectX mit Double Buffering.
wie würde das mit OPENGL oder DirectX aussehn?
kannst du mir da ein beispiel geben?
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.