fil пишет:
цитата: |
тогда можно встроить индикатор в ее окно. Напр. заголовок |
|
В FWH есть примерчик индикатора- полупрозрачное окошко , всегда "наверху" , на несколько секунд. На нем
можно разместить картинку , надпись или меню....
PS Это, как "идея " :)
function DesktopAlert( oWnd )
local oDlg, oBrush, oFont
local hLogo := FWLogoBitMap()
local oBtnClose
local oBtnDown
local oFontBody
DEFINE FONT oFont NAME "Verdana" BOLD
DEFINE FONT oFontBody NAME "Verdana" SIZE 0, -9
DEFINE BRUSH oBrush GRADIENT { { 1, nRgb( 221, 236, 253 ), nRgb( 95, 131, 179 ) } }
DEFINE DIALOG oDlg STYLE nOr( WS_POPUP, WS_BORDER ) BRUSH oBrush ;
SIZE 328, 73
@ 0.6, 6 SAY "A desktop notification" OF oDlg TRANSPARENT FONT oFont
@ 1.2, 6 SAY "ПОДКЛЮЧЕНО !" OF oDlg;
TRANSPARENT FONT oFont SIZE 100,30 COLOR CLR_HGREEN
@ 1.8, 6 SAY "Обед через 15 минут." OF oDlg;
TRANSPARENT FONT oFontBody SIZE 100,30 COLOR CLR_WHITE
@ 0.6, oDlg:nWidth-175 BTNBMP oBtnClose FILENAME "D:\fwh\bitmaps\16x16\cancel.bmp" ;
SIZE 10, 10 OF oDlg NOBORDER ACTION oDlg:End()
@ 0.6, oDlg:nWidth-185 BTNBMP oBtnDown FILENAME "D:\fwh\bitmaps\16x16\darrow.bmp" ;
SIZE 10, 10 OF oDlg NOBORDER ACTION oDlg:End()
oBtnClose:ltransparent:=.t.
oBtnDown:ltransparent:=.t.
ACTIVATE DIALOG oDlg ;
ON INIT ( SetTransparent( oDlg ), oDlg:Shadow(), BuildTimer( oDlg ) ) ;
ON CLICK oDlg:End() ;
ON PAINT DrawBitmap( hDC, hLogo, 9, 9 ) ;
VALID ( DeleteObject( hLogo ), .T. ) ;
NOWAIT
oBrush:End()
oFont:End()
oWnd:SetFocus()
return nil
//----------------------------------------------------------------------------//
function BuildTimer( oDlg )
local oTimer
local nStart := Seconds()
oDlg:SetPos( ScreenHeight() - 80, ScreenWidth( 0 ) - 350 )
DEFINE TIMER oTimer OF oDlg ;
INTERVAL 10;
ACTION If( Seconds() - nStart > 5, oDlg:End(),)
ACTIVATE TIMER oTimer
return nil
//----------------------------------------------------------------------------//
#define GWL_EXSTYLE -20
#define WS_EX_LAYERED 524288
static function SetTransparent( oDlg )
SetWindowLong( oDlg:hWnd, GWL_EXSTYLE, nOr( GetWindowLong( oDlg:hWnd, GWL_EXSTYLE ), WS_EX_LAYERED ) )
SetLayeredWindowAttributes( oDlg:hWnd, 0, 180, 2 )
return nil