Hallo!
Ich kann die Empfehlung auch nur bestätigen! Ist zwar ziemlich dick, aber es wird auch eine Menge erklärt!!!
Wenn du noch ein Einsteiger in C++ bist, empfehle ich dir:
http://www.amazon.de/DirectX-Visual-komplette-Starte…
Da wird zwar auch DirectX erklärt, aber es gibt einen qualitativ hochwertigen Einstieg in die C+±Programmierung bis zur Win-32-API.
Mfg Sebastian
PS: Probier mal folgendes API-Skript aus:frowning:Du brauchs möglicherweise noch zusätzliche Bibliotheken?!?)
#include
// Anwendungsfenster erzeugen
HWND CreateMainWindow(HINSTANCE hInstance);
// Callback Funktion
LRESULT CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
HWND hWnd = 0;
//main-Funktion
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
hWnd = CreateMainWindow(hInstance);
if(0 == hWnd)
{
MessageBox(0,„Fenster konnte nicht erzeugt werden“,„Fehler“,MB_OK);
return 0;
}
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
// Nachricht an die Callbackfunktion senden
TranslateMessage(&msg);
DispatchMessage(&msg);
}
// Rückgabewert an Windows
return 0;
}
// Fenster erzeugen
HWND CreateMainWindow(HINSTANCE hInstance)
{
WNDCLASSEX wndClass =
{
sizeof(WNDCLASSEX),
CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW,
MessageHandler,
0,
0,
hInstance,
LoadIcon(NULL, IDI_WINLOGO),
LoadCursor(NULL, IDC_ARROW),
(HBRUSH)GetStockObject(WHITE_BRUSH),
NULL,
„WindowClass“,
LoadIcon(NULL, IDI_WINLOGO)
};
RegisterClassEx(&wndClass);
return CreateWindowEx(NULL, //
„WindowClass“, // Klassenname
„Hello Windows“, // Fenstertitel
WS_OVERLAPPEDWINDOW | // Fensterstil
WS_VISIBLE, // Sichtbar?
100, 100, 400, 300, //Größen Anfangspos.
NULL,
NULL,
hInstance,
NULL);
}
//CALLBACKFUNKTION
LRESULT CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
// Nachrichtenbehandlung:
switch(msg)
{
case WM_LBUTTONDOWN://linke Maustaste wurde gedrueckt
break;
case WM_PAINT //Fenster zeichnen:
break;
case WM_DESTROY://Fenster schliessen
PostQuitMessage(0);
return 0;
break;
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]