首页 > 其他 > 详细

剪贴板(clipboard)功能

时间:2014-07-14 09:35:41      阅读:364      评论:0      收藏:0      [点我收藏+]

一、 打开并清空剪贴板

 

二、 分配全局内存 

 

三、 向全局内存放入想要拷贝的内容

 

四、 把内容送到剪贴板

 

五、 关闭剪贴板,以使其它程序可以访问,释放掉全局内存

OpenClipboard

EmptyClipboard

GlobalAlloc

SetClipboardData

CloseClipboard

GlobalFree

 

 

 

void CMyWindowDlg::On32771()

{

         char stext[] ="QQ 150330575";

         HGLOBAL p=NULL;

         if(OpenClipboard())

         {  EmptyClipboard();

 

                  HGLOBAL hmem=GlobalAlloc(GHND,sizeof(stext));

                  char *pmem=(char*)GlobalLock(hmem);                 

                  memcpy(pmem,stext,sizeof(stext));

                  //GlobalUnlock(hmem);

                  SetClipboardData(CF_TEXT,hmem);

                  CloseClipboard();

        // memcpy(pmem,"000000",7);

                  p= GlobalFree(hmem); //释放内存空间

 

         }

 

}

 

 

/******************************************************************/

一、 判断剪贴数据格式是否是我们需要的

 

二、 打开剪贴板

 

三、 获取剪贴板句柄

 

四、 锁定全局内存获取缓冲区指针,取出数据

 

五、 关闭剪贴板,以使其它程序可以访问,释放掉内存锁

IsClipboardFormatAvailable

GetClipboardData

GlobalSize

 

 

 

void CMyWindowDlg::OnMenuPaste()

{

         // TODO: 在此添加命令处理程序代码

//一、判断剪贴数据格式是否是我们需要的

         HGLOBAL hmem=NULL;

   char s[256]="";

         if (IsClipboardFormatAvailable(CF_TEXT)) //CF_UNICODETEXT

         {

                  //二、打开剪贴板

                  if (OpenClipboard())

                  {

                           //三、获取剪贴板句柄

                   hmem=GetClipboardData(CF_TEXT);

                           if (hmem)

                           {

 

                           //四、锁定全局内存获取缓冲区指针,

                           char* ps=(char*) GlobalLock(hmem);

                           //取出数据

             memcpy(s,ps,GlobalSize(hmem));

                           }

                  }

 

         }

 

 

//五、关闭剪贴板,以使其它程序可以访问,释放掉内存锁

         CloseClipboard();

    GlobalUnlock(hmem);

         m_edt_cs=s;

         UpdateData(false);

}

 

 

//UniCode 版本

void CMyWindowDlg::OnMenuPaste()

{

         // TODO: 在此添加命令处理程序代码

         WCHAR  sc[256];    

         HGLOBAL hmem=NULL;

         if (OpenClipboard()) //是否成功打开剪帖板

         {               

                           if ( IsClipboardFormatAvailable(CF_UNICODETEXT))

                           {

                                                                       

                          

                           // SetClipboardData()

                      hmem=GetClipboardData(CF_UNICODETEXT );//CF_UNICODETEXT

                           LPCTSTR pmem= (LPCTSTR)GlobalLock(hmem);

                           if (pmem)

                           {

                                    memcpy(sc,pmem,GlobalSize(hmem));

                    

                                    //关闭剪贴板

                                    CloseClipboard();

                                    GlobalUnlock(hmem);

                                    GlobalFree(hmem);//释放全局内存

                                    m_edt_cs=sc;

                                    UpdateData(false);

                           }

                          

                           }

 

                   

         }

 

剪贴板(clipboard)功能,布布扣,bubuko.com

剪贴板(clipboard)功能

原文:http://www.cnblogs.com/15157737693zsp/p/3839941.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!