امروز از TrayIcon میگم براتون.
چی هست ؟!
کنار ساعت ویندوز رو نگاه کن چند تا ازشون میبینی
. آره همون آیکون ها رو می گم.
خیلی کار راحتیه!
اول خط زیر یادتون نره :
#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 انجام بدید !
دیدگاه خود را بیان کنید.
باید وارد سایت شده باشید برای دیدگاه دادن