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.


Anmelden zum Antworten