Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.27;
Скачать: CL | DM;

Вниз

AllocateHWND   Найти похожие ветки 

 
Grief ©   (2005-02-11 16:17) [0]

Уважаемые мастера, мне по зарез надо сделать сворачивание в трей в API Delphi, для этого необходимо вызвать AllocateHWND и DeallocateHWND, чем их можно заменить? И, если не сложно, покажите, как свернуть прогу в трей без юнита форм. Заранее благодарен, Grief


 
Grief ©   (2005-02-12 09:01) [1]

Ну помогите, пожалуста, мне очень нужно....


 
Kerk ©   (2005-02-12 09:43) [2]

Создавай окно на API .. в чем проблема?


 
Grief ©   (2005-02-12 22:13) [3]

я несколько понял... но когда надо указать handle notifyIconData возникает вопрос, а что же собственно указывать?


 
Kerk ©   (2005-02-12 22:17) [4]

Grief ©   (12.02.05 22:13) [3]

вот хендл созданного на API окна и указывай


 
Grief ©   (2005-02-12 23:09) [5]

см выше, топ как добавить значок в трей... я там весь глюк описал...
а вкратце - иконка создается в трее, а при наведении курсора исчезает...


 
Kerk ©   (2005-02-12 23:12) [6]

Для добавления иконки в трей сабж вызывать не нужно. Код покажи.


 
grom   (2005-02-13 14:54) [7]

program cdOpenER;
uses Windows, Messages, ShellApi, MMSystem;

type tip= array[0..5]of char;
var  wc : TWndClassEx;
    MainWnd, mmenu, pmenuo ,pmenuc ,pmenus : HWND;
    Mesg : TMsg;
    Buf, curdir : array[0..500]of char;
    i, j ,x ,y : Integer;
    poin : tpoint;
    str1: tip;
    icone : TNOTIFYICONDATA;

function creatmen : boolean;
begin
 mmenu:=createpopupmenu;
 pmenuo:=createmenu;
 pmenuc:=createmenu;
 pmenus:=createmenu;

 appendmenu(mmenu,mf_Popup,pmenuo,"open");
 appendmenu(mmenu,mf_Popup,pmenuc,"close");
 insertmenu(pmenus,word(-1),mf_ByPosition,Wm_user+21,"about");
 insertmenu(pmenus,word(-1),mf_ByPosition,Wm_user+24,"help");
 insertmenu(pmenus,word(-1),mf_ByPosition,Wm_user+23,"refresh");
 insertmenu(pmenus,word(-1),mf_ByPosition,Wm_user+22,"exit");
 appendmenu(mmenu,mf_Popup,pmenus,"options");
end;
function WindowProc(wnd:HWND; Msg : Cardinal; Wparam:Wparam; Lparam:Lparam):Lresult;
stdcall;
Begin
case msg of
 wm_user+31 :
   case lparam of
    WM_RBUTTONDOWN :
    begin
     getcursorpos(poin);
     x:=poin.x;
     y:=poin.y;
     SetForegroundWindow(Wnd);
     TrackPopupMenuEx(mMenu,0,x, y,Wnd, Nil);
    end;
   end;
 wm_destroy :
   Begin
    Shell_NotifyIcon(nim_delete,@icone);
    postquitmessage(0);
    exit;
    Result:=0;
   End;
 wm_Command :
   case wparam of
    //......opencd........

    //......closecd.......

    //...other..command...
    wm_user+21 : messagebox(wnd,"(c) mNtek 2004","about",mb_ok);
    wm_user+22 :
      begin
       Shell_NotifyIcon(nim_delete,@icone);
       postquitmessage(0);
      end;
    wm_user+23 :
      begin

       creatmen;
      end;
    wm_user+24 : if
    shellexecute(wnd,"open","help.txt",nil,curdir,SW_SHOW)=ERROR_FILE_NOT_FOUND
    then messagebox(wnd,"couldn""t find help.txt","error",mb_ok);
   end;
 else Result:=DefWindowProc(wnd,msg,wparam,lparam);
end;
End;
var  xPos,yPos,nWidth,nHeight : Integer;
begin
 if findwindow("CdOpenER","CdOpenER")<>0 then exit;

 getcurrentdirectory(sizeof(curdir),curdir);
 with wc do begin
  cbSize:=sizeof(wc);
  style:=cs_hredraw or cs_vredraw;
  lpfnWndProc:=@WindowProc;
  cbClsExtra:=0;
  cbWndExtra:=0;
  hInstance:=HInstance;
  hIcon:=ExtractIcon(hinstance,"cdOpenER.exe",0);
  hCursor:=LoadCursor(0,idc_arrow);
  hbrBackground:=COLOR_BTNFACE+1;
  lpszMenuName:=nil;
  lpszClassName:="CdOpenER";
 end;
 creatmen;
 RegisterClassEx(wc);
 xPos:=0;
 yPos:=0;
 nWidth:=200;
 nHeight:=50;
 MainWnd:=CreateWindowEx(0,"CdOpenER","CdOpenER",
   WS_OVERLAPPED or WS_SYSMENU,xPos,yPos,nWidth,nHeight,0,0,
   Hinstance,nil);
 with Icone do begin
   cbSize := sizeof(TNOTIFYICONDATA);
   wnd := mainwnd;
   uID := wm_user+72;
   uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
    hIcon := LoadIcon(0, IDI_EXCLAMATION);
   uCallbackMessage := WM_User+31;
   sztip:="CdOpenER";
 end;
 Shell_NotifyIcon(nim_add,@icone);
 ShowWindow(MainWnd,sw_hide);
While GetMessage(Mesg,0,0,0) do
begin
 TranslateMessage(Mesg);
 DispatchMessage(Mesg);
end;
end.


 
Grief ©   (2005-02-13 22:17) [8]

Я уже понял свои ошибки, всем спасибо!!!!



Страницы: 1 вся ветка

Текущий архив: 2005.03.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
14-1110281620
Свердликовский Михаил
2005-03-08 14:33
2005.03.27
Заработок на Freeware


9-1101563055
negrila
2004-11-27 16:44
2005.03.27
Поиск путей на графе


3-1109253535
Alex_V
2005-02-24 16:58
2005.03.27
Доступ к базам Clarion


14-1109994803
Копир
2005-03-05 06:53
2005.03.27
Откройте свою планету


14-1109958728
SOFS
2005-03-04 20:52
2005.03.27
Москва