Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #3  
Старый 28.02.2012, 23:03
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

Код:
interface

uses
  Windows,Messages;

  function DelIcon(hWindow:HWND; ID:Cardinal):BOOL;
  function AddIcon(hWindow:HWND; ID:Cardinal; ICON:hIcon;
                   CallbackMessage:Cardinal; Tip:PChar):BOOL;

const
  NIM_ADD         = $00000000;
  NIM_DELETE      = $00000002;

  NIF_MESSAGE     = $00000001;
  NIF_ICON        = $00000002;
  NIF_TIP         = $00000004;

type
  TNotifyIconData = record
    cbSize: DWORD;
    Wnd: HWND;
    uID: UINT;
    uFlags: UINT;
    uCallbackMessage: UINT;
    hIcon: HICON;
    szTip: array [0..63] of Char;
  end;
  PNotifyIconData=^TNotifyIconData;

  function Shell_NotifyIcon(dwMessage: DWORD; lpData: PNotifyIconData): BOOL; stdcall;

implementation

function Shell_NotifyIcon; external 'shell32.dll' name 'Shell_NotifyIconW';

function AddIcon(hWindow:HWND; ID:Cardinal; ICON:hIcon;
                 CallbackMessage:Cardinal; Tip:PChar):BOOL;
var
  tmp:TNotifyIconData;
begin
  FillChar(tmp, SizeOf(TNotifyIconData), 0);
  with tmp do
  begin
    cbSize:=SizeOf(TNotifyIconData);
    Wnd:=hWindow;
    uID:=ID;
    uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
    uCallbackMessage:=CallbackMessage;
    hIcon:=ICON;
    lstrcpyn(szTip, Tip, SizeOf(szTip));
  end;
  Result:=Shell_NotifyIcon(NIM_ADD,@tmp);// показываем иконку
end;

function DelIcon(hWindow:HWND; ID:Cardinal):BOOL;
var
  tmp:TNotifyIconData;
begin
  FillChar(tmp, SizeOf(TNotifyIconData), 0);
  tmp.cbSize:=SizeOf(TNotifyIconData);
  tmp.Wnd:=hWindow;
  tmp.uID:=ID;
  Result:=Shell_NotifyIcon(NIM_DELETE,@tmp);// убираем иконку
end;

function AddIcon(hWindow:HWND; ID:Cardinal; ICON:hIcon; CallbackMessage:Cardinal; Tip:PChar):BOOL;// добавить иконку

hWindow - окно, получающее сообщения от иконки
ID - ID иконки
ICON - сама иконка, полученая, например, LoadIcon(HInstance,'Icon_1')
CallbackMessage - идентификатор сообщения от иконки
Tip - всплывающая подсказка над иконкой

function DelIcon(hWindow:HWND; ID:Cardinal):BOOL;// удалить иконку

hWindow - окно, получающее сообщения от иконки
ID - ID иконки

скрыть окно программы
Код:
if AddIcon(Window,TRAY_ID_GLOBAL,
                        LoadIcon(HInstance,'Icon_1'),
                        TRAY_CLICK,TRAY_HINT) then
                               SetWindowPos(Window,0,0,0,0,0,
                               SWP_NOMOVE or SWP_NOSIZE or WP_HIDEWINDOW);

показать окно программы
Код:
if DelIcon(Window,TRAY_ID_GLOBAL) then
                       SetWindowPos(Window,0,0,0,0,0,SWP_NOMOVE or
                       SWP_NOSIZE or SWP_SHOWWINDOW);
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:42.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025