比如,已经知道c:\test.bmp,怎么在程序中把这个位图复制到剪贴板,然后在word或者画图中能粘贴出来!

解决方案 »

  1.   

    SetClipboardData(CF_DIB,CopyHandle((HANDLE)hDIB));
    在MSDN查查有关资料.
      

  2.   

    char str[256];
    strcpy(str,"c:\test.bmp");    CBitmap* pBmp;
        pBmp=new CBitmap;
        pBmp->LoadBitmap((LPCTSTR)str);

    if (!OpenClipboard())
    return;
    EmptyClipboard();
    SetClipboardData(CF_BITMAP, pBmp ->GetSafeHandle());
    CloseClipboard();
    我在画图中粘贴的时候怎么老是说“获取剪贴板数据出错!"到底是哪儿错了,该怎么改啊?
      

  3.   

    SetClipboardData(CF_BITMAP, (HBITMAP)pBmp ->GetSafeHandle());试试
      

  4.   

    to chegtion(关玉夫) 还是不行!
    但是我把程序改为pBmp->LoadBitmap(IDB_BITMAP1);

    if (!OpenClipboard())
    return;
    EmptyClipboard();
    SetClipboardData(CF_BITMAP, pBmp->GetSafeHandle());
    CloseClipboard();
    就好了!也就是说如果位图调资源的话就好了!但是在我的程序中有好多的图片,不可能都做成资源!现在的问题好像是出在char str[256];
    strcpy(str,"c:\test.bmp");    CBitmap* pBmp;
        pBmp=new CBitmap;
        pBmp->LoadBitmap((LPCTSTR)str);
    高手帮帮忙,分不够再加,老板催的紧啊!
      

  5.   


    if (!OpenClipboard()) return;
    EmptyClipboard();
    SetClipboardData(CF_BITMAP, LoadImage(NULL,_T("c:\\test.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_DEFAULTSIZE));
    CloseClipboard();
    没有问题我试过了!
    你的pBmp->LoadBitmap((LPCTSTR)str);有问题,没有这种写法!
      

  6.   

    谢谢wangfir(燕燕) ,好厉害啊,你说的对啊!