vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Windows/System13.07.01
PickIconDlg-Funktion

Diese Funktion ruft einen Dialog zum Auswählen eines Icons auf.

Betriebssystem:  Win95, Win98, WinNT 3.1, Win2000, WinMEViews:  8.426 

Deklaration:

Declare Function PickIconDlg Lib "shell32.dll" _
  Alias "#62" ( _
  ByVal hwndOwner As Long, _
  ByVal lpstrFile As String, _
  ByVal nMaxFile As Long, _
  lpdwIconIndex As Long) As Long

Beschreibung:
Diese Funktion ruft einen Dialog zum Auswählen eines Icons auf.

Parameter:
hwndOwnerFenster-Handle der aufrufenden Anwendung (Fensters).
lpstrFilePuffer, der den Pfadnamen der Icon-Datei angibt. Der String sollte mit einem "vbNullChar"-Zeichen beendet sein. Desweiteren sollte der Puffer genügend Leerstellen nach dem vbNullChar-Zeichen aufweisen, da ein Wechsel der Icon-Datei stattfinden kann und der neue Pfadname dann evtl. länger ist als der reservierte Puffer.
nMaxFileGibt die Länge des Puffers in Bytes an.
lpdwIconIndexIndex des Icons, welches zu Beginn selektiert sein soll. Wird ein Icon ausgewählt, so enthält lpdwIconIndex dann den Index des gewählten Icons.

Rückgabewert:
War der Funktionsaufruf erfolgreich, so wird ein Wert "ungleich 0" zurückgegeben, andernfalls idt der Rückgabewert "0" (dies auch der Fall, wenn z.B. im Dialog auf Abbrechen gedrückt wird).


Beispiel:

Private Declare Function PickIconDlg Lib "shell32.dll" _
  Alias "#62" ( _
  ByVal hwndOwner As Long, _
  ByVal lpstrFile As String, _
  ByVal nMaxFile As Long, _
  lpdwIconIndex As Long) As Long
 
Private Declare Function ExtractIcon Lib "shell32.dll" _
  Alias "ExtractIconA" ( _
  ByVal hInst As Long, _
  ByVal lpszExeFileName As String, _
  ByVal nIconIndex As Long) As Long
 
Private Declare Function DrawIcon Lib "user32" ( _
  ByVal hdc As Long, _
  ByVal x As Long, _
  ByVal y As Long, _
  ByVal hIcon As Long) As Long
 
Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long
' Icon per Dialog wählen und in ein Bildfeld übertragen
Private Sub Command1_Click()
  Dim hIco As Long, TmpIndex As Long, RetVal As Long, TmpIconFile As String * 256
 
  ' Icon-Dialog aufrufen.
  ' Achtung!!! Unter Windows NT vorher in Unicode Konvertieren
  TmpIconFile = "c:\windows\system\pifmgr.dll" & vbNullChar
  RetVal = PickIconDlg(Me.hWnd, TmpIconFile, Len(TmpIconFile), TmpIndex)
  If RetVal = 0 Then
    MsgBox "Sie haben kein Icon gewählt", vbOKOnly + vbInformation, _
      "Abbrechen" 
    Exit Sub
  End If
 
  ' Extrahieren und Zeichnen
  hIcon = ExtractIcon(App.hInstance, Left$(TmpIconFile, InStr(1, _
    TmpIconFile, vbNullChar) - 1), TmpIndex)
 
  Picture1.Cls
  DrawIcon Picture1.hdc, 0, 0, hIcon
  Picture1.Refresh
 
  DestroyIcon hIcon
End Sub

 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.