dll 工程给exe 发消息

此种情况一般适应于由于该工程加了某些限制,导致某些功能不能在此工程里实现,或者该工程为主工程,不项工程文件太大,所以把要实现的功能通过发送消息的方式发给子工程,是某些功能在子工程里实现;

一、 工程文件中所要做的处理(即发消息的文件)

(1)在dll工程定义消息

#define WM_INCRESS_VOLUME  WM_USER + 102

(2)

HWND hWnd; 
hWnd = FindWindow(_T("VOLUMESET"),NULL);      //查找子工程的窗口类名 或窗口名  参考FindWindow参数1,2 的意义
PostMessage(hWnd,WM_INCRESS_VOLUME,0,0);   //给查到的窗口发送消息
return SSN_OK;

 二、子工程要做的处理

建一个有窗口的工程,运行时要把窗口隐藏 ,一般为Win32 Project工程;

(1)同样要定义 一样的消息

#define WM_INCRESS_VOLUME  WM_USER + 102

(2)在消息循环中判断添加的消息;

switch (message)
 {
 case WM_COMMAND:
  wmId    = LOWORD(wParam);
  wmEvent = HIWORD(wParam);
  // Parse the menu selections:
  switch (wmId)
  {
  case IDM_ABOUT:
   DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
   break;
  case IDM_EXIT:
   DestroyWindow(hWnd);
   break;
  default:
   return DefWindowProc(hWnd, message, wParam, lParam);
  }
  break;
 case WM_PAINT:
  hdc = BeginPaint(hWnd, &ps);
  // TODO: Add any drawing code here...
  EndPaint(hWnd, &ps);
  break;
 case WM_INCRESS_VOLUME:
  IncreaseVolume();

  break;
 case WM_DESTROY:
  PostQuitMessage(0);
  break;
 default:
  return DefWindowProc(hWnd, message, wParam, lParam);
 }
 return 0;
}

(3)在IncreaseVolume中实现相应功能;


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值