2 skycofox14 skycofox14 于 2014.07.07 16:51 提问

关于剪切板中UNICODE的问题

void CMy001Dlg::OnBnClickedButton1()
{
if(this->OpenClipboard())

{

CString str =_T("剪切板内容!¥#");

wchar_t * pBuf;

EmptyClipboard(); ;

HGLOBAL hClip = (wchar_t )GlobalAlloc(GHND,sizeof(wchar_t) + str.GetLength()*2);

pBuf = (wchar_t
)GlobalLock(hClip);

wcscpy(pBuf,str);

GlobalUnlock(hClip);

SetClipboardData(CF_TEXT,hClip);

CloseClipboard();

}
if(OpenClipboard())

{

if(IsClipboardFormatAvailable(CF_UNICODETEXT))

{

HANDLE hClip = GetClipboardData(CF_TEXT);

wchar_t * pBuf =(wchar_t*) GlobalLock(hClip);

AfxMessageBox(pBuf);
}

CloseClipboard();

}

}
代码如上,
为何在向剪切板SetClipboardData(CF_TEXT) CF_TEXT格式
而进行判断的时候 IsClipboardFormatAvailable(CF_UNICODETEXT) CF_UNICODETEXT格式。
返回值为何会是TRUE? 这两个格式一样么?
CF_TEXT格式被标注为ANSI, ANSI和ASCII 有什么区别

Csdn user default icon
上传中...
上传图片
插入图片