剪切板进程
MFC创建工程,将输入的文字保存到剪切板的内存中后,可以在另一个剪切板进程中提取出文字。
void CClipBoardDlg::OnBnClickedButton1send()
{
// TODO: 在此添加控件通知处理程序代码
//打开剪切板
if (OpenClipboard())
{
//清空剪切板
EmptyClipboard();
char* SendBuf;
//获取编辑框的内容
CString strSend;
GetDlgItemText(IDC_EDIT_send, strSend);
//分配内存对象
HANDLE hClip = GlobalAlloc(GMEM_MOVEABLE,strSend.GetLength() + 1);
//将剪切板加锁
SendBuf = (char*)GlobalLock(hClip);
strcpy(SendBuf, strSend);
//解锁
GlobalUnlock(hClip);
//将数据放入剪切板
SetClipboardData(CF_TEXT, hClip);
//关闭剪切板
CloseClipboard();
}
}
void CClipBoardDlg::OnBnClickedButtonrecv()
{
// TODO: 在此添加控件通知处理程序代码
//打开剪切板
if (OpenClipboard())
{
if (IsClipboardFormatAvailable(CF_TEXT))
{
char* recvBuf;
//获得剪切板的数据
HANDLE hClip = GetClipboardData(CF_TEXT);
//将剪切板加锁
recvBuf = (char*)GlobalLock(hClip);
SetDlgItemTextA(IDC_EDIT_recv,recvBuf);
//解锁
GlobalUnlock(hClip);
//关闭剪切板
CloseClipboard();
}
发送按钮类似Ctrl+c,接收按钮类似Ctrl+v。