VBA: Hdc atrašana Excel darblapā vai UserForm

Šeit ir divi nelieli piemēri par to, kā atrast Hdc darblapā:

  • Noklikšķinot uz Sheet1, tiek parādīts UserForm.
  • Novietojiet rādītāju uz UF, turiet kreiso peles pogu uz leju un velciet peli.
  • Aizverot UF apakšgrupu turpinās un uzlīmē loku uz loksnes.

Darba sākšana

  • Jauna darbgrāmata
  • Pievienojiet UserForm nosaukumu = UserForm1

Ielīmējiet šādu kodu 1. lapā:

 Privāta deklarēt funkciju Arc Lib "gdi32" (ByVal hdc kā garš, ByVal X1 kā garš, ByVal Y1 kā garš, ByVal X2 kā garš, ByVal Y2 kā garš,

ByVal X3 tik garš, ByVal Y3 kā garš, ByVal X4 kā garš, ByVal Y4 tik garš) kā garš

Privātās deklarēšanas funkcija ArcTo Lib "gdi32" (ByVal hdc kā garš, ByVal X1 kā garš, ByVal Y1 kā garš, ByVal X2 kā garš, ByVal Y2 kā garš,

ByVal X3 tik garš, ByVal Y3 kā garš, ByVal X4 kā garš, ByVal Y4 tik garš) kā garš

Privātās apakšlapas darblapas_izvēles mainīšana (ByVal Target As Range)

Dim B kā garš

"aktivizēt UC un izmantot to (atrast savu HDC)

UserForm1.Show

'Jūsu HDC meklēšana Excel darblapā

monhdc = 0

Dariet, lai gan myhdc = 0

myhdc = GetForegroundWindow ()

B = myhdc

myhdc = GetDC (myhdc)

Loop

'Uzzīmējiet tieši darblapā

B = Arc (myhdc, 120, 500, 320, 400, 320, 400, 780, 500)

Beigt Sub

Lietotāja formāta modulī

Ielīmējiet šādu kodu:

 Privāts veids POINTAPI

X Tik ilgi

Y As Long

Beigas tips

Private Declare Funkcija DeleteObject Lib "gdi32" (ByVal hObject As Long) Tik ilgi

Privātās deklarēšanas funkcija SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject kā garš)

Privāta deklarēšana Funkcija GetForegroundWindow Lib "user32" () Tik ilgi

Privātās deklarēšanas funkcija CreatePen Lib "gdi32" (ByVal nPenStyle kā garš, ByVal nWidth As Long, ByVal crColor As Long) kā garš

Private Declare Function LineTo Lib "gdi32" (ByVal hdc kā garš, ByVal X kā garš, ByVal Y kā garš) kā garš

Privātās deklarēšanas funkcija MoveToEx Lib "gdi32" (ByVal hdc As Long, _

ByVal X kā garš, ByVal Y kā garš, lpPoint kā jebkurš) kā garš

Privāta deklarēšana Funkcija GetDC Lib "user32" (ByVal hwnd As Long) Tik ilgi

Private Declare Funkcija SetPixelV Lib "gdi32" (ByVal hdc kā garš, ByVal X kā garš, ByVal Y kā garš, ByVal crColor As Long) kā baits

Privāts mondc kā garš

Dim Buff kā Būla

Privāts sub UserForm_MouseDown (ByVal poga kā pilnīgs, ByVal Shift kā pilnīgs, ByVal X kā Single, ByVal Y kā Single)

Buff = True

Beigt Sub

Privāts sub UserForm_MouseMove (ByVal poga kā pilnīgs, ByVal Shift kā pilnīgs, ByVal X kā Single, ByVal Y kā Single)

Dariet, lai gan myhdc = 0

myhdc = GetForegroundWindow ()

myhdc = GetDC (monhdc)

Loop

Ja poga 1 Pēc tam iziet no sub

hRPen = CreatePen (PS_SOLID, 10, RGB (0, 255, 0))

DeleteObject SelectObject (myhdc, hRPen)

Pēc tam, kad Buff

MoveToEx myhdc, X * 1.32, Y * 1.32, un H0

Buff = False

Beigas Ja

LineTo myhdc, X * 1.32, Y * 1.32

DoEvents

Beigt Sub

Iepriekšējais Raksts Nākamais Raksts

Top Padomi