Symbolressourcen gemeinsam nutzen

Der folgende Code verwendet die Funktionen CreateIconFromResourceEx, DrawIconund LookupIconIdFromDirectoryEx, und mehrere der Ressource Funktionen, um einen Icon-Handle erstellen auf der Grundlage von Icon-Daten aus einer anderen ausführbaren Datei. Dann erscheint das Symbol in einem Fenster.

HICON hIcon1;       / / Symbol handle HINSTANCE hExe;     / / handle zu geladen.EXE-Datei HRSRC hResource;    / / handle für FindResource HRSRC hMem;         / / handle für LoadResource BYTE * LpResource;   / / Adresse der Ressource Daten Int nID;            / / ID der Ressource, die am besten aktuelle screen HDC Hdc;        / / handle anzuzeigenden Kontext / / laden Sie die Datei aus, um das Symbol zu kopieren. 
 
hExe = LoadLibrary("myapp.exe"); 
 
/ / Verzeichnis Symbol dessen Bezeichner 440 ist finden. 
 
hResource = FindResource (hExe, MAKEINTRESOURCE(440), RT_GROUP_ICON); 
 
/ / Laden und verriegeln Sie das Symbol-Verzeichnis. 
 
hMem = LoadResource (hExe, hResource); 
 
LpResource = LockResource(hMem); 
 
/ / Get den Bezeichner für das Symbol, das am besten geeignet ist / / für die Videoanzeige. 
 
nID = LookupIconIdFromDirectoryEx((PBYTE) LpResource, TRUE, CXICON, CYICON, LR_DEFAULTCOLOR); 
 
/ / Finden Sie die Bits für die nID-Symbol. 
 
hResource = FindResource (hExe, MAKEINTRESOURCE(nID), MAKEINTRESOURCE(RT_ICON)); 
 
/ / Laden und verriegeln Sie das Symbol. 
 
hMem = LoadResource (hExe, hResource); 
 
LpResource = LockResource(hMem); 
 
/ / Erstellt einen Handle für das Symbol. 
 
hIcon1 = CreateIconFromResourceEx((PBYTE) LpResource, SizeofResource (hExe, hResource), TRUE, 0x00030000, CXICON, CYICON, LR_DEFAULTCOLOR); 
 
/ / Zeichnen Sie das Symbol im Client-Bereich. 
 
DrawIcon (Hdc, 10, 20, hIcon1) 

 

Index