Что нового

Скриншот с реальными координатами объектов

Tapok

Новичок
Сообщения
204
Репутация
0
Как создать окно (GUI), в котором было бы изображение (скриншот), таким образом, чтобы оно было пиксел в пиксел с тем, которое есть реально? Т.е. координаты всех ярлыков были бы на тех же местах, если было заснято окно, то в GUI оно тоже бы имело те же координаты, если была какая-то фигура, в окне она была бы на том же месте.
Если просто вывести скриншот в программе-просмотрщике, то его рамка будет портить координаты всех фигур скриншота.

GUI желательно без рамок, или учесть ширину рамок при выводе изображения.

Как здесь:

Код:
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>

Example()

Func Example()
	Local $msg

	GUICreate("GUI", 1024, 768, 0,0) 

	GUICtrlCreateButton("", 0, 0, 1024, 768, $BS_PUSHLIKE + $BS_BITMAP)
	GUICtrlSetImage(-1, @ScriptDir& "\name.bmp")

	GUISetState()

	While 1
		$msg = GUIGetMsg()

		If $msg = $GUI_EVENT_CLOSE Then ExitLoop
	WEnd
EndFunc

только без рамки GUI (скриншот в GUI чуть правее и ниже). Надо чтобы все совпадало.
 

Cornet

Знающий
Сообщения
41
Репутация
6
Надеюсь не для шуток ;)
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Example()

Func Example()
    Local $msg
    GUICreate("GUI", @DesktopWidth, @DesktopHeight, 0,0,$WS_POPUPWINDOW)
	GUICtrlCreatePic(@ScriptDir& "\name.bmp",0,0,@DesktopWidth, @DesktopHeight)
    GUISetState()
    While 1
        If GUIGetMsg() = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
EndFunc
 

gloss

Ленивое кодило
Сообщения
155
Репутация
5
Cornet [?]
Надеюсь не для шуток
wink.gif
Сверху и слева у меня остается серая полоска
 
Автор
T

Tapok

Новичок
Сообщения
204
Репутация
0
Полоски сверху и слева остались, да. Мне это не мешает, но, конечно, это не пиксел в пиксел.
 

Cornet

Знающий
Сообщения
41
Репутация
6
И точно, остаются ;) Ну тогда так:
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Example()

Func Example()
	Local $msg
	$hW = GUICreate("GUI", @DesktopWidth, @DesktopHeight, 0,0,$WS_POPUPWINDOW, $WS_EX_CONTEXTHELP)
	WinMove ($hW , "", -1, -1)
	GUICtrlCreatePic(@ScriptDir& "\name.bmp",0,0,@DesktopWidth, @DesktopHeight)
	GUISetState()
	While 1
		If GUIGetMsg() = $GUI_EVENT_CLOSE Then ExitLoop
	WEnd
EndFunc
 
Автор
T

Tapok

Новичок
Сообщения
204
Репутация
0
Теперь вроде бы хорошо, спасибо! :smile:
 

Cornet

Знающий
Сообщения
41
Репутация
6
из кода можно убрать
Код:
, $WS_EX_CONTEXTHELP
это я как-то случайно откуда-то зацепил :-[
 
Сообщения
137
Репутация
-2
А у меня просто пустой экран серого цвета получился...
 
Верх