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