Página 1 de 1

Tooltip com Icone

Enviado: 28 Ago 2014 21:36
por asimoes
Tooltip com Icone

Imagem

Código:

Código: Selecionar todos


#define WM_USER                 0x0400
#define TTM_SETTITLE            (WM_USER + 32)
#define TTI_NONE                0
#define TTI_INFO                1
#define TTI_WARNING             2
#define TTI_ERROR               3

FUNCTION Teste
INIT DIALOG  oDlgReport TITLE "Teste" ;
           ICON    oIconPrint ;
           AT      0,0 SIZE 1024,768 ;
           CLIPPER ; 
           FONT    oFont ;
           COLOR   nCorJanela ;
           STYLE DS_CENTER + WS_SYSMENU + WS_VISIBLE ;
           ON INIT {| oDlgReport | ToolTipTitulo(oDlgReport,"Preview do Relatório")} 

    @ 006,020 BUTTONEX cmd1 ;
                CAPTION  "Teste" ;
                ON CLICK { || ZoomRep(oEdit,'-',oDlgReport)} ;
                SIZE     115, 40 ;
                ICON     oIconZoomOut:handle  ;
                TOOLTIP  'Teste com Tooltip com Icone' 

oDlgReport:Activate(.F.)

RETURN Nil

FUNCTION ToolTipTitulo(oJanela, cTitulo)
   hb_Default(@cTitulo,"")
   SendMessageString(GetToolTipHandle(oJanela:handle),TTM_SETTITLE, TTI_INFO, cTitulo)
RETURN Nil

#pragma BEGINDUMP

#include <windows.h>

#include "hbapi.h"

HB_FUNC( SENDMESSAGESTRING )
{
   hb_retnl( ( LONG ) SendMessage( ( HWND ) hb_parnl( 1 ), ( UINT ) hb_parni( 2 ), ( WPARAM ) hb_parnl( 3 ), ( LPARAM ) ( LPSTR ) hb_parc( 4 ) ) );
}

#pragma ENDDUMP


Tooltip com Icone

Enviado: 29 Ago 2014 07:35
por asimoes
Outros defines com icone grande.

#define WM_USER 0x0400
#define TTM_SETTITLE (WM_USER + 32)
#define TTI_NONE 0
#define TTI_INFO 1
#define TTI_WARNING 2
#define TTI_ERROR 3
#define TTI_INFO_LARGE 4
#define TTI_WARNING_LARGE 5
#define TTI_ERROR_LARGE 6

Imagem

Código: Selecionar todos

ON INIT {| oDlgReport | ToolTipTitulo(oDlgReport,"Preview do Relatório",TTI_INFO_LARGE)...

FUNCTION ToolTipTitulo(oJanela, cTitulo, nIconIndex)
   hb_Default(@cTitulo,"")
   hb_Default(@nIconIndex,TTI_INFO)
   SendMessageString(GetToolTipHandle(oJanela:handle),TTM_SETTITLE, nIconIndex, cTitulo)
RETURN Nil

Tooltip com Icone

Enviado: 29 Ago 2014 12:55
por Pablo César
Obrigado Alexandre por compartilhar conosco !

Vou aproveitar e postar este recurso para HMG.

Muito legal, gostei !

Tooltip com Icone

Enviado: 29 Ago 2014 17:18
por asimoes
Colocar cores na janela do tooltip, só não funciona com o waindow.manifest incluído no arquivo de resource.

ex.:

Imagem

Código: Selecionar todos


#define WM_USER                 0x0400
#define TTM_SETDELAYTIME        (WM_USER + 3)
#define TTM_SETTIPBKCOLOR       (WM_USER + 19)
#define TTM_SETTIPTEXTCOLOR     (WM_USER + 20)
#define TTM_SETMAXTIPWIDTH      (WM_USER + 24)
#define TTM_SETTITLE            (WM_USER + 32)
#define TTI_NONE                0
#define TTI_INFO                1
#define TTI_WARNING             2
#define TTI_ERROR               3
#define TTI_INFO_LARGE          4
#define TTI_WARNING_LARGE       5
#define TTI_ERROR_LARGE         6  

FUNCTION ToolTipTitulo(oJanela, cTitulo, nIconIndex)
   hb_Default(@cTitulo,"")
   hb_Default(@nIconIndex,TTI_INFO)
   
   SendMessageToolTip( GetToolTipHandle(oJanela:handle), TTM_SETTIPBKCOLOR, RGB(255,255,0), 0 ) //Só funciona sem o windows.manifest
   
   SendMessageString(GetToolTipHandle(oJanela:handle),TTM_SETTITLE, nIconIndex, cTitulo)
   
RETURN Nil

Tooltip com Icone

Enviado: 29 Ago 2014 17:41
por Pablo César
Alexandre na sua linha 20, não deveria ser esta:

SendMessage( GetToolTipHandle(oJanela:handle), TTM_SETTIPBKCOLOR, RGB(255,255,0), 0 ) //Só funciona sem o windows.manifest

ao invés desta ?

SendMessageToolTip( GetToolTipHandle(oJanela:handle), TTM_SETTIPBKCOLOR, RGB(255,255,0), 0 ) //Só funciona sem o windows.manifest

No HMG existe o SET TOOLTIPBACKCOLOR <aColor>

Tooltip com Icone

Enviado: 29 Ago 2014 20:31
por asimoes
Pablo,

A ordem não influi, agora a SenMessageToolTip só funcionará se a SendMensageString for chamada.

Tooltip com Icone

Enviado: 29 Ago 2014 23:00
por Pablo César
Não entendi. A função SendMessageToolTip, não está presente. Mas tudo bem, funciona con SendMessage.

Tooltip com Icone

Enviado: 30 Ago 2014 06:20
por asimoes
Ops, foi uma falha minha:

A função SendMessageToolTip encapsula a sendmessage:

Código: Selecionar todos

#pragma BEGINDUMP

#include <windows.h>

#include "hbapi.h"
HB_FUNC( SENDMESSAGESTRING )
{
   hb_retnl( ( LONG ) SendMessage( ( HWND ) hb_parnl( 1 ), ( UINT ) hb_parni( 2 ), ( WPARAM ) hb_parnl( 3 ), ( LPARAM ) ( LPSTR ) hb_parc( 4 ) ) );
}

HB_FUNC( SENDMESSAGETOOLTIP )
{
   hb_retnl( ( LONG ) SendMessage( ( HWND ) hb_parnl( 1 ), ( UINT ) hb_parni( 2 ), ( WPARAM ) hb_parnl( 3 ), ( LPARAM ) hb_parnl( 4 ) ) );
}

#pragma ENDDUMP