Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.036 c
6-1106577869
Urvin
2005-01-24 17:44
2005.03.27
Клиент-сервер


1-1110983578
hgd
2005-03-16 17:32
2005.03.27
Прервать onclose


14-1110430117
begin...end
2005-03-10 07:48
2005.03.27
С Днём рождения! 10 марта


1-1110821363
Quattro
2005-03-14 20:29
2005.03.27
проблема с FindFirst


14-1110281620
Свердликовский Михаил
2005-03-08 14:33
2005.03.27
Заработок на Freeware





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский