如何才能在dll中处理窗体的PreTranslateMessage过程? 希望窗体的PreTranslateMessage处理过程能在dll中完成,应该用哪个hook ?WH_CALLWNDPROC? WH_CALLWNDPROCRET? WH_GETMESSAGE? 谁可以给出简单的示例代码? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 导出一个函数. 由主程序把msg给dll 有代码,不过在公司里不能贴代码。大体上就是从dll中导出一个函数,而在主程序中调用这个函数吧PreTranslateMessage的参数传过去 从DLL导出一个函数,在主程序的PreTranslateMessage把参数传过去处理。 1、定义DLL导出消息处理函数原型typedef LPWSTR (__stdcall* DllMsgProcess)(MSG* pMsg);2、定义消息处理函数指针,dll句柄DllMsgProcess pDllMsgProcess;HINSTANCE hinstLib;3、加载dll得到其中消息处理函数指针hinstLib = LoadLibrary("myDll.dll");if (hinstLib != NULL){pDllMsgProcess = (DllMsgProcess)GetProcAddress(hinstLib, "DllMsgProcess");}4、在窗口处理BOOL CMainFrame::PreTranslateMessage(MSG* pMsg){ // TODO: 在此添加专用代码和/或调用基类 pDllMsgProcess(pMsg) return CFrameWnd::PreTranslateMessage(pMsg);}5、退出卸载dllFreeLibrary(hinstLib); 读取文件前256个位元的资料,并用十六进制显示 mfc如何实现点击打开按钮,变成关闭,再点击又转换成打开 GDI+画圆角矩形出现的问题 vc中,怎么在窗体中显示二进制的信息? 如何设计自己的菜单类 gridctrl中能动态增加行数吗 求救,在SCrollView里面动态创建按钮遇到问题了! VC的自动提示没了... 在Com中DrawIcon的问题? 以数字做后缀名的电子文档,该怎样打开和阅读? [求助]MFC编程里面一个SendMessage的问题? 一个字符串格式化问题。
typedef LPWSTR (__stdcall* DllMsgProcess)(MSG* pMsg);2、定义消息处理函数指针,dll句柄
DllMsgProcess pDllMsgProcess;
HINSTANCE hinstLib;3、加载dll得到其中消息处理函数指针hinstLib = LoadLibrary("myDll.dll");
if (hinstLib != NULL)
{
pDllMsgProcess = (DllMsgProcess)GetProcAddress(hinstLib, "DllMsgProcess");
}4、在窗口处理
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
pDllMsgProcess(pMsg)
return CFrameWnd::PreTranslateMessage(pMsg);
}5、退出卸载dll
FreeLibrary(hinstLib);