ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 04.12.2001

Diese Seite wurde zuletzt aktualisiert am 04.12.2001
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Ressourcen-Wilderer

Zurück...


Anzeige

(-hg) mailto:hg_loadresbitmap@aboutvb.de

Mit der Visual Basic-Funktion LoadResPicture können Sie Bitmaps aus den Ressourcen Ihrer Anwendung ins Programm laden. Andere Anwendungen, allgemeiner gesagt, andere ausführbare Dateien (EXE, DLL, OCX usw.) bleiben jedoch tabu. Doch mit Hilfe von API-Funktionen können Sie dieses Tabu brechen.

Die ausführbare Datei, deren Ressourcen Sie laden möchten, wird zunächst mit der API-Funktion LoadLibrary als Bibliothek aktiviert. Dann laden Sie die gewünschte Bitmap-Ressource mittels der API-Funktion LoadBitmap unter Angabe ihrer ID-Nummer oder eines Ressourcen-Namens. Nun können sie die Bibliothek wieder deaktivieren, mit der API-Funktion FreeLibrary. Mit dem Bitmap-Handle, das Ihnen die Funktion LoadBitmap geliefert hat, können Sie jedoch noch nicht viel anfangen. Ein Modul, in dem Sie alles finden, um aus dem Handle ein in VB problemlos zu verwendendes Picture-Objekt zu machen, finden Sie unter "Vom Handle zum Picture"khwpicturefromhandle.htm.

Die Hilfsfunktion LoadResBitmapByID (Ressource wird über eine ID angegeben) und LoadResBitmapByName fassen die notwendigen Aufrufe zusammen. Im jeweils letzten, optionalen Parameter können Sie angeben, ob ein Laufzeitfehler ausgelöst werden soll, wenn die ausführbare Datei oder die Ressource nicht geladen werden konnten. Im Erfolgsfalle geben die Funktionen direkt ein Picture-Objekt zurück.

Private Declare Function LoadBitmapID Lib "user32" _
 Alias "LoadBitmapA" (ByVal hInstance As Long, _
 ByVal lpBitmapID As Long) As Long
Private Declare Function LoadBitmapStr Lib "user32" _
 Alias "LoadBitmapA" (ByVal hInstance As Long, _
 ByVal lpBitmapName As String) As Long
Private Declare Function LoadLibrary Lib "kernel32" _
 Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function FreeLibrary Lib "kernel32" _
 (ByVal hLibModule As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" _
 (ByVal hObject As Long) As Long

Public Enum LoadResBitmapErrorConstants
  lrbErrCannotLoadLibrary = 30000
  lrbErrCannotLoadBitmap = 30001
End Enum

Public Function LoadResBitmapByID(File As String, _
 ByVal ResID As Long, _
 Optional ByVal RaiseErr As Boolean = True) As StdPicture

  Dim nHInst As Long
  Dim nHBmp As Long
  Dim nPic As StdPicture
  
  nHInst = LoadLibrary(File)
  If nHInst Then
    nHBmp = LoadBitmapID(nHInst, ResID)
    If nHBmp Then
      Set nPic = PictureFromHandle(nHBmp, vbPicTypeBitmap, True)
      If nPic Is Nothing Then
        DeleteObject nHBmp
      Else
        Set LoadResBitmapByID = nPic
      End If
    Else
      If RaiseErr Then
        Err.Raise lrbErrCannotLoadBitmap, _
         "modLoadResBitmap.LoadResBitmapByID"
      End If
    End If
  Else
    If RaiseErr Then
      Err.Raise lrbErrCannotLoadLibrary, _
       "modLoadResBitmap.LoadResBitmapByID"
    End If
  End If
End Function

Public Function LoadResBitmapByName(File As String, _
 ResName As String, _
 Optional ByVal RaiseErr As Boolean = True) As StdPicture
  Dim nHInst As Long
  Dim nHBmp As Long
  Dim nPic As StdPicture
  
  nHInst = LoadLibrary(File)
  If nHInst Then
    nHBmp = LoadBitmapStr(nHInst, ResName)
    If nHBmp Then
      Set nPic = PictureFromHandle(nHBmp, vbPicTypeBitmap, True)
      If nPic Is Nothing Then
        DeleteObject nHBmp
      Else
        Set LoadResBitmapByName = nPic
      End If
    Else
      If RaiseErr Then
        Err.Raise lrbErrCannotLoadBitmap, _
         "modLoadResBitmap.LoadResBitmapByName"
      End If
    End If
  Else
    If RaiseErr Then
      Err.Raise lrbErrCannotLoadLibrary, _
       "modLoadResBitmap.LoadResBitmapByName"
    End If
  End If
End Function

Module modLoadResBitmap und modPictureFromHandle (loadresbitmap.zip - ca. 1,7 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche




Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer