XP-Style funktioniert nicht
-
Hallo,
Ich möchte meiner Anwendung den neueren und ansprechenderen XP-Style verpassen.
Bei einer älteren Programm hat es auch schön funktioniert doch bei diesem irgendiwe nicht.Ich gehe nach folgender Anleitung: http://www.c-plusplus.net/forum/187370
Warum klappt es diesmal nicht?Kann mir jemand helfen?
(Ich bin noch ein Anfänger)Mein Code
#if defined _M_IX86 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") #elif defined _M_IA64 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"") #elif defined _M_X64 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") #else #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") #endif #include <commctrl.h> #pragma comment(lib, "comctl32.lib") #include <windows.h> #include "resource.h" LPCSTR MainClassName = "Umrechnungen Version 1.0 Beta"; LRESULT CALLBACK WndProc(HWND hWnd,UINT uiMessage, WPARAM wParam, LPARAM lParam); HINSTANCE hInstGlobal; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int nCmdShow) { InitCommonControls(); hInstGlobal = hInstance; WNDCLASSEX WndClass; MSG wmsg; HWND hWnd; WndClass.cbSize = sizeof(WNDCLASSEX); WndClass.style = 0; WndClass.lpfnWndProc = WndProc; WndClass.cbClsExtra = 0; WndClass.cbWndExtra = 0; WndClass.hInstance = hInstance; WndClass.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(ID_ICON)); WndClass.hCursor = LoadCursor(NULL, IDC_ARROW); WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); WndClass.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1); WndClass.lpszClassName = MainClassName; WndClass.hIconSm = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ID_ICON), IMAGE_ICON, 16, 16, 0); if(!RegisterClassEx(&WndClass)) { MessageBox(NULL, "Windows Registrations Fehler", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } hWnd = CreateWindowEx(WS_EX_CLIENTEDGE, MainClassName, "Umrechnungen Version 1.0 Beta", WS_OVERLAPPEDWINDOW|WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 800,450,NULL,NULL,hInstance, NULL); if(hWnd == NULL) { MessageBox(NULL, "Fehler beim Erstellen des Fensters!", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } while(GetMessage(&wmsg,NULL,0,0)) { TranslateMessage(&wmsg); DispatchMessage(&wmsg); } return wmsg.wParam; } LRESULT CALLBACK WndProc(HWND hWnd,UINT uiMessage, WPARAM wParam, LPARAM lParam) { char string[255]; switch (uiMessage) { case WM_CLOSE: DestroyWindow(hWnd); break; case WM_DESTROY: PostQuitMessage(0); return 0; case WM_COMMAND: switch(LOWORD(wParam)) { case ID_FILE_OPEN: LoadString(GetModuleHandle(NULL),ID_STRING_OPEN, string, sizeof(string)); MessageBox(hWnd,string, "Öffnen",MB_ICONINFORMATION); HDC hdc; hdc = GetDC (hWnd); Rectangle (hdc, 10, 10, 100, 100); ReleaseDC (hWnd, hdc); hdc = GetDC (hWnd); Rectangle (hdc, 15, 15, 120, 120); ReleaseDC (hWnd, hdc); hdc = GetDC (hWnd); Rectangle (hdc, 20, 20, 140, 140); ReleaseDC (hWnd, hdc); hdc = GetDC (hWnd); Rectangle (hdc, 25, 25, 160, 160); ReleaseDC (hWnd, hdc); hdc = GetDC (hWnd); Rectangle (hdc, 30, 30, 180, 180); ReleaseDC (hWnd, hdc); hdc = GetDC (hWnd); Rectangle (hdc, 35, 35, 200, 200); ReleaseDC (hWnd, hdc); hdc = GetDC (hWnd); char *string5; string5 = new char[280]; lstrcpy (string, "Alle Rechtecke wurde erfolgreich erstellt !!! "); TextOut (hdc, 250,20,string,lstrlen(string)); ReleaseDC (hWnd, hdc); delete string5; return 0; break; case ID_FILE_SAVE: LoadString(GetModuleHandle(NULL),ID_STRING_SAVE, string,sizeof(string)); MessageBox(hWnd,string, "Speichern",MB_ICONINFORMATION); hdc = GetDC (hWnd); Rectangle (hdc, 10, 10, 100, 100); ReleaseDC (hWnd, hdc); return 0; break; case ID_OPTIONS_OPTIONS_OPTION1: LoadString(GetModuleHandle(NULL),ID_STRING_OPTION1, string,sizeof(string)); MessageBox(hWnd,string, "Option 1",MB_ICONINFORMATION); break; case ID_FILE_SYSTEMINFORMATIONEN: hdc = GetDC (hWnd); string5 = new char[280]; lstrcpy (string, "Bitte waehlen sie die benoetigten Inforamtionen aus : "); TextOut (hdc, 100,20,string,lstrlen(string)); ReleaseDC (hWnd, hdc); delete string5; HWND hButtonFarbtiefe, hButtonAufloesung, hButtonWindows, hButtonVerzeichnis, hButtonExit; hButtonWindows = CreateWindow("BUTTON","Windows Verzeichnis",WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,15,50,150,20,hWnd,(HMENU) 1, hInstGlobal ,NULL); hButtonVerzeichnis = CreateWindow("BUTTON","Aktuelles Verzeichnis",WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,15,70,200,20,hWnd,(HMENU) 2,hInstGlobal,NULL); hButtonAufloesung = CreateWindow("BUTTON","Aufloesung",WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,15,90,130,20,hWnd,(HMENU) 3,hInstGlobal,NULL); break; case ID_OPTIONS_OPTIONS_OPTION2: LoadString(GetModuleHandle(NULL),ID_STRING_OPTION2, string,sizeof(string)); MessageBox(hWnd,string,"Option 2", MB_ICONINFORMATION); break; case ID_\1: LoadString(GetModuleHandle(NULL),ID_STRING_ABOUT, string,sizeof(string)); MessageBox(hWnd,string,"Über",MB_ICONINFORMATION); break; case ID_FILE_EXIT: DestroyWindow(hWnd); break; } break; } return DefWindowProc(hWnd,uiMessage,wParam,lParam); }
Der Compiler meldet mir immer die Meldung :
c:\program files (x86)\microsoft sdks\windows\v7.0a\include\commctrl.h(26): error C2059: Syntaxfehler: 'return'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\prsht.h(97): error C2065: 'CALLBACK': nichtdeklarierter Bezeichner
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\prsht.h(97): error C2065: 'LPFNPSPCALLBACKA': nichtdeklarierter Bezeichner
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\prsht.h(97): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\prsht.h(97): fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht möglich; Kompilierung wird abgebrochen.
-
Zuerst windows.h inkludieren, erst danach commctrl.h!
-
Okay Dankeschön !
Jetz funktionierts.