Главная страница
    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.043 c
1-1110471877
nes
2005-03-10 19:24
2005.03.27
BRCC32.exe (Borland Resource CommandLine Compiler)


4-1108153857
AquaForm
2005-02-11 23:30
2005.03.27
В буфере обмена ?????? вместо русского текста


1-1110895436
Mamed
2005-03-15 17:03
2005.03.27
UrlEncode


1-1110636174
Денч
2005-03-12 17:02
2005.03.27
Объединенные ячейки в excel


4-1108178714
nickmas
2005-02-12 06:25
2005.03.27
Как убрать программу из трея?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский