Clipper On Line • Ver Tópico - Tooltip com imagem
Página 1 de 1

Tooltip com imagem

MensagemEnviado: 13 Dez 2018 10:41
por Kapiaba
Tooltip com imagem:

    // Tooltip com imagem. Pode-se usar 1, 2 e 3.
    oLbx:cTooltip :={ "Click na ListBox Para Editar...",                       ;
                      "CADASTRO DE DADOS PARA PROPOSTA", 1, CLR_WHITE, CLR_HBLUE }


Abs.

Tooltip com imagem

MensagemEnviado: 13 Dez 2018 13:04
por rochinha
Amiguinhos,

kapiaba
Tem fotu?

Tooltip com imagem

MensagemEnviado: 13 Dez 2018 15:36
por Kapiaba
Claro que sim meu Rey()

CTOOLTIP.png


Abs.

Tooltip com imagem

MensagemEnviado: 13 Dez 2018 17:08
por rochinha
Amiguinhos,

Creio que aqueles números 1,2 e 3 sejam os números que definem os ícones padrão do registro do Windows para mensagens tipificadas.

Veja dentro de seu aplicativo qual o ID de uma imagem que você apresenta nas telas, qualquer coisa que esteja dentro dos RCs do seu aplicativo e recompile para ver se aparece na dica.

Tooltip com imagem

MensagemEnviado: 13 Dez 2018 18:51
por JoséQuintas

Tooltip com imagem

MensagemEnviado: 13 Dez 2018 18:53
por JoséQuintas
Faltou destacar esta parte do texto.

tooltipicon.png


enviar mensagens do Windows a GTWVG faz.... rs

Tooltip com imagem

MensagemEnviado: 13 Dez 2018 18:57
por JoséQuintas
Finalmente, respondendo a pergunta do Rochinha, que pode ou não ser aplicada a Fivewin....

https://docs.microsoft.com/pt-br/windows/desktop/Controls/ttm-settitle

tooltip2.png

Tooltip com imagem

MensagemEnviado: 14 Dez 2018 16:01
por rochinha
Amiguinhos,

Vejam:
DLL32 FUNCTION LoadIconA;
      ( hInstance AS LONG, ;
        lpIconName AS STRING ) ;
   AS LONG PASCAL;
   LIB "USER32"


DLL32 FUNCTION SendMessaA;
      ( hwnd AS LONG, ;
        wMsg AS LONG, ;
        wParam AS LONG, ;
        @lParam AS LPSTR ) ;
   AS LONG PASCAL;
   FROM "SendMessageA" LIB "USER32"


DLL.CH
// Copyright FiveTech 1993-03

#ifndef _DLL_CH
#define _DLL_CH

#ifndef _C_TYPES
   #define _C_TYPES
   #define VOID     0
   #define BYTE     1
   #define CHAR     2
   #define WORD     3

   #ifdef __CLIPPER__
      #define _INT     4         // conflicts with Clipper Int()
   #else
      #define _INT     7
   #endif

   #define BOOL     5
   #define HDC      6
   #define LONG     7
   #define STRING   8
   #define LPSTR    9
   #define PTR     10
   #define _DOUBLE 11         // conflicts with BORDER DOUBLE
   #define DWORD   12
#endif

#translate NOREF([@]<x>) => <x>

#ifndef __HARBOUR__
  #ifndef __XPP__
     #ifndef __CLIPPER__
        #ifndef __C3__
           #define __CLIPPER__
        #endif
     #endif
  #endif
#endif

#ifndef __CLIPPER__
   #translate DLL32 => DLL
#endif

//----------------------------------------------------------------------------//

#xcommand DLL [<static:STATIC>] FUNCTION <FuncName>( [ <uParam1> AS <type1> ] ;
                                                     [, <uParamN> AS <typeN> ] ) ;
             AS <return> [<pascal:PASCAL>] [ FROM <SymName> ] LIB <*DllName*> ;
       => ;
          [<static>] function <FuncName>( [NOREF(<uParam1>)] [,NOREF(<uParamN>)] ) ;;
             local hDLL := If( ValType( <DllName> ) == "N", <DllName>, LoadLibrary( <(DllName)> ) ) ;;
             local uResult ;;
             local cFarProc ;;
             if Abs( hDLL ) > 32 ;;
                cFarProc = GetProcAddress( hDLL,;
                If( [ Empty( <SymName> ) == ] .t., <(FuncName)>, <SymName> ),;
                [<.pascal.>], <return> [,<type1>] [,<typeN>] ) ;;
                uResult = CallDLL( cFarProc [,<uParam1>] [,<uParamN>] ) ;;
                If( ValType( <DllName> ) == "N",, FreeLibrary( hDLL ) ) ;;
             else ;;
                MsgAlert( "Error code: " + LTrim( Str( hDLL ) ) + " loading " + ;
                If( ValType( <DllName> ) == "C", <DllName>, Str( <DllName> ) ) ) ;;
             end ;;
          return uResult

