[英]C++ WINAPI Button Clipboard - Copy action
我对C ++有点陌生,但是我知道一些基础知识以及如何正确使用它。 我只是想知道如何在Windows应用程序中复制到剪贴板。 我希望4个按钮能够在单击时复制一条消息并将其存储在剪贴板中。 这是按钮的代码,if语句是单击时执行的操作:
case WM_CREATE:{
CreateWindow(TEXT("BUTTON"), TEXT("Copythistext"),
WS_CHILD | WS_VISIBLE,
12,60,10,20,
hwnd, (HMENU) ID_BUTTON, NULL, NULL
);
break;
}
case WM_COMMAND:{ //this is where the button performs it's task
if(LOWORD(wParam)== ID_BUTTON) {
//this is where the task goes
}
break;
}
有一种奇怪的方式将文本从按钮发送到剪贴板:通过SetDlgItemText + WM_LBUTTONDBLCLK到带有SS_NOTIFY的STATIC(STATIC的大小可能为= 0)。
事件顺序:
void AddToClipboard(char* pszText)
{
int nStrLen = strlen(pszText);
HGLOBAL hMem = GlobalAlloc(nStrLen + 1, GMEM_SHARE);
char* pCopyTo = (char*) GlobalLock(hMem);
strcpy(pCopyTo, pszText);
GlobalUnlock(hMem);
OpenClipboard(NULL); // or HWND handle instead of NULL
EmptyClipboard();
SetClipboardData(CF_TEXT, hMem); // hMem is handle to memory allocated with GlobalAlloc
CloseClipboard();
}
对于hMem,通常执行GlobalAlloc(),GlobalLock(),将字符串复制到GlobalLock()返回的指针,然后在句柄上执行GlobalUnlock()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.