掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
画面の色を取得するには? (ID:90538)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
上のレスだけでは簡単すぎて、実現するのは難しいかな。。 Option Explicit Private Type Point x As Long y As Long End Type Private Declare Function GetDC Lib "user32" (ByVal hWnd As _ Long) As Long Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As _ Long, ByVal hdc As Long) As Long Private Declare Function GetCursorPos Lib "user32" _ (lpPoint As Point) As Long Private Declare Function SetCapture Lib "user32" _ (ByVal hWnd As Long) As Long Private Declare Function ReleaseCapture Lib "user32" () _ As Long Private Declare Function GetPixel Lib "gdi32" (ByVal _ hdc As Long, ByVal x As Long, ByVal y As Long) As Long Dim p As Point Dim ScreenhDC Private Declare Function SetWindowPos Lib "user32" _ (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, _ ByVal x As Long, ByVal y As Long, ByVal cx As Long, _ ByVal cy As Long, ByVal wFlags As Long) As Long Private Sub Command1_Click() ScreenhDC = GetDC(0&) SetCapture Me.hWnd Command1.Caption = "画面の知りたい色をクリックしてね" End Sub Private Sub Form_Load() Move 2000, 2000, 4000, 1000 Command1.Move 0, 0, Me.Width - 100, 600 Command1.Caption = "押してね" End Sub Private Sub Form_Unload(Cancel As Integer) ReleaseDC 0&, ScreenhDC 'キャプチャの解放 ReleaseCapture End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) On Error Resume Next Dim pc As Long Dim r As Long, g As Long, b As Long GetCursorPos p pc = GetPixel(ScreenhDC, p.x, p.y) r = CByte(pc And &HFF&) '3バイト目 g = CByte((pc \ &H100&) And &HFF&) '2バイト目 b = CByte((pc \ &H10000) And &HFF&) '1バイト目 Command1.Caption = "RGB=(" & CStr(r) & "," & CStr(g) & "," & CStr(b) & ")" & vbCrLf & _ "次の色を知りたければ押してね" ReleaseDC 0&, ScreenhDC ReleaseCapture DoEvents End Sub ここに貼り付けるために、思い切り簡単にしてます。 今日はここまでで帰るかな。。。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.