我是靠谱客的博主 贤惠金鱼,最近开发中收集的这篇文章主要介绍visual c++剪贴板操作不完全攻略,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

正文
boarddata(cf_bitmap,junk->m_hobject);
closeclipboard();

delete junk;
}

下面的代码显示了如何从剪贴板上获得位图数据:

if(openclipboard())
{
//获得剪贴板数据
hbitmap handle = (hbitmap)getclipboarddata(cf_bitmap);
cbitmap * bm = cbitmap::fromhandle(handle);

cclientdc cdc(this);
cdc dc;
dc.createcompatibledc(&cdc);
dc.selectobject(bm);
cdc.bitblt(0,0,200,200,&dc,0,0,srccopy);

closeclipboard();
}

四、设置并使用自定义格式

使用registerclipboardformat()函数,可以复制和粘贴任何你需要的数据类型。比如我们有以下一个数据类型:

struct myformatdata
{
long val1;
int val2;
};

我们要把它复制到剪贴板,可以使用如下的代码:

uint format = registerclipboardformat("my_custom_format");
if(openclipboard())
{
myformatdata data;
data.val1 = 100;
data.val2 = 200;

hglobal clipbuffer;
emptyclipboard();
clipbuffer = globalalloc(gmem_ddeshare, sizeof(myformatdata));
myformatdata * buffer = (myformatdata*)globallock(clipbuffer);

//保存到内存
*buffer = data;

//保存到剪贴板
globalunlock(clipbuffer);
setclipboarddata(format,clipbuffer);
closeclipboard();
}

读取数据使用以下代码:

uint format = registerclipboardformat("my_custom_format");
myformatdata data;
if(openclipboard())
{
handle hdata =getclipboarddata(format);
myformatdata * buffer = (myformatdata*)globallock(hdata);

data = *buffer;

globalunlock(hdata);
closeclipboard();
}

五、感知剪贴板内容的改变

通过windows消息可以感知剪贴板内容是否发生改变,代码如下:

in your initialization code call:
setclipboardviewer(); //将我们的程序添加到剪贴板观察链

in your message map add:
on_message(wm_drawclipboard, onclipchange) //添加message handle

which is declared as:
afx_msg void onclipchange();

finally implement:
void cdetectclipboardchangedlg::onclipchange()
{
ctime time = ctime::getcurrenttime();
setdlgitemtext(idc_changed_date,time.format("%a, %b %d, %y -- %h:%m:%s"));

displayclipboardtext();
}

六、自动将数据粘贴到另一应用程序窗口

只需获得相应窗口的句柄,并发送一个消息就可以了:

sendmessage(m_htextwnd, wm_paste, 0, 0);

最后

以上就是贤惠金鱼为你收集整理的visual c++剪贴板操作不完全攻略的全部内容,希望文章能够帮你解决visual c++剪贴板操作不完全攻略所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部