剪切板使用问题 在一个对话框中有多个相邻的文本框代码实现:设置剪切板内容后,执行CTRL+V然后TAB,然后循环最后所有的文本框内的内容都是最后一次在剪切板中设置的内容若问怎么回事…… 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你说的是不是吧剪切板的内容一次拷贝到你几个Edit控件里面去??那你得设置一个规则撒。比如每个剪切板里面的字符数是多少。等等。具体实现,你可以用这几个API来达到你的目的OpenClipboard SetClipboardData Closeclipboard EmptyClipboard 对于每个文本框赋值是采用的模拟按键CTRL+V(已经在剪切板里设置了内容)这样的话 对于文本框来说是不是存储了一块内存的大小以及起始地址而在同一个函数中每次设置剪贴板内容时都是修改的以同一地址为起始地址的一块内存调试了半天好像是这个原因弱问如何解决? 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(); } 设置剪贴板内容以及执行CTRL+V 和TAB第一次贴代码 贴的乱七八糟的 请见谅 不是同一块内存的话 应该不会出现这个问题吧?我代码实现的设置剪贴版内容的操作和CTRL+C复制字符串的操作是不是不一样啊?CTRL+C复制字符串又是如何实现的? 怎样拷贝Word内容到richedit xml在IE下显示的问题 对于这类图片,有没有好的赃物检测算法!! 100分求助,关于左右视图与打印 编程如何区分普通硬盘和USB硬盘? 欲开发IC卡储值消费模块,需要注意哪些问题? 100分讨论 有关模式对话框的问题 求教灰度打印问题,忙了一天了,大家帮忙看看 怎样使用directx8.0从多媒体数据流中抓图? 请教早绑定(early binding)的问题 刚下了个winleak_1.1.3检测vc编的软件的内存泄露,可不会看报告,求分析! 想问一下QQ影音和QQ音乐的UI是怎么设计的??
那你得设置一个规则撒。比如每个剪切板里面的字符数是多少。等等。具体实现,你可以用这几个API来达到你的目的
OpenClipboard SetClipboardData Closeclipboard EmptyClipboard
这样的话 对于文本框来说是不是存储了一块内存的大小以及起始地址
而在同一个函数中每次设置剪贴板内容时都是修改的以同一地址为起始地址的一块内存调试了半天好像是这个原因
弱问如何解决?
{
// 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();
}
第一次贴代码 贴的乱七八糟的 请见谅
我代码实现的设置剪贴版内容的操作和CTRL+C复制字符串的操作是不是不一样啊?
CTRL+C复制字符串又是如何实现的?