VB-Homepage Tipp 275

Konturabbild (Disabled Ansicht) einer beliebigen Grafik erstellen

Die API Welt ist unerschöpflich und immer wieder stoße ich auf Sachen,
bei denen ich von der Geschwindigkeit der Abarbeitung überrascht bin,
so auch geschehen, bei nachfolgendem Tipp,
in dem eine beliebige Grafik als Quelle genutzt wird und von der
ein Abbild erstellt wird, daß Sie sich wie bei einem Objekt, bei
gesetzter Disabled Eigenschaft vorstellen können.

Für einen Test benötigen Sie ein neues Projekt mit einer Form.

Platzieren Sie zwei Pictureboxen (Picture1 ; Picture2) und einen Commandbutton (Command1) auf der Form und geben folgende Anweisungen ein.

Allgemein/Deklarationen
Private Declare Function DrawState Lib "user32" Alias "DrawStateA" (ByVal hDC As Long, ByVal hBrush As Long, ByVal lpDrawStateProc As Long, ByVal lParam As Long, ByVal wParam As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal n3 As Long, ByVal n4 As Long, ByVal un As Long) As Long
Private Const DST_ICON = &H3
Private Const DST_BITMAP = &H4
Private Const DSS_DISABLED = &H20
Private Const DSS_NORMAL = &H0

Command1_Click
Call DrawState(Picture2.hDC, 0, 0, Picture1.Picture, 0, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, DST_BITMAP Or DSS_DISABLED)
Picture1.Refresh

Nun müssen Sie Ihrem Picture1 nur noch eine Grafik zuweisen (je einfacher um so besser wird das Ergebnis) und können Ihr Projekt starten.

Es läßt sich dies auch mit einem Icon (*.ico) vollführen, dazu müßten Sie lediglich die Anweisung DST_ICON statt DST_BITMAP lauten. Wollen sie ein genaues Abbild erzeugen, dann geht dies auch mit der Anweisung DSS_NORMAL statt DSS_DISABLED, aber das ist ja auch anderweitig möglich.

Tipp-Download

Quelle :

Zurück zur Übersichtsseite