c++ befehle im w32??
lima-city → Forum → Programmiersprachen → C/C++ und D
aktion
anwendung
aufruf
befehlen
beginnen
beispiel
fenster
funktion
gedacht
hauptfenster
information
konsole
konstrukt
null
please
sofer
stehen
tasten
untergeordnete fenster
window
-
HI
wenn ich ein w32 hab. kann ich da die gleichen befehle einbauen, wie ich es in einer konsole gemacht h?tte? un wenn ja wo.
#include <windows.h>
#include <iostream.h>
#include <stdio.h>
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow){
static char szAppName[] = "name" ;
HWND hwnd ;
MSG msg ;
WNDCLASSEX wndclass ;
wndclass.cbSize = sizeof (wndclass) ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION) ;
RegisterClassEx (&wndclass) ;
hwnd = CreateWindow (szAppName, "fenstername", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL) ;
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ; }
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
switch (iMsg)
{
case WM_CREATE :
return 0 ;
case WM_PAINT :
return 0 ;
case WM_DESTROY :
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}
wo m?sste ich hier diesen code einbauen??
un wenn es andere befehle w?ren k?nnte ich bitte ein gutes tut haben??
please help an die proger!! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Sachen, die vor dem Erscheinen des Fensters gemacht werden sollen (zum Beispiel irgendwelche Konfigurationsdateien einlesen o.?.) machst du am Besten vor dem Aufruf von ShowWindow() oder noch fr?her.
Der Rest l?uft dann ja interaktiv je nachdem, was der User macht. F?r jede Aktion des Users bekommst du eine "Nachricht" gesandt. Diese Nachricht wird ?bermittelt, indem Windows die von dir daf?r angegebene Funktion aufruft. In deinem Codebeispiel ist dies die Funktion WndProc(). Die Nachrichten musst du dann halt in dieser Funktion verarbeiten. Einige Nachrichten hast du in deinem Codebeispiel schon stehen (WM_CREATE, WM_PAINT und WM_DESTROY). F?r alles m?gliche bekommst du vom System eine Nachricht (also die Funktion WndProc() wird von Windows aufgerufen). Die Nachrichten selbst sind als defines festgelegt und beginnen mit "WM_".
Kurze Erkl?rung zu WndProc():
HWND hwnd:
Das Handle des Fensters, f?r das die Nachricht gedacht ist. ?blicherweise das Hauptfenster deiner Anwendung. Untergeordnete Fenster (Buttons u.?. sind auch Fenster!) bekommen die Nachricht auch an WndProc() geschickt, sofern du beim Erstellen der Unterfenster nicht eine andere Windowsprozedur angegeben hast.
UINT iMsg
Die eigentliche Nachricht, z.B. WM_KEYDOWN, wenn dein Fenster den Eingabefokus hat und eine Taste runtergedr?ckt wurde.
WPARAM wParam
und
LPARAM lParam:
Je nachdem, welche Nachricht man in iMsg erhalten hat, sind in wParam und lParam eventuell noch weitere zus?tzliche Informationen abgelegt. Bei WM_KEYDOWN zum Beispiel, welche Taste runtergedr?ckt wurde.
Du musst nun rausfinden, welche Nachrichten f?r dein Programm relevant sind und diese dann im switch-Konstrukt in deiner WndProc() abfangen und verarbeiten.
Kurz gesagt: Initialisierungsroutinen geh?ren vor ShowWindow(), alles andere geh?rt in die WndProc(). -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage