在一个对话框中有多个相邻的文本框
代码实现:设置剪切板内容后,执行CTRL+V然后TAB,然后循环
最后所有的文本框内的内容都是最后一次在剪切板中设置的内容
若问怎么回事……

解决方案 »

  1.   

    你说的是不是吧剪切板的内容一次拷贝到你几个Edit控件里面去??
    那你得设置一个规则撒。比如每个剪切板里面的字符数是多少。等等。具体实现,你可以用这几个API来达到你的目的
    OpenClipboard SetClipboardData Closeclipboard EmptyClipboard
      

  2.   

    对于每个文本框赋值是采用的模拟按键CTRL+V(已经在剪切板里设置了内容)
    这样的话 对于文本框来说是不是存储了一块内存的大小以及起始地址
    而在同一个函数中每次设置剪贴板内容时都是修改的以同一地址为起始地址的一块内存调试了半天好像是这个原因
    弱问如何解决?
      

  3.   

    if( OpenClipboard(hWnd) )
    {
    // AfxMessageBox("aaaaaaaaaaaaaa");
    HGLOBAL clipbuffer;
    char * mbuffer;
    EmptyClipboard();
    clipbuffer = GlobalAlloc(GMEM_NODISCARD, source.GetLength()+1);
    mbuffer = (char*)GlobalLock(clipbuffer);
    strcpy(mbuffer, LPCSTR(source));
    GlobalUnlock(clipbuffer);
    SetClipboardData(CF_TEXT,clipbuffer);
    CloseClipboard();
    // AfxMessageBox(source);
    keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),0,0); //按下SHIFT鍵。
    keybd_event(0x56,MapVirtualKey(0x56,0),0,0);//按下R鍵。
    keybd_event(0x56,MapVirtualKey(0x56,0),KEYEVENTF_KEYUP,0);//放開R鍵。
    keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),KEYEVENTF_KEYUP,0);//放開SHIFT鍵。
    keybd_event(VK_TAB,MapVirtualKey(VK_TAB,0),0,0);
    keybd_event(VK_TAB,MapVirtualKey(VK_TAB,0),KEYEVENTF_KEYUP,0);
    /* source="aaaaaaaa";
    if( OpenClipboard(hWnd) )
    {
    // AfxMessageBox("aaaaaaaaaaaaaa");
    EmptyClipboard();
    clipbuffer = GlobalAlloc(GMEM_DDESHARE, source.GetLength()+1);
    mbuffer = (char*)GlobalLock(clipbuffer);
    strcpy(mbuffer, LPCSTR(source));
    GlobalUnlock(clipbuffer);
    SetClipboardData(CF_TEXT,clipbuffer);
    CloseClipboard();
    }*/
    source.Empty();
    }
      

  4.   

    设置剪贴板内容以及执行CTRL+V 和TAB
    第一次贴代码 贴的乱七八糟的 请见谅
      

  5.   

    不是同一块内存的话 应该不会出现这个问题吧?
    我代码实现的设置剪贴版内容的操作和CTRL+C复制字符串的操作是不是不一样啊?
    CTRL+C复制字符串又是如何实现的?