Что нового

[Элементы GUI] Как нарисовать сетку

*Zodiac*

Новичок
Сообщения
3
Репутация
0
Доброго всем дня.
Нужно нарисовать сетку, чтоб была по верх всех окон, прозрачная, и можно было задавать количество клеток, ширину, высоту самой клетки
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Сетка должна быть как на рисунке, т.е ромбиком?
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
*Zodiac*

Была у меня заготовка на эту тему(не помню, сам написал или где-то взял):

Код:
#include <GDIPlus.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

HotKeySet('{ESC}', '_EXIT') ; выход по ESC

$i = 10 ; кол-во столбцов
$j = 10 ; кол-во строк

$iX = 1500 ; ширина сетки
$iY = 1000 ; высота сетки


$hGUI = GUICreate('My GUI', $iX, $iY, 0, 0, $WS_POPUP, BitOR($WS_EX_TRANSPARENT, $WS_EX_TOPMOST), $WS_EX_TOOLWINDOW)
GUISetState()
WinSetTrans($hGUI, '', 90) ; прозрачность окна от 0 до 255

_GDIPlus_Startup()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
$hPen = _GDIPlus_PenCreate(0x9911190C, 4) ; второй параметр - толщина линий

$iU = 350 ; смещение линий
 
 
While 1
	For $n = 1 To $j
		_GDIPlus_GraphicsDrawLine($hGraphic, 0, ($iY / $j) * $n, $iX, $iU + ($iY / $j) * $n, $hPen)
	Next

	For $s = 1 To $i
		_GDIPlus_GraphicsDrawLine($hGraphic, $iU + ($iX / $i) * $s, 0, ($iX / $i) * $s, $iY, $hPen)
	Next
	sleep(50)
WEnd

Func _EXIT()
	_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_INVALIDATE + $RDW_ALLCHILDREN)
	_GDIPlus_GraphicsDispose($hGraphic)
	_GDIPlus_PenDispose($hPen)
	_GDIPlus_ShutDown()
	Exit
EndFunc   ;==>_EXIT
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Она должна закрывать доступ к экрану? Или позволять кликать элементы под сеткой?
 
Автор
Z

*Zodiac*

Новичок
Сообщения
3
Репутация
0
Сетка должна быть как на рисунке, т.е ромбиком?
да ромбом
Она должна закрывать доступ к экрану? Или позволять кликать элементы под сеткой?
доступ должен быть открыт под сеткой
Код:
#include <GDIPlus.au3>
	#include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
	#include <ButtonConstants.au3>
	#include <GUIConstantsEx.au3>
	#include <StaticConstants.au3>
	#include <WindowsConstants.au3>
	#Include <WinAPI.au3>
	HotKeySet("{esc}", "_EXIT")
	$hGUI=WinGetHandle("My GUI", "")
	$i=50 ;кол-во столбцов
	$j=50 ;кол-во строк
	$hGUI = GUICreate("My GUI",500,500,-1,-1,$WS_POPUP,$WS_EX_LAYERED)
	GUISetBkColor(0xABCDEF)
    _WinAPI_SetLayeredWindowAttributes($hGUI, 0xABCDEF, 255)
	WinSetOnTop($hGUI, "", 1)
	 GUISetState()
	_GDIPlus_Startup ()
	$hGraphic = _GDIPlus_GraphicsCreateFromHWND ($hGUI)
	$hPen = _GDIPlus_PenCreate(0xFFFFFFFF, 1); второй параметр - толщина линий
	While 1
	For $n = 1 To $j
	_GDIPlus_GraphicsDrawLine ($hGraphic, 0, (0+@DesktopHeight/($j))*$n,@DesktopWidth, (0+@DesktopHeight/($j))*$n, $hPen)        
	Next
	For $s = 1 To $i
	_GDIPlus_GraphicsDrawLine ($hGraphic, (0+@DesktopWidth/($i))*$s, 0,(0+@DesktopWidth/($i))*$s, @DesktopHeight, $hPen)        
	Next
	sleep(50)  
	WEnd
	Func _EXIT()
	_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_INVALIDATE + $RDW_ALLCHILDREN)
	_GDIPlus_GraphicsDispose($hGraphic)
	_GDIPlus_PenDispose($hPen)
	_GDIPlus_ShutDown ()
	Exit
	EndFunc


это я нашел гдето, но угол наклона ни как немогу задать :(
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
*Zodiac* [?]
это я нашел гдето, но угол наклона ни как немогу задать
WSWR дал же пример выше, там вроде угол (смещение) можно задать.
 
Верх