ANSI时期的代码:
CSharedFile sf(GMEM_MOVEABLE | GMEM_SHARE | GMEM_ZEROINIT);
TCHAR sz[200];
/*
下面这句不要管,这个是RTF格式的字符串(用VC以2进制打开.rtf文件可见类似代码
效果是字号为12 (fs24/2)的ABC, Arial字体
*/
_tcscpy(sz, _T("{\\rtf1{\\fonttbl{\\f0\\fnil Arial;}}\r\n\\f0\\fs24 ABC}"));sf.Write(sz, _tcslen(sz) * sizeof(TCHAR));
OpenClipboard();
EmptyClipboard();
/*
RICHEDIT.H, #define CF_RTF TEXT("Rich Text Format")
*/
SetClipboardData(::RegisterClipboardFormat(CF_RTF), sfRTF.Detach());
CloseClipboard();运行正常的很, 但是改成UNICODE后,在Word或WordPad下粘贴不出格式化的文本,只能粘贴出第一个"{".是不是往CSharedFile sf里写UNICODE字符的问题,该怎么修改?
CSharedFile sf(GMEM_MOVEABLE | GMEM_SHARE | GMEM_ZEROINIT);
TCHAR sz[200];
/*
下面这句不要管,这个是RTF格式的字符串(用VC以2进制打开.rtf文件可见类似代码
效果是字号为12 (fs24/2)的ABC, Arial字体
*/
_tcscpy(sz, _T("{\\rtf1{\\fonttbl{\\f0\\fnil Arial;}}\r\n\\f0\\fs24 ABC}"));sf.Write(sz, _tcslen(sz) * sizeof(TCHAR));
OpenClipboard();
EmptyClipboard();
/*
RICHEDIT.H, #define CF_RTF TEXT("Rich Text Format")
*/
SetClipboardData(::RegisterClipboardFormat(CF_RTF), sfRTF.Detach());
CloseClipboard();运行正常的很, 但是改成UNICODE后,在Word或WordPad下粘贴不出格式化的文本,只能粘贴出第一个"{".是不是往CSharedFile sf里写UNICODE字符的问题,该怎么修改?
解决方案 »
- 现在我们老大做了一个程序使用的是com,使用com打开了一个excel进程,但是关闭不了这个excel进程.
- Message Reflection 和Message map有区别吗
- 如何用代码控制控件的隐藏,在线等
- 问hha.dll中HHA_CompileHHP的参数和用法
- CView 对象的引用
- 在我的程序种调用ShellExecute函数并用画图程序打开了我的一个图片文件,请问如何知道这个画图程序已经退出?
- 关于hook和dll的问题值得看一看
- 疑惑:为什么发生在我身上呢?
- 求助,弱弱的问一个问题,开一个内存空间后,初始化报错
- 怎样判断_variant_t为NULL,我忘了
- 求VC 英文版下载地址~~~~!
- 怎样把CString类型的字符转换为float int 或double类型,,急。。。。。
建议往CSharedFile sf写前先将UNICODE转成ANSI
哪位老大给个TCHAR sz[200];到ANSI字符串的带码,我现在有点混乱,看了看msdn好像用这个函数:WideCharToMultiByte 但是不明白WCHAR, TCHARyoushenme区别,以前ANSI一直是char sz[200]这样用,怎么突然冒出一个WCHAR??
szAnsi = W2A(sz);P.S.WCHAR就是宽字节wchar_t,Unicode用的
W (LPWSTR) 是wchar_t么?
那T (LPTSTR)是什么?
A (LPSTR)是char吧.