使用了這麼一段代碼,結果運行的時候如果編輯框中是英文字母,只復制了第一個字母,如果是中文,復制的結果是亂碼。求解具體怎麼改。謝謝各位
void CMFCApplication2Dlg::OnBnClickedButCpy()
{
// TODO: 在此添加控件通知處理程序代碼
CString source;
GetDlgItemText(IDC_EDI_TEXT, source);
if (OpenClipboard())
{
HGLOBAL clipbuffer;
char buffer;
EmptyClipboard();
clipbuffer = GlobalAlloc(GMEM_DDESHARE, source.GetLength() + 1);
buffer = (char)GlobalLock(clipbuffer);
strcpy(buffer, (const char *)source.GetBuffer());
GlobalUnlock(clipbuffer);
SetClipboardData(CF_TEXT, clipbuffer);
CloseClipboard();
}
}
no
hText = GetDlgItem(IDC_EDI_TEXT);
SendMessage(hText, WM_COPY, 0, 0);