Fuente/ Codesnippets | | | | | ControlsMap Controls Desktop Ventana Listen
Erzeugt una hPic sowie 6 Listen el una Momentaufnahme aller sichtbaren Ventana
sowie aller en el sichtbaren Fenstern enthaltenen Controls samt Koordinaten
y Ausmaße repräsentieren.
Das hPic es nützlich así uno simplemente por getPixel el Listen-Eintragsnummer
uno Controls a una cierta Bildschirmposition zurückerhält bajo Beachtung
el Z-Achse.
Descargar
Macht de:
dies:
KompilierenMarcaSeparación {$cleq}
windowstyle 80
window maxx,maxy
long hPicControlsMap=create("hNewPic",maxx,maxy,$FFFFFF)
long ControlsMapLists=paintControlsMap(hPicControlsMap)//gibt einen speicher mit 6 listenhandles zurück.
drawpic hPicControlsMap,,0;0
print getcount(long(ControlsMapLists,)),"Elemente gefunden."
destroyWindow(long(ControlsMapLists,))//enthält die handles
destroyWindow(long(ControlsMapLists,4))//die x position
destroyWindow(long(ControlsMapLists,8))//die y position
destroyWindow(long(ControlsMapLists,12))//die xx position
destroyWindow(long(ControlsMapLists,16))//die yy position
destroyWindow(long(ControlsMapLists,20))//den typ, 1=fenster 2=control
waitinput
end
nProc paintControlsMap(long hPic){
long \
lst=createLongsList(),lst2=createLongsList(),\
hsh=createLongsList(),hsx=createLongsList(),hsy=createLongsList(),hsxx=createLongsList(),hsyy=createLongsList(),hstyp=createLongsList(),\
rc=globalAlloc(gPTR,16),rc2=globalAlloc(gPTR,16),\
x,y,xx,yy,cnt,wnd,cnt2
enumWindows(procAddr(paintControlsMap.enumProc),lst)
cnt=getcount(lst)
whileloop cnt-1,,-1 {
wnd=SendMessage(lst,lb_getitemdata,loop,)
getWindowRect(wnd,rc)
sendMessage(hstyp,lb_addstring,,1)
sendMessage(hsh,lb_addstring,,wnd)
sendMessage(hsx,lb_addstring,,long(rc,))
sendMessage(hsy,lb_addstring,,long(rc,4))
sendMessage(hsxx,lb_addstring,,long(rc,8))
sendMessage(hsyy,lb_addstring,,long(rc,12))
sendmessage(lst2,lb_resetContent,,)
enumChildWindows(wnd,procAddr(paintControlsMap.enumProc),lst2)
cnt2=getcount(lst2)
if cnt2 {
whileloop 0,cnt2-1 {
wnd=SendMessage(lst2,lb_getitemdata,loop,)
getWindowRect(wnd,rc2)
case long(rc2,)<long(rc,) : long rc2&,0=long(rc,)
case long(rc2,4)<long(rc,4) : long rc2&,4=long(rc,4)
case long(rc2,8)>long(rc,8) : long rc2&,8=long(rc,8)
case long(rc2,12)>long(rc,12) : long rc2&,12=long(rc,12)
case long(rc2,)>long(rc,8) : long rc2&,0=long(rc,8)
case long(rc2,4)>long(rc,12) : long rc2&,4=long(rc,12)
case long(rc2,8)<long(rc,) : long rc2&,8=long(rc,)
case long(rc2,12)<long(rc,4) : long rc2&,12=long(rc,4)
sendMessage(hstyp,lb_addstring,,2)
sendMessage(hsh,lb_addstring,,wnd)
sendMessage(hsx,lb_addstring,,long(rc2,))
sendMessage(hsy,lb_addstring,,long(rc2,4))
sendMessage(hsxx,lb_addstring,,long(rc2,8))
sendMessage(hsyy,lb_addstring,,long(rc2,12))
}
}
}
globalFree(rc)
globalFree(rc2)
destroyWindow(lst2)
destroyWindow(lst)
cnt=getcount(hsh)
if cnt {
long dc=createCompatibleDC(hDC)
selectObject(dc, hPic)
selectobject(dc,getStockObject(NULL_PEN))
selectobject(dc,getStockObject(DC_BRUSH))
whileloop 0,cnt-1 {
SetDCBrushColor(dc,loop)
rectangle(dc,SendMessage(hsx,lb_getitemdata,loop,),SendMessage(hsy,lb_getitemdata,loop,),SendMessage(hsxx,lb_getitemdata,loop,)+1,SendMessage(hsyy,lb_getitemdata,loop,)+1)
}
deleteDC(dc)
}
long rt=dim(24)
long rt&,0=hsh,hsx,hsy,hsxx,hsyy,hstyp
return rt
}
nProc paintControlsMap.enumProc(long wnd,lst){
PushAll
case IsWindowVisible(wnd) and (wnd<>hwnd) : sendMessage(lst,lb_addstring,,wnd)
PopAll
return true
}
nproc createLongsList(){
return Control("LISTBOX","",WS_CHILD | LBS_OWNERDRAWFIXED,,,,,hWnd,999,hInstance,)
}
|
| | | | |
| | | Apéndice: Ver código fuente otra vez fix adaptado -
kleine BugFixes. |
| | | | |
| | Julian Schmidt | Scheint, super a trabajo. Jetzt musst du lo sólo todavía fix en dein Lineal-Tool reinhauen. |
| | | | |
| | | jaja! |
| | | | |
| | Julian Schmidt | Könnte uno fix nen Ego-Shooter draus escribir, indem uno Controls killen muss. xD |
| | | | |
| | | Entweder así: [...]
ooooder natürlich así: [...]
oder así: [...]
durchaus machbar!
Aaber tal vez auch así: [...] |
| | | | |
| | Julian Schmidt | Spiel-Ziel: Wer schafft lo como erstes Windows abstürzen que se. xD |
| | | | |
|
Zum QuelltextTema opciones | 10.044 Views |
ThemeninformationenDieses Thema ha 2 subscriber: |
|