musicstashall
Знающий
- Сообщения
- 322
- Репутация
- 7
Всем привет.
Как нарисовать такой же текст на экране, но без фона, только буквы?
Окно, в качестве подложки, нежелательно.
Как нарисовать такой же текст на экране, но без фона, только буквы?
Код:
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <FontConstants.au3>
_DrawText('Hello world', 80, 'Verdana', 0xFFFFFF, 3000)
;===================================================
; Параметры: $Text - Текст.
; $Size - Размер текста.
; $Font - Шрифт текста.
; $Color - Цвет текста.
; $Time - Время отображения текста.
;===================================================
Func _DrawText($Text, $Size, $Font, $Color, $Time)
$tRECT = DllStructCreate($tagRect)
DllStructSetData($tRECT, "Left", 0)
DllStructSetData($tRECT, "Top", (@DesktopHeight / 2) - ($Size / 2))
DllStructSetData($tRECT, "Right", @DesktopWidth)
DllStructSetData($tRECT, "Bottom", @DesktopHeight)
$hDC = _WinAPI_GetDC(0)
$hFont = _WinAPI_CreateFont($Size, 0, 0, 0, 800, False, False, False, $DEFAULT_CHARSET, _
$OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $DEFAULT_QUALITY, 0, $Font)
$hOldFont = _WinAPI_SelectObject($hDC, $hFont)
_WinAPI_SetTextColor($hDC, $Color)
_WinAPI_SetBkColor($hDC, 0x000000)
_WinAPI_SetBkMode($hDC, $TRANSPARENT)
$init = TimerInit()
Do
_WinAPI_DrawText($hDC, $Text, $tRECT, $DT_CENTER)
Sleep(100)
Until TimerDiff($init) > $Time
_WinAPI_SelectObject($hDC, $hOldFont)
_WinAPI_DeleteObject($hFont)
_WinAPI_ReleaseDC(0, $hDC)
_WinAPI_InvalidateRect(0, 0)
$tRECT = 0
EndFunc
Окно, в качестве подложки, нежелательно.