2017-04-16 2 views
-1

ich an einem Projekt arbeite, in dem ich die Farben von Internet-Websites nehmen, Logo usw.auf ein Objekt gegeben

Gibt es eine Möglichkeit, den RGB-Wert der erhalten Farbe wohin ich zeige? Oder gibt es irgendeine Möglichkeit, wie ich die RGB-Werte eines farbigen Objekts als Text erhalten kann, damit ich auch anderen Objekten das gleiche geben kann?

Antwort

0

Sie müssen dazu die WinAPI-Funktionen aufrufen.

Hier ein Beispiel: http://www.codeguru.com/vb/gen/vb_graphics/article.php/c2357/A-method-to-get-the-pixel-color-under-the-mouse-pointer.htm

ich es vereinfacht habe/angepasst es. Es wird die Farbe der aktuell gewählten Form an die Farbe des Pixels unter dem Cursor gesetzt:

Option Explicit 

Private Type POINTAPI 
    x As Long 
    y As Long 
End Type 
' 
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, _ 
    ByVal x As Long, ByVal y As Long) As Long 
Private Declare Function GetCursorPos Lib "user32" _ 
     (lpPoint As POINTAPI) As Long 
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) _ 
     As Long 

Sub Test() 
    Dim tPOS As POINTAPI 
    Dim sTmp As String 
    Dim lColor As Long 
    Dim lDC As Long 

    lDC = GetWindowDC(0) 
    Call GetCursorPos(tPOS) 
    lColor = GetPixel(lDC, tPOS.x, tPOS.y) 

    sTmp = Right$("000000" & Hex(lColor), 6) 

    ActiveWindow.Selection.ShapeRange(1).Fill.ForeColor.RGB = lColor 

End Sub 
+0

Gibt es eine Möglichkeit, die RGB-Werte auch in diesem gefüllten Objekt oder ein anderen Makrocode RGB-Werte erhalten können zu erhalten des ausgewählten Objekts darin –

+0

Wenn die ausgewählte Form ausgefüllt ist, gibt Ihnen ActiveWindow.Selection.Shaperange (1) .Fill.Forecolor.RGB den RGB-Wert der Füllung. Wenn die Form ein Bild/Muster/Farbverlauf oder eine andere Füllung hat, müssen Sie zu etwas wie dem oben genannten greifen. –

Verwandte Themen