//----------------------------------------------------------------------------//
#xcommand DLL32 [<static:STATIC>] FUNCTION <FuncName>( [ <uParam1> AS <type1> ] ;
                                                      [, <uParamN> AS <typeN> ] ) ;
             AS <return> [<pascal:PASCAL>] [ FROM <SymName> ] LIB <*DllName*> ;
       => ;
          [<static>] function <FuncName>( [NOREF(<uParam1>)] [,NOREF(<uParamN>)] ) ;;
             local hDLL := If( ValType( <DllName> ) == "N", <DllName>, LoadLib32( <(DllName)> ) ) ;;
             local uResult ;;
             local cFarProc ;;
             if Abs( hDLL ) <= 32 ;;
                MsgAlert( "Error code: " + LTrim( Str( hDLL ) ) + " loading " + <DllName> ) ;;
             else ;;
                cFarProc = GetProc32( hDLL,;
                If( [ Empty( <SymName> ) == ] .t., <(FuncName)>, <SymName> ),;
                [<.pascal.>], <return> [,<type1>] [,<typeN>] ) ;;
                uResult = CallDLL32( cFarProc [,<uParam1>] [,<uParamN>] ) ;;
                If( ValType( <DllName> ) == "N",, FreeLib32( hDLL ) ) ;;
             end ;;
          return uResult


O comando DLL32... é somente um wrappler para função CallDLL32().

Tooltip com imagem

MensagemEnviado: 14 Dez 2018 16:34
por JoséQuintas
Se for Harbour:
wapi_SendMessage(), wapi_LoadIcon(), wapi_LoadImage()
E manual no MSDN da Microsoft.

Tooltip com imagem

MensagemEnviado: 14 Dez 2018 16:50
por rochinha
Amiguinhos,

Como visto anteriormente, Jose Quintas, a função LoadIcon() recebeu como parâmetro IDI_INFORMATION mas os valores possíveis são:

IDI_APPLICATION Default application icon.
IDI_ASTERISK Same as IDI_INFORMATION.
IDI_ERROR Hand-shaped icon.
IDI_EXCLAMATION Same as IDI_WARNING.
IDI_HAND Same as IDI_ERROR.
IDI_INFORMATION Asterisk icon.
IDI_QUESTION Question mark icon.
IDI_WARNING Exclamation point icon.
IDI_WINLOGO Windows logo icon.
IDI_SHIELD Security Shield icon.

LoadIcon() retorna um pointer, talvez seja possível usar LoadIconWithScaleDown() que manipula ícones de tamanho fora do padrão das mensagens ou LoadImage():
DLL32 FUNCTION LoadImageA;
      ( hInst AS LONG, ;
        lpsz AS STRING, ;
        un1 AS LONG, ;
        n1 AS LONG, ;
        n2 AS LONG, ;
        un2 AS LONG ) ;
   AS LONG PASCAL;
   LIB "USER32"


Possíveis números identificadores do ícone padrão na Shell32.dll:
IDI_APPLICATION (32512) Default application icon.
IDI_ASTERISK (32516) Asterisk icon. Same as IDI_INFORMATION.
IDI_ERROR (32513) Hand-shaped icon.
IDI_EXCLAMATION (32515) Exclamation point icon. Same as IDI_WARNING.
IDI_HAND (32513) Hand-shaped icon. Same as IDI_ERROR.
IDI_INFORMATION (32516) Asterisk icon.
IDI_QUESTION (32514) Question mark icon.
IDI_SHIELD (32518) Security Shield icon.
IDI_WARNING (32515) Exclamation point icon.
IDI_WINLOGO (32517) Windows logo icon