Avatar billede nino Nybegynder
23. juli 2002 - 22:08 Der er 8 kommentarer og
1 løsning

balloon tips

er der en header fil til balloon tips? eller skal de selv kodes 100% ?
Avatar billede torbenmelander Nybegynder
23. juli 2002 - 22:40 #1
Nu koder jeg normalt ikke i C/C++ men Delphi ... i Delphi kan man lave Baloon Tips ved at bruge en komponent ... men jeg ved ikke om man har de muligehder i C/C+++ ...

Måske kan du bruge denne API-kode til noget:
http://www.rentacoder.com/xq/ASP/txtCodeId.35381/lngWid.-1/qx/vb/scripts/ShowCode.htm
Avatar billede jpk Nybegynder
24. juli 2002 - 08:33 #2
Hvilket miljø bruger du?
Skal det være ren C++?
På hvilke elementerønsker du at lave tool tips?
Avatar billede borrisholt Novice
24. juli 2002 - 08:47 #3
Nu HAR jeg set der er C++ katgorien, og jeg ved godt det er Delphi kode jeg poster !!!!

Jeg har selv haft en del døje med at finde ud af det .... Det Delphi er stort set ren Win32 så det skulle være muligt at porte til VC++ (Jeg vil gerne have en kopi). Og er det til C++ Builder er det MEGET nemt ...

unit TrayStuff;

interface

uses
  SysUtils, Windows, ShellAPI;


type
  NotifyIconData_50 = record // defined in shellapi.h
    cbSize: DWORD;
    Wnd: HWND;
    uID: UINT;
    uFlags: UINT;
    uCallbackMessage: UINT;
    hIcon: HICON;
    szTip: array[0..MAXCHAR] of AnsiChar;
    dwState: DWORD;
    dwStateMask: DWORD;
    szInfo: array[0..MAXBYTE] of AnsiChar;
    uTimeout: UINT; // union with uVersion: UINT;
    szInfoTitle: array[0..63] of AnsiChar;
    dwInfoFlags: DWORD;
  end{record};

const
  NIF_INFO      =      $00000010;
  NIIF_NONE    =      $00000000;
  NIIF_INFO    =      $00000001;
  NIIF_WARNING  =      $00000002;
  NIIF_ERROR    =      $00000003;



type
  TBalloonTimeout = 10..30{seconds};
  TBalloonIconType = (bitNone,    // no icon
                      bitInfo,    // information icon (blue)
                      bitWarning, // exclamation icon (yellow)
                      bitError);  // error icon (red)

function RemoveTrayIcon((*const Window: HWND;*) const IconID: Byte): Boolean;
function AddTrayIconMsg(const Window: HWND; const IconID: Byte; const Icon: HICON; const Msg: Cardinal; const Hint: String = ''): Boolean;
function AddTrayIcon(const Window: HWND; const IconID: Byte; const Icon: HICON; const Hint: String = ''): Boolean;
function BalloonTrayIcon(const Timeout: TBalloonTimeout; const BalloonText, BalloonTitle: String; const BalloonIconType: TBalloonIconType): Boolean;

var
  NID_50 : NotifyIconData_50;

implementation


function AddTrayIcon(const Window: HWND; const IconID: Byte; const Icon: HICON; const Hint: String = ''): Boolean;
begin
  FillChar(NID_50, SizeOf(NotifyIconData_50), 0);
  with NID_50 do
  begin
    cbSize := SizeOf(NotifyIconData_50);
    Wnd := Window;
    uID := IconID;
    if Hint = '' then begin
      uFlags := NIF_ICON;
    end{if} else begin
      uFlags := NIF_ICON or NIF_TIP;
      StrPCopy(szTip, Hint);
    end{else};
    hIcon := Icon;
  end{with};
  Result := Shell_NotifyIcon(NIM_ADD, @NID_50);
end;

function AddTrayIconMsg(const Window: HWND; const IconID: Byte; const Icon: HICON; const Msg: Cardinal; const Hint: String = ''): Boolean;
begin
  FillChar(NID_50, SizeOf(NotifyIconData_50), 0);
  with NID_50 do
  begin
    cbSize := SizeOf(NotifyIconData_50);
    Wnd := Window;
    uID := IconID;
    if Hint = '' then
    begin
      uFlags := NIF_ICON or NIF_MESSAGE;
    end{if}
    else
    begin
      uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
      StrPCopy(szTip, Hint);
    end{else};
    uCallbackMessage := Msg;
    hIcon := Icon;
  end{with};
  Result := Shell_NotifyIcon(NIM_ADD, @NID_50);
end;

{removes an icon}
function RemoveTrayIcon((*const Window: HWND;*) const IconID: Byte): Boolean;
begin
///  FillChar(NID, SizeOf(NotifyIconData), 0);
  with NID_50 do
  begin
//    cbSize := SizeOf(NotifyIconData);
//    Wnd := Window;
    uID := IconID;
  end{with};
  Result := Shell_NotifyIcon(NIM_DELETE, @NID_50);
end;


function BalloonTrayIcon(const Timeout: TBalloonTimeout; const BalloonText, BalloonTitle: String; const BalloonIconType: TBalloonIconType): Boolean;
const
  aBalloonIconTypes : array[TBalloonIconType] of Byte = (NIIF_NONE, NIIF_INFO, NIIF_WARNING, NIIF_ERROR);
begin
// FillChar(NID_50, SizeOf(NotifyIconData_50), 0);
  with NID_50 do
  begin
//    cbSize := SizeOf(NotifyIconData_50);
//    Wnd := Window;
//    uID := IconID;
    uFlags := NIF_INFO;
    StrPCopy(szInfo, BalloonText);
    uTimeout := Timeout * 1000;
    StrPCopy(szInfoTitle, BalloonTitle);
    dwInfoFlags := aBalloonIconTypes[BalloonIconType];
  end{with};
  Result := Shell_NotifyIcon(NIM_MODIFY, @NID_50);
end;

Jens B
Avatar billede wisen Nybegynder
24. juli 2002 - 09:36 #4
Avatar billede wisen Nybegynder
24. juli 2002 - 09:37 #5
Avatar billede borrisholt Novice
24. juli 2002 - 09:58 #6
Det bør dog nævnes at det første link ikke er et "rigtigt" Ballon hint. Nummer to er ... Den kendte jeg ikke :-)

Jens B
Avatar billede borrisholt Novice
24. juli 2002 - 10:01 #7
hans EXE fil virker ikke ...  Der er ingen BaloonHint i !

Jens B
Avatar billede borrisholt Novice
24. juli 2002 - 10:04 #8
Er der ikke en der gidder teste hans kode (har inge C++ compiler her på job).

Hvis han baloon ting virker .... Skal jeg nemlig bruge den i Delphi .. Og hvis det ikke virker gidder jeg ikke porte det ....

Jens B
Avatar billede nino Nybegynder
30. juli 2002 - 01:19 #9
wisen: det første link gav et skub i den rigtige retning :-) det virker næsten :D

borrisholt: jo den virker fint!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester