vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Windows API
Re: StretchBLT aufrufen 
Autor: Rippler
Datum: 17.02.10 23:23

vielleicht hilft dir das hier weiter
command1, picture1 picture2

Private Declare Function StretchBlt Lib "gdi32" ( _
ByVal hdc As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal hSrcDC As Long, _
ByVal xSrc As Long, _
ByVal ySrc As Long, _
ByVal nSrcWidth As Long, _
ByVal nSrcHeight As Long, _
ByVal dwRop As Long) As Long

Const SRCCOPY = &HCC0020

Private Sub Command1_Click()
Dim hdc As Long
Dim nWidth As Long
Dim nHeight As Long
Dim hSrcDC As Long
Dim nSrcWidth As Long
Dim nSrcHeight As Long

nSrcWidth = Picture2.Width / Screen.TwipsPerPixelX
nSrcHeight = Picture2.Height / Screen.TwipsPerPixelY

nWidth = nSrcWidth * 2
nHeight = nSrcHeight * 2

hSrcDC = Picture1.hdc
hdc = Picture2.hdc

StretchBlt hdc, 0, 0, nWidth, nHeight, hSrcDC, 0, 0, nSrcWidth, nSrcHeight, SRCCOPY

End Sub
 
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

StretchBLT aufrufen 
Autor: NorbertM
Datum: 17.02.10 19:38

Hallo,

seit drei Tagen versuche ich irgendwie das ganz Thema Handle etc zu verstehen und offen gestanden: Es gibt 100 Seiten zu VB aber nix gscheites zu VBA

Ich will ein Bild mit VBA in Excel gemacht aus einem Scrennshot vom Bildschirm in eine Picture-Box laden, dann mit der maus ein Rechteck wählen und den Ausschnitt bestimmen und dann beschneiden und ggf. nochmals zeigen und final sichern.

Ich kann schon einen Scrennshot machen, anzeigen, den Ausschnitt bestimmen und die Koordinaten festlegen. Ich kann die StretchBLT schin declaren, den Code übersetzen, aber er tut nicht:
Denn ich muss ich das nur noch irgendwie an diese nette StretchBlt übergeben:

Was ich habe ist:
UserForm1.Image1.picture = loadpicture("d:\file.bmp") ' oder anders hergestellt per Screenshot
UserForm2.Image2.picture ' ist momentan noch leer und soll mit dem Ausschnitt mal befüllt werden.
Const vbSrcCopy = 13369376
x,y,w,h sind vier Long variablen mit den
Beschneidungsparamtern (in Prozent zum Orginalbild), dessen Größe ich kenne, kann das also auf die exakten Pixel des orginalbildes umrechnen.

und jetzt?

hdctarget= ????
hdcSource = UserForm1.image1.picture (???)

StretchBlt hdctarget, x, y, w, h, hdcSource, x, y, w, h, vbSrcCopy

Kann mir einer erklären, was ich da als Übergabeparameter aufrufen muss?

Ich danke uim Voraus für erklärende Worte
oder Links wo man sowas Verständlich erklärt bekommt.

Norbert
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: StretchBLT aufrufen 
Autor: Zardoz
Datum: 18.02.10 15:02

Hallo Norbert,
das geht über CreateCompatibleDC.

Gruss,

Zardoz

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle 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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel