zoukankan      html  css  js  c++  java
  • 剪贴板(clipboard)功能

    一、 打开并清空剪贴板

     

    二、 分配全局内存 

     

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

     

    四、 把内容送到剪贴板

     

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

    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);

                               }

                              

                               }

                       

             }

     

  • 相关阅读:
    .net core相关博客
    通过几个Hello World感受.NET Core全新的开发体验
    ASP.NET Core 介绍
    ASP.NET MVC4企业级实战目录
    ASP.NET MVC4入门到精通系列目录汇总
    HTTP详解
    壮哉大微软,.Net人的春天来了,你准备好了嘛!
    简析 .NET Core 构成体系
    .Net Core[译文]
    OI再见
  • 原文地址:https://www.cnblogs.com/15157737693zsp/p/3839941.html
Copyright © 2011-2022 走看看