日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ahk编程_AHK编程可视化的实现

發(fā)布時(shí)間:2025/4/5 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ahk编程_AHK编程可视化的实现 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

AHK編程可視化的實(shí)現(xiàn)

可視化編程意義

可視化編程是一個(gè)語言能力的提現(xiàn),這個(gè)是AHK實(shí)現(xiàn)的可視化編程!本實(shí)例為一個(gè)公開分享的實(shí)例,為方便大家參考,特搬運(yùn)轉(zhuǎn)移到這里!

實(shí)例

實(shí)例的使用方法就是將實(shí)例替換掉類庫的U()函數(shù)!歡迎大家!進(jìn)一步創(chuàng)新分享!

;旋轉(zhuǎn)的點(diǎn)

;~ u(){

;~ f(r(,20,40)),f=0

;~ while 17>++f,p:=s(t*3-f/9),a=0

;~ loop 16

;~ fc(w/2+s(r:=p+a++*pi/8)*f*h/35,h/2+c(r)*f*h/35,4,h(t/2+(16-f)/16))

;~ }

;旋轉(zhuǎn)的線

;~ u(){

;~ f(),i=0,j=99

;~ loop,%j%

;~ dl(n:=w/2,m:=h/2,n+c(i/j*pi*2)*c(i/j*pi*4+t)*n,m+s(i/j*pi*2)*s(i/j*pi*4+t)*m,h(i++/j))

;~ }

;燈籠

;~ u(){

;~ f(),i=0,j=256

;~ loop,%j%

;~ fc(w/2+sin(i/j*pi)*cos(i/j*pi*32+t)*w/2,h*i/j,3,h(i++/j+t/8))

;~ }

;旋轉(zhuǎn)立方體

;~ u()

;~ {

;~ f()

;~ q:=pi*2/3

;~ loop,3

;~ dl(j+c(d*q+t-u:=q/2)*j:=w/2,k:=h*2/3,n:=j+c(d*q+t)*j,l:=h/3)dl(j,0,n,l)dl(j,h,m:=j+c(++d*q+t-u)*j,k)dl(n,l,m,k)

;~ }

;詭異圖像

;~ u(){

;~ y:=0,x=mod(++t|=0,w)

;~ Loop,%h%{

;~ sp(x,y++,i<30?h(i/30):0),a=b=i=0

;~ while,b*b+a*a<4&&++i<30

;~ a:=(a*a-b*b+x*3/w-2,b=2*a*b+y*2.5/h-5/4)

;~ }}

;一串字母

