DLL消息映射解决方案
DLL消息映射
一个DLL实现系统托盘:
其他程序调用该DLL可以建立系统托盘,在该DLL(MFC DLL)里插入了菜单。
想在鼠标点击该托盘图标的时候显示菜单。
手工添加了消息映射:
BEGIN_MESSAGE_MAP(CSysTaryApp, CWinApp)
//{{AFX_MSG_MAP(CSysTaryApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
ON_MESSAGE(WM_NOTIFYICON, OnNotifyIcon)
END_MESSAGE_MAP()
但没反映。猜想是不是因为DLL没有消息循环,所以响应不了里面的消息。
后来想到回调函数来实现,不知道思路是否正确。请各位帮忙。
------解决方案--------------------
帮顶下~~
顺便学习下
搂主的消息映射加在了DLL文件里
你的应用程序本身的线程里支持那个消息么
你是在DLL文件里导出开线程的函数还是……?
我想知道你的消息是怎么和应用程序线程联系在一起的
------解决方案--------------------
必须要应用程序的消息映射进来
一个DLL实现系统托盘:
其他程序调用该DLL可以建立系统托盘,在该DLL(MFC DLL)里插入了菜单。
想在鼠标点击该托盘图标的时候显示菜单。
手工添加了消息映射:
BEGIN_MESSAGE_MAP(CSysTaryApp, CWinApp)
//{{AFX_MSG_MAP(CSysTaryApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
ON_MESSAGE(WM_NOTIFYICON, OnNotifyIcon)
END_MESSAGE_MAP()
但没反映。猜想是不是因为DLL没有消息循环,所以响应不了里面的消息。
后来想到回调函数来实现,不知道思路是否正确。请各位帮忙。
------解决方案--------------------
帮顶下~~
顺便学习下
搂主的消息映射加在了DLL文件里
你的应用程序本身的线程里支持那个消息么
你是在DLL文件里导出开线程的函数还是……?
我想知道你的消息是怎么和应用程序线程联系在一起的
------解决方案--------------------
必须要应用程序的消息映射进来