随笔-145  评论-173  文章-70  trackbacks-0
在我们平时的使用中,复制和粘贴都是很常见的操作,这其中,都使用到了一个很有用的资源-----剪切板。复制,即将内容拷贝到剪切板,此为一个进程,当需要进行粘贴的时候,另外的一个进程访问剪切板,将其中的内容拷贝到需要复制的地方,此为另外的一个进程。更一般的是,多个进程,都可以共同的访问到剪切板的内容,使得可以正常的实现数据的传输。所以,剪切板,是一个实现进程之间通信的重要工具。
看看下面的这个代码,如何实现剪贴板的代码:
void CTest9Dlg::OnSend() 
{
    
// TODO: Add your control notification handler code here
    if(OpenClipboard())
    
{
        CString str;
        HANDLE clipboard;
        
char * buf;
        EmptyClipboard();
        GetDlgItemText(IDC_EDIT_SEND,str);
        clipboard 
= GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);
        buf 
= (char *)GlobalLock(clipboard);
        strcpy(buf,str);
        GlobalUnlock(clipboard);
        SetClipboardData(CF_TEXT,clipboard);
        CloseClipboard();
    }

}



void CTest9Dlg::OnRec() 
{
    
// TODO: Add your control notification handler code here
    if(OpenClipboard())
    
{
        
if (IsClipboardFormatAvailable(CF_TEXT))
        
{
            HANDLE clipboard;
            
char *buf;
            clipboard 
= GetClipboardData(CF_TEXT);
            buf 
= (char *)GlobalLock(clipboard);
            GlobalUnlock(clipboard);
            SetDlgItemText(IDC_EDIT_RECIEVE,buf);
            CloseClipboard();
        }

    }

}


具体的实现就不用多说了,以后使用的时候,仅仅需要进行Copy就可以了。。。
posted on 2010-02-10 12:57 deercoder 阅读(535) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理