动态添加菜单

原创 2005年05月17日 13:03:00

利用windows系统消息WM_COPYDATA,从一个进程(程序)向另外一个进程(程序)发送消息,从而达到响应另外一个程序命令的功能。

在接收程序中添加WM_COPYDATA响应事件。并处理另外程序发送的消息。

BOOL CReceiverDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
 // TODO: Add your message handler code here and/or call default
 SetDlgItemText(IDC_MSG,(LPCTSTR)(pCopyDataStruct->lpData));
 CString *str;
 str = (CString*)(pCopyDataStruct->lpData);
 //添加菜单
 CMenu  menu;
 menu.LoadMenu(IDR_MENU1);
 menu.AppendMenu(MF_STRING,0,(LPCTSTR)(pCopyDataStruct->lpData));
 
 SetMenu(&menu);

当然可以通过分析字符串来做其它工作。

 return CDialog::OnCopyData(pWnd, pCopyDataStruct);
}

在发送数据程序中添加发送数据代码

void CCopyDataDlg::OnSender()
{
 // TODO: Add extra validation here
 CString text;
 GetDlgItemText(IDC_MSG,text);
 if(text.IsEmpty()) 
  return;
 CWnd * p = CWnd::FindWindow(NULL,TEXT("Receiver")); //找到程序中运行的Text为Receiver程序

 if(p != NULL)//找到
 {
  COPYDATASTRUCT s;
  s.cbData = (text.GetLength() + 1) * sizeof(TCHAR);
  s.lpData = (LPVOID)LPCTSTR(text);
  p->SendMessage(WM_COPYDATA,/*(WPARAM)GetSafeHwnd()*/ 0,(LPARAM)&s);
 }

}

动态添加菜单项到TreeView

  • 2013年12月06日 21:26
  • 22KB
  • 下载

动态及静态添加右键菜单策略

  • 2013年11月01日 20:06
  • 145KB
  • 下载

QT中菜单Menu与工具栏Toolbar中各个Action的动态添加删除

就像Swing里面的Action一样,Qt里面也有一个类似的类,叫做QAction。顾名思义,QAction类保存有关于这个动作,也就是action的信息,比如它的文本描述、图标、快捷键、回调函数(也...

动态添加删除spinner菜单

  • 2012年10月25日 10:10
  • 153KB
  • 下载

Android开发基础之动态添加菜单项

我们在之前的一篇博客中使用了在xml中写死了菜单项Item,然后在java文件中进行响应。但是这种菜单项显得非常不灵活,不能动态的增加删除Item。其实在Android中可以在java文件中动态增加菜...

动态添加、删除菜单项

  • 2017年03月15日 18:19
  • 8KB
  • 下载

MFC-动态添加和删除菜单栏

  • 2014年12月11日 00:54
  • 19KB
  • 下载

(MFC) VS2010、VS2012动态添加菜单

一、添加子菜单 在VC6.0和VS2010里面动态添加菜单项是不一样的,查看MSDN文档可知,VS2010采用的是MFC9.0版,其中有很多新增的项具体信息请查看http://msdn.micr...
  • h_wlyfw
  • h_wlyfw
  • 2014年03月05日 16:21
  • 2759

VS2008中动态添加,删除菜单项

  • 2016年09月07日 12:04
  • 92KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动态添加菜单
举报原因:
原因补充:

(最多只允许输入30个字)