XP Style - Funktioniert nicht -.-



  • vieleicht liegts ja daran bei mein kumpel hats geholfen

    [cpp]
    #include <commctrl.h>
    #pragma comment(lib,"Comctl32.lib")
    //...
    InitCommonControls();
    //..
    [/cpp]
    

    weils fehlt 😕



  • Hallo,

    Sorry das ich erst jetzt antworte, ich war die Tage nicht daheim.

    Ich fang noch mal von vorne an. Ich erstelle ein Win32 (Anwendung) Projekt (Leer). Zum Projekt füge ich eine C++ Datei namens MessageBox.cpp ein. Die Datei beinhaltet folgenden Code:

    #include <windows.h>
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    				   PSTR szCmdLine, int iCmdShow)
    {
    	MessageBox (NULL, TEXT("Hello, WinAPI!"), TEXT("HelloMsg"),
    		        MB_OK | MB_ICONQUESTION | MB_HELP);
    	return 0;
    }
    

    Wie Ihr sicherlich schon erkennt, will ich nur einen Stinknormale Msg Box ausgeben. Wenn ich jetzt Debugge kommt die gewünschte msg Box jedoch im alten Windows look. Um jetzt zu versuchen den look in Win XP zu bekommen gehe ich wie folgt vor.

    Ich erstelle im Projekt ordner eine XML Datei die ich einfach mal xpstyle.xml nenne. In der Datei steht folgendes:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <dependency>
        <dependentAssembly>
            <assemblyIdentity
                type="win32"
                name="Microsoft.Windows.Common-Controls"
                version="6.0.0.0"
                processorArchitecture="X86"
                publicKeyToken="6595b64144ccf1df"
                language="*"
            />
        </dependentAssembly>
    </dependency>
    </assembly>
    

    Nun gehe ich wieder in Visual Studio, und unter Projekt -> Eigenschaften (ALT + F7) öffnet sich das Fenster für Projekteigenschaften. Hier wähle ich dann:
    Konfigurationseigenschaften -> Manifesttool -> Eingabe und Ausgabe -> Zusätzliche Manifestdateien aus und füge dort meine xpstyle.xml Datei zu.

    So das sollte ja eigentlich reichen, richtig? Visual Studio hat ja jetzt das die xpstyle.xml Datei als Manifest eingebettet.

    Demnach geh ich jetzt einfach wieder auf Debuggen und hoffe das es Funktioniert.
    Visual Studio blinkt kurz auf und gibt mir keine msg Box aus aber auch keine Fehlermeldung.

    Hier mal ein Auszug aus der Debug Ausgabe:

    "MessageBox.exe": "D:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\debug\MessageBox.exe" geladen, Symbole wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\system32\ntdll.dll" geladen, Exporte wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\system32\kernel32.dll" geladen, Exporte wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\system32\user32.dll" geladen, Exporte wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\system32\gdi32.dll" geladen, Exporte wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcr80d.dll" geladen, Symbole wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\system32\msvcrt.dll" geladen, Exporte wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\system32\imm32.dll" geladen, Exporte wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\system32\advapi32.dll" geladen, Exporte wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\system32\rpcrt4.dll" geladen, Exporte wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\system32\uxtheme.dll" geladen, Exporte wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\system32\MSCTF.dll" geladen, Exporte wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\system32\version.dll" geladen, Exporte wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\system32\version.dll" entladen.
    "MessageBox.exe": "D:\WINDOWS\system32\MSCTFIME.IME" geladen, Exporte wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\system32\ole32.dll" geladen, Exporte wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll" geladen, Exporte wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\system32\shlwapi.dll" geladen, Exporte wurden geladen.
    "MessageBox.exe": "D:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll" entladen.
    "MessageBox.exe": "D:\WINDOWS\system32\shlwapi.dll" entladen.
    Das Programm "[292] MessageBox.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.
    

    Da schein alles ok zu sein oder?

    Hier noch der Inhalt der BuildLog.htm Datei:

    Buildprotokoll

    Erstellen wurde gestartet: Projekt: "MessageBox", Konfiguration: "Debug|Win32"

    Befehlszeilen

    Die temporäre Datei "d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\RSP00000840163936.rsp" wird erstellt. Inhalt:
    [
    /out:".\debug\MessageBox.exe.embed.manifest" /notify_update /manifest ".\xpstyle.xml"

    ".\debug\MessageBox.exe.intermediate.manifest"
    ]Erstellen der Befehlszeile "mt.exe @"d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\RSP00000840163936.rsp" /nologo"Die temporäre Datei "d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\BAT00000940163936.bat" wird erstellt. Inhalt:
    [
    @echo, die Manifestressource wurde zuletzt um %TIME% am %DATE% aktualisiert > ".\debug\mt.dep"
    ]Erstellen der Befehlszeile """d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\BAT00000940163936.bat"""Die temporäre Datei "d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\TMP00000A40163936.tmp" wird erstellt. Inhalt:
    [
    1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID / 24 / RT_MANIFEST */ ".\\Debug\\MessageBox.exe.embed.manifest"
    ]Erstellen der Befehlszeile "rc.exe /fo".\Debug\MessageBox.exe.embed.manifest.res" "d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\TMP00000A40163936.tmp""
    Die temporäre Datei "d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\RSP00000B40163936.rsp" wird erstellt. Inhalt:
    [
    /OUT:"D:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\Debug\MessageBox.exe" /INCREMENTAL /MANIFEST /MANIFESTFILE:"Debug\MessageBox.exe.intermediate.manifest" /DEBUG /PDB:"d:\dokumente und einstellungen\ise3u\eigene dateien\visual studio 2005\projects\messagebox\debug\MessageBox.pdb" /SUBSYSTEM:WINDOWS /MACHINE:X86 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

    ".\debug\MessageBox.obj"

    ".\Debug\MessageBox.exe.embed.manifest.res"
    ]Erstellen der Befehlszeile "link.exe @"d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\RSP00000B40163936.rsp" /NOLOGO /ERRORREPORT:PROMPT"

    Ausgabefenster

    Das Manifest wird eingebettet...

    Ergebnisse

    Das Buildprotokoll wurde unter "file://d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\BuildLog.htm" gespeichert.
    MessageBox - 0 Fehler, 0 Warnung(en)

    @Ascharan: Ich habe auch das probiert, jedoch komme ich da auch nicht zum Erfolg. Habe vom Prinzip alle gängigen Tutorials wie man Xp-Style in sein Projekt einbindet durchgelesen, die es für WinAPI gibt.

    Hoffe einer von euch weiß Rat, den ich bin nämlich mit mein Latein am Ende -.-

    Hier noch zur Information, ich habe mir das SP2 runtergeladen.

    Gruß Funjoy


  • Mod

    Lies doch bitte die Beiträge!
    Du hst InitCommonControls vergessen!



  • Hallo,

    @Martin Richter

    Ich habe mal bei google nach InitCommonControls() gesucht. Ich hatte aber schon mal eine Anleitung mit InitCommonControls() probiert, jedoch funktionierte es nicht. Aber vielleicht habe ich ja was falsch gemacht, jedenfalls bin ich auf folgendes Tutorial gestoßen: Add Windows XP Theme Style to your current projects.

    Dort kann man sich das Beispiel (Projektordner) runterladen, das habe ich gemacht und dann einfach in Visual Studio Debugt, jedoch bekomm ich eine Fehlermeldung die ich nicht nachvollziehen kann 😞

    1>------ Erstellen gestartet: Projekt: Test, Konfiguration: Debug Win32 ------
    1>Verknüpfen...
    1>CVTRES : fatal error CVT1100: Doppelte Ressource. type:MANIFEST, name:1, language:0x0409.
    1>LINK : fatal error LNK1123: Fehler bei der Konvertierung in COFF: Datei ist ungültig oder beschädigt.
    1>Das Buildprotokoll wurde unter "file://d:\Dokumente und Einstellungen\iSe3U\Desktop\XPTheme\Test\Debug\BuildLog.htm" gespeichert.
    1>Test - 2 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    

    Er sagt das eine Doppelte Ressource Datei vorhanden sei jedoch seh ich nur eine 😕

    Weiß hier einer bescheid? Achtung ich bin noch kein WinAPI freak, also idiotensichere Anleitungen zur Fehlerbehebung 😃

    Hier falls es hilft noch die BuildLog.htm Datei:

    Buildprotokoll Erstellen wurde gestartet: Projekt: "Test", Konfiguration: "Debug|Win32"
    Befehlszeilen Die temporäre Datei "d:\Dokumente und Einstellungen\iSe3U\Desktop\XPTheme\Test\Debug\RSP00000121123844.rsp" wird erstellt. Inhalt:
    [
    /OUT:".\Debug/Test.exe" /INCREMENTAL /MANIFEST /MANIFESTFILE:".\Debug\Test.exe.intermediate.manifest" /DEBUG /PDB:".\Debug/Test.pdb" /SUBSYSTEM:WINDOWS /MACHINE:X86 odbc32.lib odbccp32.lib comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

    ".\Debug\resource.res"

    ".\Debug\StdAfx.obj"

    ".\Debug\Test.obj"

    ".\Debug\Test.exe.embed.manifest.res"
    ]Erstellen der Befehlszeile "link.exe @"d:\Dokumente und Einstellungen\iSe3U\Desktop\XPTheme\Test\Debug\RSP00000121123844.rsp" /NOLOGO /ERRORREPORT:PROMPT" Ausgabefenster Verknüpfen...
    CVTRES : fatal error CVT1100: Doppelte Ressource. type:MANIFEST, name:1, language:0x0409.
    LINK : fatal error LNK1123: Fehler bei der Konvertierung in COFF: Datei ist ungültig oder beschädigt.
    Ergebnisse Das Buildprotokoll wurde unter "file://d:\Dokumente und Einstellungen\iSe3U\Desktop\XPTheme\Test\Debug\BuildLog.htm" gespeichert.
    Test - 2 Fehler, 0 Warnung(en)

    Gruß Funjoy



  • weis garnet was du hast

    Ressourcen werden kompiliert...
    Kompilierung läuft...
    StdAfx.cpp
    Kompilierung läuft...
    Test.cpp
    Linker-Vorgang läuft...
    
    Test.exe - 0 Fehler, 0 Warnung(en)
    

    😃



  • @Ascharan

    Ja mich wundert das auch bei allen anderen die ich kenne Funktioniert es aber bei mir nicht -.-

    Gruß Funjoy



  • probier mal das !

    [cpp]
    #include <windows.h> 
    #include <commctrl.h> 
    
    #pragma comment(lib,"Comctl32.lib") 
    
    #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
    
    LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam );
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
                       PSTR szCmdLine, int iCmdShow) 
    { 
    	InitCommonControls();
        MessageBox (NULL, TEXT("Hello, WinAPI!"), TEXT("HelloMsg"), 
                    MB_OK | MB_ICONQUESTION | MB_HELP); 
        return 0; 
    }
    
    LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
    {
    	switch( message )
    	{
    		case WM_COMMAND:
    			break;
    		case WM_CLOSE: // Beenden der Anwendung
    			PostQuitMessage(0);
    			break;
    		case WM_DESTROY: // Fenster Zerstoeren
    			PostQuitMessage(0);
    			break;
    		default: 
    			break;
    	}
        return FALSE;
    }[/cpp]
    


  • Hallo,

    @Ascharan
    Tausend Dank es hat geklappt 👍

    Interesse halber, warum klappt es bei manchen leuten einfach mit den Zeilen

    #ifdef _UNICODE
    #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
    #endif
    

    Gruß Funjoy



  • Ka.
    mit #ifdef _UNICODE hats bei mir auch net geklappt

    vieleicht kennt jochen ne antwort der kennt sich mit unicode Progs aus



  • Ascharan schrieb:

    Ka.
    mit #ifdef _UNICODE hats bei mir auch net geklappt

    Ich bin zwar nicht jochen, aber damit die Anweisungen vom Präprozessor dann auch abgearbeitet (und implementiert) werden, muss natürlich vorher auch ein

    #define _UNICODE
    

    rein.

    Und wenn das Prog schon Unicode unterstützen soll, noch zusätzlich

    #define UNICODE
    


  • nur funktioniert der code ja nich wie er ihn verwendete



  • Wenn er zuerst auch nicht gegen die comctl32.lib gelinkt hat und auch keinen Funktionsaufruf InitCommonControls verwendet hat wird das ganze auch nicht funktionieren.



  • Hallo,

    @Analog Bit

    Bei einen Freund funktioniert es nur mit den Zeilen:

    #ifdef _UNICODE
    #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
    #endif
    

    Ohne das er irgend wo:

    #include <commctrl.h>
    
    #pragma comment(lib,"Comctl32.lib")
    ...
    InitCommonControls(); 
    ...
    

    Defeniert ist! Das ist ja das was mich verwundert. Warum ist das bei Ihm so einfach und bei mir etwas komplizierter?!

    Gruß Funjoy


  • Mod

    Das geht bei mir genauso. Alerdings muss Dein Projektein UNICODE Projekt sein. das machen die äußeren ifdef's!



  • Hallo

    Also ich bin der Freund/Kumpel.

    Wir haben beide zum gleichen Zeitpunkt VC 2005 Exp. Edition installiert mit SP1 und PDSK.
    Keiner hat was an die Einstellungen geändert. Bei mir funktioniert der Code anstandslos bei ihn nicht. Komisch 🙂

    Naja jetzt funz es ja.

    BTW: Tolles Forum 👍



  • Ich habe es bei mir auch probiert, allerdings ohne VC, dafür mit [guck unten in die sigi^^]. Einmal habe ich es mit der resourcen-variante probiert, und dann mit den InitCommonControls ()-blabla. Es hat beides nicht geklappt. Liegt das daran, dass ich kein VC benutze oder woran liegt das?

    Mfg Ominion



  • Der Compiler spielt keine Rolle. Das OS schaut ja nicht, mit welchem Compiler was erstellt wurde.
    Du musst nur das Manifest einbetten (ist nicht zwigend nötig, geht auch mit externem Manifest) und die passende Resource-Typ/ID vergeben.



  • na gut, dann probiere ich das nochmal...mal sehen, aber erstmal danke 🙂

    Mfg Ominion



  • funktioniert auch nicht...hier mal der code:

    main.cpp

    #include <windows.h>
    #include <commctrl.h>
    
    #pragma comment (lib, "libs/cw32mt.lib")
    #pragma comment (lib, "libs/comctl32.lib")
    
    #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 "header/resource.h"
    
    HWND hMain;
    
    HINSTANCE g_hInst;
    LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
    
    int WINAPI WinMain (HINSTANCE hI, HINSTANCE hPrI, LPSTR szCmdLine, int iCmdShow)
    {
        InitCommonControls();
    
    	char MainWin[] = "Hauptfenster";
    
    	UNREFERENCED_PARAMETER (hPrI);
    	UNREFERENCED_PARAMETER (szCmdLine);
    
    	g_hInst = hI;
    	WNDCLASS wc;
    
    	wc.style = CS_HREDRAW | CS_VREDRAW;
    	wc.lpfnWndProc = WndProc;
    	wc.cbClsExtra = 0;
    	wc.cbWndExtra = 0;
    	wc.hInstance = hI;
    	wc.hIcon = LoadIcon (hI, MAKEINTRESOURCE (MAIN_ICON));
    	wc.hCursor = LoadCursor (NULL, IDC_ARROW);
    	wc.hbrBackground = (HBRUSH) (COLOR_BTNFACE + 1);
    	wc.lpszMenuName = NULL;
    	wc.lpszClassName = MainWin;
    
    	RegisterClass (&wc);
    
    	int x = 410;
    	x += GetSystemMetrics (SM_CXDLGFRAME) * 2;	 //Breite des Rahmens * 2 (Links/Rechts)
    
    	int y = 250;
    	y += GetSystemMetrics (SM_CYCAPTION);		  //Höhe der Titelleiste
    	//y += GetSystemMetrics (SM_CYMENU);			//Höhe der Menu-Bar
    	y += GetSystemMetrics (SM_CYDLGFRAME) * 2;	 //Höhe des Rahmens * 2 (Oben/Unten)
    
    	int xPos = (GetSystemMetrics (SM_CXSCREEN) / 2) - (x / 2);
    	int yPos = (GetSystemMetrics (SM_CYSCREEN) / 2) - (y / 2);
    
    	hMain = CreateWindow (MainWin, "testfenster", WS_OVERLAPPEDWINDOW, xPos, yPos, x, y, NULL, NULL, hI, NULL);
    	ShowWindow (hMain, iCmdShow);
    	UpdateWindow (hMain);
    
    	MSG msg;
    	while (GetMessage (&msg, NULL, 0, 0))
    	{
    		TranslateMessage (&msg);
    		DispatchMessage (&msg);
    	}
    	return msg.wParam;
    }
    
    LRESULT CALLBACK WndProc (HWND hMain, UINT message, WPARAM wParam, LPARAM lParam)
    {
    	PAINTSTRUCT ps;
    	HDC hDC;
    	HWND hBtn;
    
    	switch (message)
    	{
    		case WM_CREATE:
                hBtn = CreateWindow ("Button", "XP-STYLE", WS_CHILD | WS_VISIBLE, 5, 5, 123, 50, hMain, 0, g_hInst, NULL);
    		return 0;
    
            ...
    
    	}
    
    	return DefWindowProc (hMain, message, wParam, lParam);
    }
    

    res.rc

    #include "header/resource.h"
    
    MAIN_ICON ICON DISCARDABLE "images/icon.ico"
    
    ACCS ACCELERATORS DISCARDABLE
    BEGIN
        VK_ESCAPE,		ID_ACCEXIT		VIRTKEY,	NOINVERT
    END
    
    IDR_XPSTYLE            24      DISCARDABLE     "winxpstyle.bin"
    

    resource.h

    #define MAIN_ICON						100
    
    #define IDR_XPSTYLE                     101
    
    #define ID_ACCEXIT						2001
    

    hoffe es kann jemand helfen

    Mfg Ominion



  • Das
    #pragma comment(linker,"/manifestdependency: ....
    versteht nur der MS Compiler!
    Verwende das XML-Manifest und binde es als Resource ein!


Anmelden zum Antworten