• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
张纯睿
博客园    首页    新随笔    联系   管理    订阅  订阅

C++中使用剪贴板复制UNICODE/ANSI字符数据

http://hi.baidu.com/krispan/blog/item/a7d3829557ea64017af48015.html

    CString str=_T("要复制的文本");
//复制到剪贴板
    if (OpenClipboard())
    {
        HGLOBAL clipBuffer;  
        EmptyClipboard();
  
#ifdef _UNICODE         //复制Unicode字符串到剪贴板
        wchar_t * buffer;
        clipBuffer = GlobalAlloc(GMEM_DDESHARE, 2 * lstrlen(str) + sizeof(wchar_t));
        buffer = (wchar_t*)GlobalLock(clipBuffer);
        wcscpy(buffer,strSel);
        GlobalUnlock(clipBuffer);
        SetClipboardData(CF_UNICODETEXT,clipBuffer);
#else                         //复制ANSI字符串到剪贴板
        char *pbuff;
        clipBuffer = GlobalAlloc(GMEM_DDESHARE,str.GetLength()+1);
        pbuff = (char*)GlobalLock(clipBuffer);
        strcpy(pbuff,LPCSTR(strSel));
        GlobalUnlock(clipBuffer);
        SetClipboardData(CF_TEXT,clipBuffer);
#endif

        CloseClipboard();
    }

posted @ 2011-05-28 17:20  张纯睿  阅读(372)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3