Resource Editor Liste / Mit Resourcen Arbeiten



  • Resource - Editor Liste / Mit Resourcen Arbeiten

    Wer mit dem VC++ arbeitet hat bereits einen Resource Editor dabei, für andere Compiler
    kann man sich einen Freeware Res Editor zulegen, einige gute haben wir hier in einer
    Liste zusammengestellt.

    [b]*[/b] WeditRes             - Download/Homepage - Win-System:alle     - Compiler:alle** 
       [b]*[/b] Resource Hacker      - Download/Homepage - Win-System:alle     - Compiler:alle**
       [b]*[/b] PE Resource Explorer - Download/Homepage - Win-System:98,2K,XP - Compiler:alle**
       [b]*[/b] ResEdit              - Download/Homepage - Win-System:98se,me  - Compiler:alle**
       [b]*[/b] Resource Builder     - Download/Homepage - Win-System:alle??   - Compiler:alle**
    

    ** Gegebenfalls müßen die .rc Dateien etwas angepasst werden,
    aber sonst dürften diese mit jedem Compiler laufen.

    Resource per Hand erstellen

    Auch das ist möglich, und die MSDN hällt Informationen dazu bereit: Dialog Resource

    Möchte man nur Icon und ein Menu seinem Projekt zufügen, kann man das auch ebend selbst per Hand schreiben,
    falls das Menu nicht zu Umfangreich wird:

    resource.h Headerdatei der Resource

    #define ID_MYICON 123
    #define IDM_MENU 101
    #define IDM_NEU 102
    #define IDM_LADEN 103
    #define IDM_SPEICHERN 104
    #define IDM_SPEICHERNALS 105
    #define IDM_BEENDEN 106
    #define IDM_KOPIEREN 107
    #define IDM_AUSSCHNEIDEN 108
    #define IDM_EINFUEGEN 109
    

    resource.rc Resourcedatei

    #include <windows.h>
    #include "resource.h"
    
    ID_MYICON    ICON  "mein-icon.ico"
    
    IDM_MENU MENU 
    BEGIN
    	POPUP "&Datei" 
    	BEGIN
    		MENUITEM "&Neu", IDM_NEU
    		MENUITEM "&Laden", IDM_LADEN
    		MENUITEM "&Speichern", IDM_SPEICHERN
    		MENUITEM "Speichern &als", IDM_SPEICHERNALS
    		MENUITEM SEPARATOR
    		MENUITEM "&Beenden", IDM_BEENDEN
    	END
    
    	POPUP "&Bearbeiten"
    	BEGIN
    		MENUITEM "&Kopieren", IDM_KOPIEREN
    		MENUITEM "&Ausschneiden", IDM_AUSSCHNEIDEN
    		MENUITEM "&Einfügen", IDM_EINFUEGEN
    	END
    END
    

    Eine Erklärung erübrigt sich, den das Schema ist offensichtlich!

    Wie benutzt man nun diese Resourcen

    Der Resource Editor erstellt eine *.rc und *.h Datei, sollte keine *.h Datei erstellt werden,
    sondern die "#define ..." mit in der *.rc Datei sitzen, so muß man diese Ausschneiden und selbst
    eine *.h Datei erstellen.
    Wird die Resource per Hand erstellt, so legt ihr jene Dateien mit einem Texteditor oder der IDE
    selbst an.
    Die Resource-Headerdatei "resource.h" muß sowohl in der *.rc Datei included werden, wie auch in
    der main.cpp, also im Programmcode selbst.
    Die *.rc Datei muß dem Projekt als Resource zugefügt werden und über die Projekt-Optionen sollte
    sichergestellt werden das diese auch in die Kompilation einbezogen ist.

    Mit LoadIcon(hInstance, MAKEINTRESOURCE(ID_MYICON) kann das Icon geladen werden, und
    mit LoadMenu(hInstance, MAKEINTRESOURCE(IDM_MENU) kann das Menu geladen werden.

    Hat man mit einem ResEditor (oder per Hand) eine Dialog Resource erstellt, kann diese mit z.B.:
    CreateDialog(hInstance, MAKEINTRESOURCE(ID_DIALOG), hwnd, DialogProc) erstellt werden für einen
    "Nicht-Modalen" Dialog, wobei ID_DIALOG das #define des Dialog sein sollte.
    Ebenso kann man für einen modalen Dialog folgendes verwenden:

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
                       LPSTR lpCmdLine, int nCmdShow)
    {
       return DialogBox (hInstance, MAKEINTRESOURCE(ID_DIALOG), NULL, DialogProc);
    }
    

    MSDN: DialogBox

    Somit dürfte das Thema "Resource" für Icons, Menus und Dialoge unter einem Hut sein und reif für die FAQ.
    Die nachfolgenden Postings geben die Links wieder, welche sich oben in der Liste befinden, vielen Dank an
    alle für eure Unterstützung.

    gruß MiC++ha


Anmelden zum Antworten