6196 发表于 2007-7-15 15:35:39

设置剪贴板数据

我知道这是win32问题我正在尝试使用SetClipboardData将字符串复制到剪贴板
但是我的代码只拾取第一个字符,我不知道为什么。我做错了什么?
谢谢
int SetClipboardText(void)
{
    HWND docHwnd = adsw_acadDocWnd();
    struct resbuf *pArgs = acedGetArgs() ;
    if (pArgs == NULL && pArgs->restype != RTSTR )
      return RSERR;
    if(OpenClipboard(docHwnd))
    {
      HGLOBAL clipbuffer;
      ACHAR* buffer;
      EmptyClipboard();
      clipbuffer = GlobalAlloc(GMEM_DDESHARE |
            GMEM_DDESHARE, _tcslen(pArgs->resval.rstring) + 1);
      buffer = (ACHAR*)GlobalLock(clipbuffer);
      _tcscpy(buffer, pArgs->resval.rstring);
      GlobalUnlock(clipbuffer);
      SetClipboardData(CF_TEXT,clipbuffer);
      CloseClipboard();
    }
    return (RSRSLT) ;
}

**** Hidden Message *****

好男人 发表于 2007-7-15 16:21:43

丹尼尔;
不测试您的函数....
GMEM_DDESHARE已经过时,将被忽略,您已经使用了两次,请尝试使用GMEM _ mobile(这是我使用的一个)

高楼粽子 发表于 2007-7-15 18:09:36


原谅我,但讽刺的是,在这篇文章的背景下,我快要死了。
{耸肩图标在哪里?}
对不起?
:哨子:
{真诚地希望皱纹可以消除}

丑女 发表于 2007-7-15 19:15:56


嗨,路易斯,
我尝试了GMEM _可移动和GMEM _共享的所有组合,但还是不行..我很想看看你的代码,但给我一点时间来搞清楚
苹果和鱼MP

竞速随机 发表于 2007-7-15 20:55:58

明白了
谢谢
我需要定义这个
#ifdef UNICODE
#define CF_TCHAR CF_UNICODETEXT
#else
#define CF_TCHAR CF_TEXT
#endif

新代码

随心所欲 发表于 2007-7-15 21:43:30


太棒了,谢谢路易斯
页: [1]
查看完整版本: 设置剪贴板数据