龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

利用VC从DLL传递消息到EXE(2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
消息至此就已经定义完毕,接下来我们就可以激活消息了,就可以用我们前面所说的PostMessage/SendMessage来发送消息了。 如:::PostMessage(hwnd,WM_MSG,0,1); PostMe

  消息至此就已经定义完毕,接下来我们就可以激活消息了,就可以用我们前面所说的PostMessage/SendMessage来发送消息了。

    如:::PostMessage(hwnd,WM_MSG,0,1);

       PostMessage:不用等消息返回。

    SendMessage:需要等消息返回。

  二、从DLL中传递消息到EXE

   在DLL中定义消息和上面的方法很相似,有两点不同的地方:

  1、  在DLL和应用程序中两个地方定义相同的消息。

  2、  应用程序调用DLL程序之后,需要将应用程序的窗口句柄传递给DLL,以便DLL中的消息返回。

  在DLL工程中:

  (1)       在stdafx.h头文件中添加消息定义:

  #define WM_MSG WM_USER + 102      

  (2)       添加启动消息的输出函数:
        CMessageDLLApp theApp;

  //发送消息

extern "C" _declspec(dllexport) void StartSendMessage(HWND hwnd)

{

                theApp.SendMessage(hwnd);

}     

            其中hwnd是接收消息的窗口句柄。

  (3)       添加启动消息的实现函数:

   在头文件中添加函数声明:


   void SendMessage(HWND hwnd);

  在CPP文件中添加函数实现

  //启动发送消息

 void CMessageDLLApp::SendMessage(HWND hwnd)

{

                  ::PostMessage(hwnd,WM_MSG,0,1);

}

  在应
 

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!
按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接