کنار ساعت ويندوز رو نگاه کن چند تا ازشون ميبينی . آره همون آي****** ها رو می گم.
خيلی کار راحتيه!
اول خط زير يادتون نره :
#include <SHELLAPI.H>
برا اينکار يه آي****** درست کنيد يا از همون آي****** استاندارد فعلا استفاده کنيد و ID اونو از قسمت resource و در پوشه Icon پيدا کنيد. بصورت استاندارد يه آي****** با ID (IDR_MAINFRAME) ايجاد ميکنه که آي****** MFC هستش.
حالا بايد در اين ۳ خط زير هر جا IDI_ICON1 که آی دی انتخابی من برا آي****** مورد نظرم بوده, آی دی آي****** خودتون رو بگذاريد:
HICON hIcon;
HINSTANCE hInst = AfxFindResourceHandle(MAKEINTRESOURCE(IDI_ICON1),RT_GROUP_ICON);
hIcon = (HICON)LoadImage(hInst,MAKEINTRESOURCE(IDI_ICON1),IMAGE_ICON,16,16,LR_DEFAULTCOLOR);
hIcon رو قراره به يه تابع بديم که بدونه کدوم آي****** رو ميخواهيم برامون بگذاره.
حالا يه متغيير بصورت زير تعريف کنيد :
NOTIFYICONDATA myicon;
با اين متغيير يکسری اطلاعات به تابع مربوط به کار مورد نظر ما پاس ميشه.
حالا مقاديری که بايد مقدار دهی کنيد رو دونه دونه جلوی هر خط مثال زير توضيح ميدم :
myicon.hWnd=this->GetSafeHwnd();//هندلی به ديالوگی می خوايد پيغامهای ويندوز به اون منتقل بشه که برای استفاده از منو روی آي****** مورد نظر اهميت پيدا ميکنه
myicon.cbSize=sizeof(NOTIFYICONDATA);//رو که مقدار دهی ميکنه که هميشه همينهNOTIFYICONDATAاندازه متغيير
myicon.uFlags=NIF_MESSAGE | NIF_ICON | NIF_TIP | NIF_INFO;// امکاناتی که می خوايد اين آي****** داشته باشه از جمله پيغامهای ويندوز و نمايش خود آي****** و نمايش بالون محتوی توضی در مورد آي******
myicon.uCallbackMessage=IDD_DIALOG1;// آی دی ديالوگی که پيغامهای ويندوز به اون منتقل ميشه
myicon.hIcon=hIcon;//متغييری که بالا برای آي****** خودمون تنظيم کرديم
myicon.szInfoTitle="My Title";//تيتر بالونی که روی آي****** ايجاد ميشه
myicon.szInfo="My information";// متن اصلی بالونی که روی آي****** ايجاد ميشه
myicon.szTip="Mouse over information (Tool Tip !)";// متنی که وقتی موس روی آي****** نگهداشته ميشه نشمون ميده
myicon.uTimeout=20;// زمانی که بالون نمايش داده ميشه
Shell_NotifyIcon(NIM_ADD,&myicon);// با اين تابع آي****** در کنار ساعت نمايش داده ميشه
برای مخفی کردن ديالوگ هم از تابع زير استفاده کنيد :
ShowWindow(SW_HIDE);
** نکته:
بايد بگم که موارد بالون و ToolTip در VisualC++6 با مشکل همراه هستش و ظاهرا support نمی کنه و بايد اين رو توی VisualC++.NET انجام بديد !