æ¯ä¸æ¯æ¾ç¤ºç¨åºçå¾æ ï¼å¨ç¨åºå建çæ¶åå°±è¦å建å¾æ ï¼ç¼è¯åä¸è½åå è½½å¾æ äºï¼ä¸è¿ä½ å¯ä»¥ä¿®æ¹
å¨Windowsæä½ç³»ç»ä¸ï¼ä»»å¡æ çå³è¾¹(æç)ä¼å¸¸é©»å 个å¾æ ï¼å¦è¾å
¥æ³åæ¢å¾æ ãé³éæ§å¶å¾æ çï¼æ¤å¤æ们è¿ç»å¸¸éå°å
·ææçå¾æ ç软件ï¼å¦éå±±è¯é¸ãå®æ¶çæµåè½çææ¯è½¯ä»¶çãè¿äºè½¯ä»¶å¨åå°è¿è¡ï¼é常ä¸å ç¨å¤ªå¤çå±å¹èµæºï¼åªå¨éç¥æ ä¸æ¾ä¸ä¸ªå°å°çæ å¿ï¼å¿
è¦æ¶æ们å¯ä»¥éè¿ç¨é¼ æ ç¹å»å¾æ 对å
¶è¿è¡éåæä½ææ¿æ´»å
¶ä¸»çªå£ãææ¶æ们èªå·±ç¼åçç¨åºä¹å¸ææ类似çææï¼æ¬æå°è¯¦ç»å°ä»ç»ç¨VC设计æçå¾æ ç¨åºçæ¹æ³ã
ä¸ãNOTIFYICONDATAç»æ
NOTIFYICONDATAç»æå
å«äºç³»ç»ç¨æ¥å¤çæçå¾æ çä¿¡æ¯ï¼å®å
æ¬éæ©çå¾æ ãåè°æ¶æ¯ãæ示æ¶æ¯åå¾æ 对åºççªå£çå
容ãå
¶å®ä¹ä¸ºï¼
typedef structâNOTIFYICONDATA { DWORD cbSize; //以åè为åä½çè¿ä¸ªç»æçå¤§å° HWND hWnd; //æ¥æ¶æçå¾æ éç¥æ¶æ¯ççªå£å¥æ UINT uID; //åºç¨ç¨åºå®ä¹ç该å¾æ çIDå· UINT uFlags; //设置该å¾æ çå±æ§ UINT uCallbackMessage; //åºç¨ç¨åºå®ä¹çæ¶æ¯IDå·ï¼æ¤æ¶æ¯ä¼ éç»hWnd HICON hIcon; //å¾æ çå¥æ char szTip[64]; //é¼ æ åçå¨å¾æ ä¸æ¾ç¤ºçæç¤ºä¿¡æ¯ } NOTIFYICONDATA, ?PNOTIFYICONDATA;
该ç»æä¸ï¼æåuFlagså¯ä»¥æ¯ä¸åçç»åæå
¶ä¸ä¹ä¸ï¼
âNIF_ICONï¼è®¾ç½®æåhIconææ
âNIF_MESSAGEï¼è®¾ç½®æåuCallbackMessageææ
âNIF_TIPï¼è®¾ç½®æåszTipææ
äºãShell_NotifyIconå½æ°
å
¨å±å½æ°Shell_NotifyIcon()ç¨äºå¨æçä¸å¢å ãå é¤æä¿®æ¹å¾æ ãå
¶åå为ï¼
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon( DWORD dwMessage,PNOTIFYICONDATA pnid);
Pnidæ¯ä¸é¢çNOTIFYICONDATAç»æçæéã
dwMessageæ¯è¢«ä¼ éçæ¶æ¯ï¼å¯ä»¥æ¯ä»¥ä¸æ¶æ¯ä¹ä¸ï¼
âNIM_ADDï¼å¢å å¾æ
âNIM_DELETEï¼å é¤å¾æ
âNIM_MODIFYï¼ä¿®æ¹å¾æ
ä¸ãæçå¾æ ç¨åºè®¾è®¡ç¤ºä¾
é¦å
æ们ç¨AppWizardå建ä¸ä¸ªä¸åºäºææ¡£åè§å¾ç»æçåºç¨ç¨åºTrayãæ们并ä¸æ³å¨åºç¨ç¨åºå¯å¨æ¶æ¾ç¤ºä¸»çªå£ï¼æ以éè¦å é¤åºç¨ç¨åºç±»CTrayAppä¸æåå½æ°InitInstance()ç以ä¸ä¸¤å¥ä»£ç ï¼
pFrame-ãActivateFrame(); pFrame-ãShowWindow(SW_SHOW);
å¨CMainFrameç±»ä¸å å
¥NOTIFYICONDATAç»æçä¿æ¤æååém_tnidï¼å¹¶å¨å
¶OnCreateå½æ°ä¸returnè¯å¥åå å
¥çææçå¾æ ç代ç ï¼
m_tnid.cbSize=sizeof(NOTIFYICONDATA); m_tnid.hWnd=this-ãm_hWnd; m_tnid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP; m_tnid.uCallbackMessage=MYWM_NOTIFYICON; //ç¨æ·å®ä¹çåè°æ¶æ¯ CString szToolTip; szToolTip=_T("æçå¾æ å®ä¾"); _tcscpy(m_tnid.szTip, szToolTip); m_tnid.uID=IDR_MAINFRAME; HICON hIcon; hIcon=AfxGetApp()-ãLoadIcon(IDR_MAINFRAME); m_tnid.hIcon=hIcon; ::Shell_NotifyIcon(NIM_ADD,&&m_tnid); if(hIcon)::DestroyIcon(hIcon);
è¿åæ¶æ¯çIDåºå¨ä¸»æ¡æ¶ç±»ç头å½æ°ä¸å®ä¹ï¼
#define MYWM_NOTIFYICON WM_USER+1
为äºå¤çå¾æ è¿åæ¶æ¯ï¼å¦é¼ æ å·¦é®åå»ãé¼ æ å³é®åå»æ¶æ¯ï¼æ们éè½½WindowProc()å½æ°ãæ¤å¤ï¼æ们è¿å¸æå¨ä¸»æ¡æ¶çªå£æå°åæ¶å¾æ ä¸å¨ä»»å¡æ ç空ç½åºåºç°ï¼å¨æ¤å½æ°ä¸åæ¶ä½ç¸åºå¤çã
LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { switch(message){ case MYWM_NOTIFYICON: //å¦ææ¯ç¨æ·å®ä¹çæ¶æ¯ if(lParam==WM_LBUTTONDBLCLK){ //é¼ æ åå»æ¶ä¸»çªå£åºç° AfxGetApp()-ãm_pMainWnd-ãShowWindow(SW_SHOW); } else if(lParam==WM_RBUTTONDOWN){ //é¼ æ å³é®åå»å¼¹åºéå CMenu menu; menu.LoadMenu(IDR_RIGHT_MENU); //è½½å
¥äºå
å®ä¹çéå CMenu?pMenu=menu.GetSubMenu(0); CPoint pos; GetCursorPos(&&pos); pMenu-ãTrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pos.x,pos.y,AfxGetMainWnd()); } break; case WM_SYSCOMMAND: //å¦ææ¯ç³»ç»æ¶æ¯ if(wParam= =SC_MINIMIZE){ //æ¥æ¶å°æå°åæ¶æ¯æ¶ä¸»çªå£éè AfxGetApp()-ãm_pMainWnd-ãShowWindow(SW_HIDE); return 0; } break; } return CFrameWnd::WindowProc(message, wParam, lParam); }
为使åºç¨ç¨åºéåºæ¶å¾æ æ¶å¤±ï¼æ å°WM_DESTROYæ¶æ¯ï¼å¨OnDestroy()å½æ°ä¸å å
¥ï¼
::Shell_NotifyIcon(NIM_DELETE,&&m_tnid);
è³æ¤ï¼æçå¾æ ç¨åºç常è§åè½æ们åå·²å®ç°ãæ们è¿å¯ä»¥éè¿Shell_NotifyIcon()å½æ°çè°ç¨å®ç°ä¸åç¶æä¸å¾æ çæ¹å
温馨提示:内容为网友见解,仅供参考
为自制的C\/C++程序exe添加图标
打开VC6.0,点击文件--打开,打开对话框,选择自己已经编写好的C或C++源程序打开。打开源程序后,点击组建--编译,编译成功后,点击插入--资源,打开插入资源对话框。选择资源类型为Icon,单击右侧的“引入”按钮,打开引入资源对话框,选择你制作或下载的Icon图标引入。引入图标资源后,进入以下界面,单击...
C语言(VC++ 6.0 )生成的exe程序怎么样让它有图标?
首先准备好自己应用程序的图标,如果没有也没关系,自己在VC里画一个就是。步骤如下:菜单:Insert-->Resource,打开插入资源对话框,在下面选择Icon,之后,你可以点New新建一个图标,也可以点Import插入一个,不管你是新建的还是插入的,你都可以对图标进行编辑。编辑好图标之后,点保存,一般情况下会弹出...
VC6.0程序编译后如何为程序添加图标
首先我们用AppWizard创建一个不基于文档和视图结构的应用程序Tray。我们并不想在应用程序启动时显示主窗口,所以需要删除应用程序类CTrayApp中成员函数InitInstance()的以下两句代码:pFrame-〉ActivateFrame(); pFrame-〉ShowWindow(SW_SHOW);在CMainFrame类中加入NOTIFYICONDATA结构的保护成员变量m_tnid,并在...
用VC6.0编译出来的c语言.exe文件怎么加图标?
用res hacker或者exescope来加,打开EXE文件,图标那一栏就是了。或者直接搜索EXE图标修改器之类的软件,更傻瓜一些
vc6.0添加一个图标文件到resource files怎么用他作为程序图标
点击插入按钮,在弹出的菜单中点击bitmap,就可以看到你的图标文件了。保存起来。 点击File View,右键单击“xxx files",xxx是你的工程名,在弹出的菜单中点添加文件到工程,接着添加图标文件到工程,编译链接就行了
用vc++6.0编译成的c语言程序,如何给这个exe文件换一个图标啊?求详细步...
工程目录下,res文件夹中,把那个.ico文件用另外一个同名的图标文件覆盖就行了,这是最简单的。要不就要把你的图标文件导入工程,然后把m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME)这一句的ID改成你导入的图标的ID就行了
Vc 6.0的编译 连接和运行图标不见了 怎么能让它们出来?
在工具里面-》定制-》工具栏-》bulid minibar勾上就有了
vc++6.0怎么用
0是微软推出的C语言和C++语言的编译器,可以用来编写c\/c++程序(Windows程序,或者DLL,或者后台服务扩展,等等)。但是,注意,VC++6.0与C++标准略有区别。推荐直接使用VC++2010及以上版本,这些是比较符合C++标准的。如果非要用,建议去百度上搜一下VC++6.0入门的电子书,看一看就差不错了。
我用VC++6.0编好的程序,图标变成这样是什么原因,求大神解决?
解决方法(xp系统下):打开 任意文件夹 点击 工具菜单 的 文件夹选项 弹出文件夹选项对话框 点击 文件类型 在已注册的文件类型 中找找有没有cpp 选中它(没有就点新建)选中之后点击 高级 弹出编辑文件类型对话框 点击更改图标 弹出更改图标对话框 点击浏览 找到你的vc的msdev.exe打开它...就可以选...
vc++6.0怎么用
1.建工程 new->选择标签projects->在project name中填写你的工程名(例如myproject)->双击win32 console Application->选择一个空的工程->finish->ok 2.见文件 new->files->add to project选中在file 中输入文件名(注意:用C语言写文件明后要加.c例如文件名myfile.c,C++写就不需要直接就myfile...