返回首页

如今,当复制到剪贴板中的文本,这是任何更好地为CF_UNICODETEXT代替的CF_TEXT SetClipboardData?将它粘贴实体的区别?

任何论点?

回答

评论会员:游客 时间:2012/02/07
对不起,我只知道一点点英语我刚才读的称号。MSDN上:隐式转换系统之间某些剪贴板格式的数据:如果一个窗口请求的格式不剪贴板上的数据,系统可用的格式转换成要求的格式。该系统可以转换数据如下表所示。codeprelang="text"ClipboardFormat|ConversionFormat|PlatformSupport CF_OEMTEXT|CF_TEXT|WindowsNT/Windows2000,Windows95/Windows98/WindowsMeCF_OEMTEXT|CF_UNICODETEXT|WindowsNT/Windows2000CF_TEXT|CF_OEMTEXT|WindowsNT/Windows2000,Windows95/Windows98/WindowsMeCF_TEXT|CF_UNICODETEXT|WindowsNT/Windows2000CF_UNICODETEXT|CF_OEMTEXT|WindowsNT/Windows2000CF_UNICODETEXT|CF_TEXT|WindowsNT/Windows2000/pre/code让我有一个简单的尝试在WindowsXP:{C}但我在Windows98测试,如果你用的CF_TEXTSetClipboardData,那么你必须GetClipboardData用的CF_TEXT,如果你与CF_UNICODETEXTSetClipboardData,你必须GetClipboardData与CF_UNICODETEXT。当我与CF_UNICODETEXT,记事本(WIN98)SetClipboardData不能从剪贴板粘贴文本。所以,如果你想支持的Windows98,你必须用的CF_TEXTSetClipboardData,否则,你可以使用其中的任何一个。我建议你​​使用unicode
SAKryukov
评论会员:游客 时间:2012/02/07
这是更好,只是因为你可以使用Unicode。如果您的应用程序允许输入Unicode的CF_TEXT是绝对不能接受的,使用CF_UNICODETEXT。这减少了这个问题:你想在所有的Unicode支持?这真的取决于你的应用程序和要求。应用程序可以真正做到非Unicode时,它仅支持ASCII(甚至超出了127码点的ANSI)。这样做的一些应用有一定的生存权利。不过,作为一个经验法则,我认为其最好的假设的非Unicode文本的时代已经一去不复返了。mdash;水杨酸
欧威
评论会员:游客 时间:2012/02/07
codeprelang="c++"spanclass="code-keyword"if/span(OpenClipboard(NULL)) { spanclass="code-comment"///spanspanclass="code-comment"/span spanclass="code-comment"///spanspanclass="code-comment"EmptyClipboardsetstheclipboardownertoNULL ///span spanclass="code-keyword"if/span(!EmptyClipboard())spanclass="code-keyword"goto/spanOnError1; TCHARchValue[]=_T(spanclass="code-string""/spanspanclass="code-string"HelloClipboard."/span); size_tnLength=_tcslen(chValue); size_tnByteOfBuffer=(nLength+spanclass="code-digit"1/span)*spanclass="code-keyword"sizeof/span(TCHAR); HGLOBALhGlobal=NULL; hGlobal=GlobalAlloc(GMEM_MOVEABLE|GMEM_ZEROINIT,nByteOfBuffer); spanclass="code-keyword"if/span(NULL==hGlobal)spanclass="code-keyword"goto/spanOnError1; LPTSTRpBuf=(LPTSTR)GlobalLock(hGlobal); spanclass="code-keyword"if/span(NULL==pBuf) { GlobalFree(hGlobal); hGlobal=NULL; } _tcscpy_s(pBuf,nLength+spanclass="code-digit"1/span,chValue);#ifdef_UNICODE SetClipboardData(CF_UNICODETEXT,hGlobal);spanclass="code-preprocessor"#else/span SetClipboardData(CF_TEXT,hGlobal);spanclass="code-preprocessor"#endif/span GlobalUnlock(hGlobal);OnError1: CloseClipboard(); }/pre/code的
简单的方法:
{体C3}