lordfritte
Erfahrenes Mitglied
Hallo ich suche ein Deutsches Tutorial zum Fnesterprogrammierung unter C++ mit Dev-C++
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
#define STRICT
#include <windows.h>
//LRESULT ist ein typedef auf einen long Typ.
//CALLBACK sagt aus, dass diese Funktion von Windows aufgerufen wird.
//Der erste Parameter ist der Handle zu dem Fenster.
//Der zweite Parameter message enthält die Kennziffer der Nachricht.
//Die nächsten beiden Parameter enthalten je nach Nachricht verschiedene Daten.
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
const char szAppName[] = "Ein eigenes Fenster"; //Programmname.
//Der erste Parameter HINSTANCE ist ein Handle auf diese Programminstanz.
//Der zweite Parameter ist vom gleichen Typ, jedoch wird dieser Wert in Win 32 immer Null sein.
//Der dritte Parameter enthält die Kommandozeilen Parameter.
//Mit dem vierten Parameter wird übergeben, wie das eventuelle Fenster angezeigt werden soll (maximiert, minimiert usw.).
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){
HWND hWnd; //Handle für unser Fenster.
MSG msg; //Windows Nachrichten abholen und bearbeiten.
WNDCLASS wc; //Typ der Fensterklasse.
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszClassName = szAppName;
wc.lpszMenuName = NULL;
RegisterClass(&wc);
hWnd = CreateWindow(szAppName,
"Titelleiste",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, /* X-Position auf dem Monitor */
CW_USEDEFAULT, /* Y-Position auf dem Monitor */
CW_USEDEFAULT, /* Fensterbreite */
CW_USEDEFAULT, /* Fensterhoehe */
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 message, WPARAM wParam, LPARAM lParam){
switch(message){
case WM_DESTROY:{
PostQuitMessage(0);
return 0;
}
}
return DefWindowProc(hWnd, message, wParam, lParam);
}
C:\DOKUME~1\Tobias\LOKALE~1\Temp\cc6ddaaa.o(.text+0x71) In function `WinMain':
[Linker error] undefined reference to `GetStockObject@4'
C:\DOKUME~1\Tobias\LOKALE~1\Temp\cc6ddaaa.o(.text+0x71) ld returned 1 exit status
HGDIOBJ GetSObject (int);
Die Meldung hab ich schon so oft gehört und nach allen möglichen Dateien mit gdi im Namen gesucht. War nichts zu finden. Glaub mir, mit dynamischer Einbindung passiert dir am allerwenigsten.Flegmon hat gesagt.:Linker Error bedeutet meistens, dass einfach vergessen wurde ne .lib anzugeben GetStockObject ist in der Lib Gdi32.lib. Gib die in den Linker Optionen an bei Dev-C++ heißt die dann libgdi32.a