有些软件输入序列号的时候,一般是4个Edit,然后使用Ctrl+V可以把复制的序列号自动填满四个Edit,而不用一个Edit一个Edit的去Ctrl+C Ctrl+V,
这个要怎么实现呢?响应哪个消息,要从剪贴板中读取数据?怎么从剪贴版中读取呢??

解决方案 »

  1.   

    CString str;
    if ( OpenClipboard() )//打开剪贴板
    {
    HANDLE hData = GetClipboardData(CF_TEXT);//获得剪贴板当前关联的句柄,同时锁定句柄
    char * buffer = (char*)GlobalLock(hData);//获得句柄代表的内存块
    str = buffer; //从内存块中获取数据
    GlobalUnlock(hData); //解锁句柄
    CloseClipboard(); //关闭剪贴板'
    MessageBox(str);
    }
    然后对str获得每个Edit里需要添写的控件内容就可以了!
      

  2.   

    这个只能是自己去读并且一个一个的填了1、要获取复制拷贝消息子类化edit类,在OnCommand中获取 WM_COPY 和 WM_PASTE 消息即可
    2、自己从剪贴板读取内容,查一下msdn中Clipboard 相关的就知道了,或者上网搜索一下剪贴板相关的内容,大把
      

  3.   

    从剪贴板上获取数据,ls的已经都说过了,剩下的要你自己填写到edit中去了,比如AAA-BB-CC-DD-EE这类的,先分割字符串,再填充到相应的edit中。
      

  4.   

    那如何在Edit里截获Ctrl+V的消息呢?Edit里找不到Ctrl+V的那个消息?
      

  5.   

    派生Edit,在PreTranslateMessage里截获Ctrl+V的消息进行处理,怎么开两个贴