;~ u(){

;~ q=Q_q@FiRIf@_Ez@_P_@_BdH_@_@_UU@@

;~ f()

;~ loop,480

;~ (1<

;~ }

;固定的飛鳥

;~ u(){

;~ l=DJCDHIPLOIPETCYDZE^C[G^F[IZRQZG[AYFXJVBQGRALGN

;~ i:=&l-2,b=2*a:=7/c:=31

;~ while,x:=*(i+=2)&c,y=*(i+=2)&c

;~ dl(a*w,b*h,w*a:=x/c,h*b:=y/c)

;~ }

;十字架

;~ u(){

;~ l=DJCDHIPLOIPETCYDZE^C[G^F[IZRQZG[AYFXJVBQGRALGN

;~ i:=&l-2,b=2*a:=7/c:=31

;~ while,x:=*(i+=2)&c,y=*(i+=2)&c

;~ dl(a*w,b*h,w*a:=x/c,h*b:=y/c)

;~ }

;畫圈圈

;~ u(){

;~ loop 3 {

;~ i := A_Index

;~ loop 3 {

;~ a := 9*t

;~ d := 4*t

;~ x := (A_Index-0.5)/3 * w + s(a)*d

;~ y := (i-0.5)/3 * h + c(a)*d

;~ sp( x, y, h(t/9) )

;~ }

;~ }

;~ }

;噴繪效果

;~ u(i=.3){

;~ j:=i?t-.2:t

;~ y=-.5

;~ while 4>++y,x=-.5

;~ loop 4

;~ fc(w/2+ ++x*s(j)*80,h/2+y*c(j)*80,a(s(j))*3+c(j)*3+5,c:=h(x/y*.98+t/99,.7-i))

;~ i?u(0)

;~ }

;移動(dòng)的花點(diǎn)

;~ u(i=1,y=-.5){

;~ (t<1)?f(9999)

;~ while 4>++y,x=-.5,j=t-.2*i

;~ loop 4

;~ fc(++x*s(j/x)*80+w/2,h/2+y*c(j/y)*80,s(j)+c(j)+7-i,h(x/y,.7-i))

;~ i?u(0)

;~ }

;下雪了

;~ u(i=0){

;~ static s:=[]

;~ if (f()t<1)

;~ while 999>++i,s[i]:=r

;~ Random r,0,% w

;~ while 500>++i,a=i*2

;~ sp(s[a+1]+s(t+i)*20,Mod(s[a]+t*99,h))

;~ }

;禮花

;~ u(r=1){

;~ r?u(0)

;~ p:=Mod(t+.1*r,q:=pi/2),i=0

;~ loop 98

;~ fc(w/2+s(a:=++i/24*q)*d:=(s(p)*15)**2,h/3+c(a)*d+(p*3)**3,p*7-r*3,h(t//q/3+i/2,452/d*r))

;~ }

;展開的花

;~ u(d=3,x=0){

;~ while 256>++x,y=0

;~ while 3>++y

;~ fc(s(t*4-x/8+pi*y)*d*x+w/2,c(t*4-x/8+pi*y)*d*x+w/2,11,h(t/4+y/2))

;~ }

;球

;~ u() {

;~ f()

;~ Loop 2 {

;~ i := A_Index

;~ p := (Mod(t/9+a(t(i)),pi/2))

;~ fc(s(t/99)*20+a(s(p))*w*(1+i/99),h-a(c(t+i/9))*h*c(p)**2-8,4,h(i/9))

;~ }

;~ }

;球的軌跡線

;~ u(){

;~ static x,y,a:=0.5,s

;~ s+=(d,x+=a)

;~ y+=s

;~ if(y+8>h)

;~ s*=-0.9,a*=0.97,y:=h-8

;~ if(x<0||x+8>w)

;~ a*=-1,x:=(x<0?0:h-8)

;~ fc(x,y,4,h(t))

;~ }

;紅心

;~ u(){

;~ i:=2*r:=A_Index/2

;~ fc(0,0,r,i)

;~ fc(w-i,0,r,i)

;~ fc(0,h-i,r,i)

;~ fc(w-i,h-i,r,i)

;~ if i<100

;~ Sleep 1

;~ if i>5000

;~ pause

;~ }

;上例子改進(jìn)版

;~ u(){

;~ i:=2*r:=A_Index/2

;~ fc(0,0,r,h(t))

;~ fc(w-i,0,r,h(t))

;~ fc(0,h-i,r,h(t))

;~ fc(w-i,h-i,r,h(t))

;~ if i<100

;~ Sleep 1

;~ if i>5000

;~ pause

;~ }

;齒輪

;~ u(j=0,@=1){

;~ f()

;~ while 3>j,i=.5,@*=-1,x=j++*w/2

;~ while 97>i,?=?,?=?,?=x+s(p:=pi/48*i+t*@)*q:=(i&2?.26:.24)*w,?=h/2+c(p)*q

;~ i++>1?dl(?,?,?,?)

;~ }

;飛線

;~ u(i=0) {

;~ f()

;~ while 9>i

;~ dl(x:=i/9*w,y:=h/5+c(i+t+9)*h/3,x,b:=h/2+y)i++==0&&pi>y&&pi

;~ k?fc(6,pi+=GetKeyState("w")?-t/99:.1,9):pi:=t:=0

;~ }

;進(jìn)出效果

;~ u(s=0){

;~ while 63>++s

;~ a:=w*(s-1)/128,fr(a+s(t*-2+s/7)*32,a+s-128+a/3,w-a*2,w-a*2+128,r(255,255,255,(s(t*-2+s/24)+1.1)/2.2))

;~ }

;星星

;~ u() {

;~ static x=0,y=9,a=1

;~ q:=x+s(a)*99,e=y+c(a)*99

;~ q>w||e>h||q<0||e<0?a-=1.5:x:=q+0*y:=e

;~ fc(q//8*8,e//8*8,2,r(w,,w,s(t*99)))

;~ }

;跳球球

;~ u(r=2,i=99) {

;~ while i-->0,c=t-r*d/2,p=Mod(c/6+a(t(i)),1.5)

;~ fc(a(s(p))*w//9*9-r,h-a(c(c+i/9))*h*c(p)**2//9*9-r-9,2+r,h(i/9,1-r*.4))

;~ r?u(0)

;~ }

;跳跳球加強(qiáng)版

;~ u(r=2,i=80) {

;~ while i-->0,c=t-r*d/2,p=Mod(c/6+a(t(i)),1.5)

;~ fc(a(s(p+i))*w//9*9-r,h-a(c(c+i/9))*h*c(p)**2//9*9-r-9,2+r,h(i/9,1-r*.4))

;~ r?u(0)

;~ }

;神奇的畫圈圈,鼠標(biāo)控制

;~ u(){

;~ static x=0,y=0

;~ fc(x-r:=9+s(t-d)*7,y-r,r,h(t-d,.5))

;~ MouseGetPos a,b

;~ b-=c(t)*9,x=x*.999+a/999,y=y*.998+b/w

;~ fc(x-r:=9+s(t)*7,y-r,r,h(t))

;~ }

;~ ;強(qiáng)迫癥治療

;~ u(){

;~ z:=pi*(3-Sqrt(5)),i:=0,r:=Sqrt(w/2*w/2+h/2*h/2)+5,l:=4,k:=l-1,t:=(r*r)/(l*l)

;~ Loop,%t%

;~ i++,r:=l*sqrt(i),a:=i*z,x:=r*c(a),y:=r*s(a),fc(w/2+x,h/2+y,k,h(a))

;~ }

;亂彈線

;~ u() {

;~ static x=0,y=9,a=1

;~ q:=x+s(a),e=y+c(a)

;~ q>w||e>h||q<0||e<0?a-=Mod(t,2)+1:x:=q+0*y:=e

;~ fc(q//2*2,e//9*9,4,h(t,s(t)*.5+.5))

;~ }

;~ u(){

;~ z:=pi*(3-Sqrt(5)),i:=0,r:=Sqrt(w/2*w/2+h/2*h/2)+5,l:=4,k:=l-1,t:=(r*r)/(l*l)

;~ Loop,%t%

;~ i++,r:=l*sqrt(i),a:=i*z,x:=r*c(a),y:=r*s(a),fc(w/2+x,h/2+y,k,h(a))

;~ }

;~ u(i=0){

;~ Loop,12800

;~ fc(w/2+c(a:=++i*2.3999632297)*r:=4*i**.5,h/2+r*s(a),3,h(a))

;~ }

;潛水艇小游戲

;~ global Vy := 50

;~ global Vx := 50

;~ u() {

;~ f()

;~ Vy := GetKeyState("Up") ? Vy-1 : GetKeyState("Down") ? Vy+1 : Vy

;~ Vx := GetKeyState("Left") ? Vx-1 : GetKeyState("Right") ? Vx+1 : Vx

;~ fe(Vx,Vy,58,30,h(2/20))

;~ fc(Vx+25,Vy-10,4,h(6/3))

;~ loop, 4

;~ fc(Vx+(10*a_index),Vy+10,4,h(2/3))

;~ if GetKeyState("space")

;~ loop, 20

;~ fc(Vx+25,Vy+30+(a_index*40),4,h(a_index/6))

;~ }

;~ ;打飛機(jī)小游戲

;~ u() {

;~ static p=320,v=0,px=0,py=0,sx=0,sy=0,row,number,numbers,aliens,alien=[[[0,0,1,0,0,0,0,0,1,0,0],[0,0,0,1,0,0,0,1,0,0,0],[0,0,1,1,1,1,1,1,1,0,0],[0,1,1,0,1,1,1,0,1,1,0],[1,1,1,1,1,1,1,1,1,1,1],[1,0,1,1,1,1,1,1,1,0,1],[1,0,1,0,0,0,0,0,1,0,1],[0,0,0,1,1,0,1,1,0,0,0]],[[0,0,0,0,1,0,1,0,0,0,0],[1,0,0,1,0,0,0,1,0,0,1],[1,0,1,1,1,1,1,1,1,0,1],[1,1,1,0,1,1,1,0,1,1,1],[0,1,1,1,1,1,1,1,1,1,0],[0,0,1,1,1,1,1,1,1,0,0],[0,0,1,0,0,0,0,0,1,0,0],[0,0,0,1,1,0,1,1,0,0,0]]]

;~ static reset=0

;~ if (reset) {

;~ reset := 0

;~ d := 0

;~ }

;~ d?:d:=0

;~ --row?:row:=5

;~ if(!aliens) {

;~ f()

;~ t:=0

;~ number:=55

;~ numbers:=[11,11,11,11,11]

;~ y:=0,aliens=[]

;~ while y++<5,x=0,aliens.push(r:=[])

;~ while x++<11

;~ r.push(1)

;~ }

;~ d+=d*(55-number)/20

;~ t+=d

;~ offsetX := ((t*9)&63)*3 -30

;~ offsetY := (t*9)//64

;~ if (offsetY>19-numbers.length()) {

;~ MsgBox game over

;~ reset := 1 ;temp

;~ return aliens:=0

;~ }

;~ offsetY&1?offsetX:=129-offsetX

;~ offsetY*=30

;~ y:=(offsetY+row*30)//3|0

;~ fr(0,y*3-$:=(row>1?0:30),640,30+$,0)

;~ dl(px,py,px,py+20,0)

;~ px:=sx,py:=sy

;~ dl(sx,0,sx,offsetY,0)

;~ if(!sy) {

;~ GetKeyState("space")?sy:=580+0*sx:=p+10

;~ } else {

;~ a:=(sy-offsetY)//30|0

;~ b:=(sx-offsetX)//39|0

;~ if (aliens[a][b]) {

;~ aliens[a][b]:=0

;~ number--

;~ numbers[a]--

;~ loop 5

;~ numbers[numbers.Length()]?:numbers.pop()

;~ if(!numbers.Length()) {

;~ MsgBox You won!

;~ return aliens := 0

;~ }

;~ sy:=0

;~ } else {

;~ dl(sx,sy,sx,sy+20)

;~ sy:=Max(0,sy-d*400)

;~ }

;~ }

;~ c := 0

;~ r:=row

;~ while c++<11,y=0

;~ if(aliens[r][c])

;~ while y++<8,x=0

;~ while x++<11

;~ alien[(t&1)+1][y][x]?fr(offsetX+c*39+x*3, offsetY+r*30+y*3, 2, 2)

;~ l:=GetKeyState("left"),r=GetKeyState("right"),v=(v>0&&l)||(v<0&&r)||!(l+r)?0:v+9*d*(r-l)

;~ p:=Max(0,Min(620,p+v)),fr(0,596,640,30,0)fr(p,600,20,5)fc(p+7,596,3)

;~ }

類庫

;~ /*

;~ forum thread: https://autohotkey.com/boards/viewtopic.php?f=6&p=191294

;~ u() is called as fast as possible.

;~ --- global constants ---

;~ t - time elapsed since script start (seconds)

;~ d - time elapsed since last frame (seconds, delta time)

;~ w - canvas width

;~ h - canvas height

;~ pi - 3.1415...

;~ g - GDI object

;~ --- functions ---

;~ f(Color) - Fill (or clear) canvas (Color is defaulted to 0x000000)

;~ sp(x, y, Color) - SetPixel

;~ dl(x1, y1, x2, y2, Color) - DrawLine

;~ fc(x, y, r, Color) - FillCircle

;~ fr(x, y, w, h, Color) - FillRectangle

;~ fe(x, y, w, h, Color) - FillEllipse

;~ r(r, g, b, brightness) - transform rbg values to hex

;~ h(hue, brightness) - get hue color from fraction. example: h(0) is red, h(1/3) is green and h(2/3) is blue.

;~ if not specified, Color is always defaulted to 0xFFFFFF (white)

;~ if not specified, brightness is always defaulted to 1

;~ --- shorthands ---

;~ s() - sin()

;~ c() - cos()

;~ t() - tan()

;~ a() - abs()

;~ */

; this is the function you overwrite!

u(){

f(r(,20,40)),f=0

while 17>++f,p:=s(t*3-f/9),a=0

loop 16

fc(w/2+s(r:=p+a++*pi/8)*f*h/35,h/2+c(r)*f*h/35,4,h(t/2+(16-f)/16))

}

/*

=== BOILERPLATE BELOW ===

*/

#SingleInstance force

#NoEnv

#Persistent

SetWinDelay -1

SetBatchLines -1

global g, t, d

global pi := 3.14159265359

global w := 640

global h := 640

Gui, -MinimizeBox +Resize

Gui, Color, Black, Black

Gui, Margin, 0, 0

Gui, Add, Progress, % "hwndctrl BackgroundBlack x0 y0 w" w " h" h

Gui, Show

g := new GDI(ctrl, w, h)

SetTimer, FPS, 1000

DllCall("QueryPerformanceFrequency", "Int64P", freq)

Loop {

t += d := (end - start) / freq

DllCall("QueryPerformanceCounter", "Int64P", start)

u()

g.bitblt()

DllCall("QueryPerformanceCounter", "Int64P", end)

frames++

}

return

f(Color := 0x000000) {

g.FillRectangle(0, 0, g.CliWidth, g.CliHeight, Color)

}

sp(x, y, Color := 0xFFFFFF) {

g.SetPixel(x, y, Color)

}

dl(x1, y1, x2, y2, Color := 0xFFFFFF) {

g.DrawLine(x1, y1, x2, y2, Color)

}

fc(x, y, r, Color := 0xFFFFFF) {

g.FillEllipse(x, y, r*2, r*2, Color)

}

fr(x, y, w, h, Color := 0xFFFFFF) {

g.FillRectangle(x, y, w, h, Color)

}

fe(x, y, w, h, Color := 0xFFFFFF) {

g.FillEllipse(x, y, w, h, Color)

}

s(x) {

return sin(x)

}

c(x) {

return cos(x)

}

t(x) {

return tan(x)

}

a(x) {

return abs(x)

}

r(r := 0, g := 0, b := 0, brightness := 1) {

return (b * brightness << 16) + (g * brightness << 8) + (r * brightness)

}

h(hue, brightness := 1) {

if (hue<0,hue:=abs(mod(hue, 1)))

hue:=1-hue

Loop 3

col+=max(min(-8*abs(mod(hue+A_Index/3-0.5,1)-0.5)+2.5,1),0)*255*brightness<<16-(A_Index-1)*8

return col

}

min(Param*) {

Out := Param.1

for Index, Value in param

if (Value < Out)

Out := Value

return Out

}

max(Param*) {

Out := Param.1

for Index, Value in Param {

if (Value > Out)

Out := Value

} return Out

}

FPS:

Gui +LastFound

WinSetTitle,,,% "FPS: " frames

frames := 0

return

GuiClose:

GuiEscape:

ExitApp

return

GuiSize(hwnd, type, gw, gh) {

global time

w := gw, h:=gh

GuiControl, Move, % g.hwnd, w%w% h%h%

g.Resize(w, h)

Sleep, -1

u()

g.bitblt()

}

class GDI

{

__New(hWnd, CliWidth=0, CliHeight=0)

{

if !(CliWidth && CliHeight)

{

VarSetCapacity(Rect, 16, 0)

DllCall("GetClientRect", "Ptr", hWnd, "Ptr", &Rect)

CliWidth := NumGet(Rect, 8, "Int")

CliHeight := NumGet(Rect, 12, "Int")

}

this.CliWidth := CliWidth

this.CliHeight := CliHeight

this.hWnd := hWnd

this.hDC := DllCall("GetDC", "UPtr", hWnd, "UPtr")

this.hMemDC := DllCall("CreateCompatibleDC", "UPtr", this.hDC, "UPtr")

this.hBitmap := DllCall("CreateCompatibleBitmap", "UPtr", this.hDC, "Int", CliWidth, "Int", CliHeight, "UPtr")

this.hOriginalBitmap := DllCall("SelectObject", "UPtr", this.hMemDC, "UPtr", this.hBitmap)

}

__Delete()

{

DllCall("SelectObject", "UPtr", this.hMemDC, "UPtr", this.hOriginalBitmap)

DllCall("DeleteObject", "UPtr", this.hBitmap)

DllCall("DeleteObject", "UPtr", this.hMemDC)

DllCall("ReleaseDC", "UPtr", this.hWnd, "UPtr", this.hDC)

}

Resize(w, h)

{

this.CliWidth := w

this.CliHeight := h

this.hBitmap := DllCall("CreateCompatibleBitmap", "UPtr", this.hDC, "Int", w, "Int", h, "UPtr")

hPrevBitmap := DllCall("SelectObject", "UPtr", this.hMemDC, "UPtr", this.hBitmap)

DllCall("DeleteObject", "UPtr", hPrevBitmap)

}

BitBlt(x=0, y=0, w=0, h=0)

{

w := w ? w : this.CliWidth

h := h ? h : this.CliHeight

DllCall("BitBlt", "UPtr", this.hDC, "Int", x, "Int", y

, "Int", w, "Int", h, "UPtr", this.hMemDC, "Int", 0, "Int", 0, "UInt", 0xCC0020) ;SRCCOPY

}

; DrawLine

DrawLine(x, y, x2, y2, Color)

{

Pen := new GDI.Pen(Color)

DllCall("MoveToEx", "UPtr", this.hMemDC, "Int", this.TranslateX(x), "Int", this.TranslateY(y), "UPtr", 0)

hOriginalPen := DllCall("SelectObject", "UPtr", this.hMemDC, "UPtr", Pen.Handle, "UPtr")

DllCall("LineTo", "UPtr", this.hMemDC, "Int", this.TranslateX(x2), "Int", this.TranslateY(y2))

DllCall("SelectObject", "UPtr", this.hMemDC, "UPtr", hOriginalPen, "UPtr")

}

; SetPixel

SetPixel(x, y, Color)

{

x := this.TranslateX(x)

y := this.TranslateY(y, this.Invert) ; Move up 1 px if inverted (drawing "up" instead of down)

DllCall("SetPixelV", "UPtr", this.hMemDC, "Int", x, "Int", y, "UInt", Color)

}

FillRectangle(x, y, w, h, Color, BorderColor=-1)

{

if (w == 1 && h == 1)

return this.SetPixel(x, y, Color)

Pen := new this.Pen(BorderColor < 0 ? Color : BorderColor)

Brush := new this.Brush(Color)

; Replace the original pen and brush with our own

hOriginalPen := DllCall("SelectObject", "UPtr", this.hMemDC, "UPtr", Pen.Handle, "UPtr")

hOriginalBrush := DllCall("SelectObject", "UPtr", this.hMemDC, "UPtr", Brush.Handle, "UPtr")

x1 := this.TranslateX(x)

x2 := this.TranslateX(x+w)

y1 := this.TranslateY(y)

y2 := this.TranslateY(y+h)

DllCall("Rectangle", "UPtr", this.hMemDC

, "Int", x1, "Int", y1

, "Int", x2, "Int", y2)

; Reselect the original pen and brush

DllCall("SelectObject", "UPtr", this.hMemDC, "UPtr", hOriginalPen, "UPtr")

DllCall("SelectObject", "UPtr", this.hMemDC, "UPtr", hOriginalBrush, "UPtr")

}

FillEllipse(x, y, w, h, Color, BorderColor=-1)

{

Pen := new this.Pen(BorderColor < 0 ? Color : BorderColor)

Brush := new this.Brush(Color)

; Replace the original pen and brush with our own

hOriginalPen := DllCall("SelectObject", "UPtr", this.hMemDC, "UPtr", Pen.Handle, "UPtr")

hOriginalBrush := DllCall("SelectObject", "UPtr", this.hMemDC, "UPtr", Brush.Handle, "UPtr")

x1 := this.TranslateX(x)

x2 := this.TranslateX(x+w)

y1 := this.TranslateY(y)

y2 := this.TranslateY(y+h)

DllCall("Ellipse", "UPtr", this.hMemDC

, "Int", x1, "Int", y1

, "Int", x2, "Int", y2)

; Reselect the original pen and brush

DllCall("SelectObject", "UPtr", this.hMemDC, "UPtr", hOriginalPen, "UPtr")

DllCall("SelectObject", "UPtr", this.hMemDC, "UPtr", hOriginalBrush, "UPtr")

}

TranslateX(X)

{

return Floor(X)

}

TranslateY(Y, Offset=0)

{

if this.Invert

return this.CliHeight - Floor(Y) - Offset

return Floor(Y)

}

class Pen

{

__New(Color, Width=1, Style=0)

{

this.Handle := DllCall("CreatePen", "Int", Style, "Int", Width, "UInt", Color, "UPtr")

}

__Delete()

{

DllCall("DeleteObject", "UPtr", this.Handle)

}

}

class Brush

{

__New(Color)

{

this.Handle := DllCall("CreateSolidBrush", "UInt", Color, "UPtr")

}

__Delete()

{

DllCall("DeleteObject", "UPtr", this.Handle)

}

}

}

[/erphpdown]

總結(jié)

以上是生活随笔為你收集整理的ahk编程_AHK编程可视化的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色在线视频网站 | 看全色黄大色黄大片女一次牛 | 婷婷丁香一区二区三区 | 免费av一区| 精品成人一区二区三区 | www.黄色网址 | 麻豆91av | 麻豆传媒网 | 免费播放片大片 | 神马久久网 | 超碰av在线播放 | 亚洲女人av| 伊人国产在线视频 | 办公室大战高跟丝袜秘书经理ol | 午夜a视频 | 国产精品69av| 日本熟妇人妻中出 | 久久爱成人 | 成人免费毛片视频 | 大乳女喂男人吃奶 | 久久国产小视频 | 在线色导航 | 国产一卡二卡在线 | 99只有精品 | 亚洲区小说区图片区 | a天堂在线资源 | 91天天色| 国产精品久久久久久久久久久久久久久久 | 91性高潮久久久久久久久 | 毛茸茸多毛bbb毛多视频 | 精品视频久久久 | 日本大胆裸体做爰视频 | 26uuu精品一区二区在线观看 | 91观看视频 | 女人叫床高潮娇喘声录音mp3 | 亚洲无码国产精品 | 日韩午夜在线播放 | 丰满人妻老熟妇伦人精品 | 日本黄色www | 五月天婷婷社区 | 国产成人在线播放视频 | 亚洲综合av一区二区三区 | 中文字幕在线观看的网站 | 天天天天躁天天爱天天碰2018 | 黑人借宿巨大中文字幕 | jul023被夫上司连续侵犯 | 奇米网在线观看 | 午夜激情福利电影 | av在线播放网站 | 青青草官网 | 成人欧美一区二区三区黑人一 | 亚洲美女在线视频 | 多男调教一女折磨高潮高h 国内毛片毛片毛片毛片毛片 | 女人18岁毛片 | 催眠调教后宫乱淫校园 | 午夜影院在线观看 | 午夜生活片 | 欧洲美女与动交zozzo | 午夜网页 | 亚洲婷婷综合网 | 中文字幕免费高清 | 国产一区二区三区小说 | 蜜臀久久99精品久久久画质超高清 | 91浏览器在线观看 | 国产 欧美 日韩 一区 | 女人张开双腿让男人捅 | 国产一二在线 | 中文字字幕在线 | 日韩一级黄色片 | 少妇高潮网站 | 精品一区二区毛片 | 日韩av成人网 | 国产女在线 | 日韩精品一二区 | 尤物网站在线播放 | 精品视频久久 | 欧美国产一级 | 亚洲激情自拍偷拍 | 欧美日韩精品一区二区三区四区 | 日本一区二区免费在线观看 | 日韩人妻精品在线 | 国产黑丝av | 免费日皮视频 | 国产精品久久久久久久久岛 | 欧美国产片 | 阿v天堂在线观看 | 国产伦理一区 | 偷拍亚洲另类 | 国产精品一区二区三区线羞羞网站 | 黄色大片免费网站 | www.爱爱.com| 国产色网站| 人成免费| 亚洲好视频 | 亚洲成av人片一区二区 | 日本免费一区二区三区最新 | jizzjizz在线观看| 日本少妇吞精囗交视频 | 午夜影院在线视频 |