asdf8
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору AZJIO Не совсем понял, что-же надо? Если надо на полностью прозрачной форме получить непрозрачный текст, тогда попробуй так: Код: _textOSD('This the OSD',5,32,700,"Tahoma",0xFF0080) Sleep(3000) _textOSD('') Func _textOSD($sString, $iPos = -1, $iSize = 26, $iWeight = 600, $sFontName = "Tahoma", $Color = 0x00FF00) ;$iPos = 1 | 2 | 3 ;$iPos = 4 | 5 | 6 ;$iPos = 7 | 8 | 9 Local $isSize, $hGuiSwitch, $dll, $hMain, $hLabel, $iStyle, $iHW Global $hMain_OSD, $hLabel_OSD If $sString='' Then If WinExists($hMain_OSD) Then $hGuiSwitch = GUISwitch($hMain_OSD) GUIDelete($hMain_OSD) GUISwitch($hGuiSwitch) Return EndIf Else If $iPos = -1 Then $hGuiSwitch = GUISwitch($hMain_OSD) GUICtrlSetData($hLabel_OSD,$sString) GUISwitch($hGuiSwitch) Else $hMain = GUICreate("", 0, 0, 0, 0, BitOR(0x80000000, 0x20000000), BitOR(0x00000080, 0x00000020)) $hGuiSwitch = GUISwitch($hMain) GUISetFont($iSize, $iWeight, -1, $sFontName, $hMain) $hLabel = GUICtrlCreateLabel($sString, 0, 0) $isSize = ControlGetPos($hMain, "", $hLabel) GUIDelete($hMain) Switch $iPos Case 1 $iHW=30 $iStyle=0x0000 Case 2 $iHW=30 $iStyle=0x01 Case 3 $iHW=30 $iStyle=0x0002 Case 4 $iHW=@DesktopHeight/2-$isSize[3]/2 $iStyle=0x0000 Case 5 $iHW=@DesktopHeight/2-$isSize[3]/2 $iStyle=0x01 Case 6 $iHW=@DesktopHeight/2-$isSize[3]/2 $iStyle=0x0002 Case 7 $iHW=@DesktopHeight-$isSize[3]-40 $iStyle=0x0000 Case 8 $iHW=@DesktopHeight-$isSize[3]-40 $iStyle=0x01 Case 9 $iHW=@DesktopHeight-$isSize[3]-40 $iStyle=0x0002 Case Else $iHW=@DesktopHeight/2-$isSize[3]/2 $iStyle=0x01 EndSwitch $hMain_OSD = GUICreate("", @DesktopWidth, $isSize[3]+4, 0, $iHW, 0x80000000, BitOR(0x00000080, 0x00000008, 0x00080000)) GUISwitch($hMain_OSD) $hLabel_OSD = GUICtrlCreateLabel($sString, 20, 0, @DesktopWidth-40, $isSize[3]+4, $iStyle) GUICtrlSetColor($hLabel_OSD, $Color) GUICtrlSetFont($hLabel_OSD, $iSize, $iWeight, -1, $sFontName) GUISetBkColor(0xABCDEF) GUISetState(@SW_SHOW, $hMain_OSD) $dll = DllOpen("user32.dll") DllCall($dll, "bool", "SetLayeredWindowAttributes", "hwnd", $hMain_OSD, "dword", 15715755, "byte", 255, "dword", 0x03) DllClose($dll) GUISwitch($hGuiSwitch) EndIf EndIf EndFunc ;==>_textOSD | |