.h:
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
afx_msg void OnCopy();
afx_msg void OnCopy1();
映射:
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_32771, OnCopy)
ON_COMMAND(ID__32772, OnCopy1)
.cpp:
void COfficeOperationDemoDlg::OnContextMenu(CWnd* pWnd, CPoint point)
{// TODO: Add your message handler code here
CMenu popMenu;
popMenu.LoadMenu(IDR_MENU1); //载入菜单
CMenu *pPopup;
pPopup=popMenu.GetSubMenu(0); //获得子菜单指针
pPopup->EnableMenuItem(ID_32771,MF_BYCOMMAND|MF_ENABLED); //允许菜单项使用
pPopup->EnableMenuItem(ID__32772,MF_BYCOMMAND|MF_ENABLED); //允许菜单项使用
//pPopup->EnableMenuItem(ID__32772,MF_BYCOMMAND|MF_DISABLED|MF_GRAYED); //不允许菜单项使用
//ClientToScreen(&point); //将客户区坐标转换成屏幕坐标
pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this); //显示弹出菜单,参数依次为(鼠标在菜单左边|跟踪右键,x,y,this)
pPopup->Detach();
popMenu.DestroyMenu();
}
void COfficeOperationDemoDlg::OnCopy()
{
// AfxMessageBox("1234");
DoGdiplusFuns(m_index1,m_index2);
}
void COfficeOperationDemoDlg::OnCopy1()
{
AfxMessageBox("4321");
}
//剪切板
#include "stdafx.h"
#include "stdio.h"
#include "iostream"
#include "windows.h"
#include <string>
using namespace std;
void TestGetClipBoard(TCHAR *str)
{
HWND hWnd;
hWnd = GetConsoleWindow();
//判断剪贴板的数据格式是否可以处理。
if (!IsClipboardFormatAvailable(CF_TEXT))
{
return;
}
//打开剪贴板。
if (!OpenClipboard(hWnd))
{
return;
}
//获取UNICODE的数据。
HGLOBAL hMem = GetClipboardData(CF_TEXT);
if (hMem != NULL)
{
//获取UNICODE的字符串。
LPTSTR lpStr = (LPTSTR)GlobalLock(hMem);
//if (lpStr != NULL)
//{
//显示输出。
//OutputDebugString(lpStr);
释放锁内存。
//GlobalUnlock(hMem);
//}
lstrcpy(str,lpStr);
}
//关闭剪贴板。
CloseClipboard();
}
int _tmain(int argc, _TCHAR* argv[])
{
TCHAR str[2526];
string str1;
int m=0;
int n=0;
TestGetClipBoard(str);
string strs = str;
while(strs.length()!=0){
m = strs.find_first_of("\t",0);
n = strs.find_first_of("\r\n",0);
if (n>m&&m!=-1)
{
str1 = strs.substr(0,m);
strs = strs.substr(m+1,strs.length());
}
else
{
str1 = strs.substr(0,n);
strs = strs.substr(n+2,strs.length());
}
}
cout<<str<<endl;
system("pause");
return 0;
}