可以用BitBlt实现截取屏幕图像存为位图格式,但倒过来
把位图文件用函数BitBlt贴在桌面上可以么?可以把字写在位图文件
直接贴在桌面上,实现写字?
那位指点下,最好源码 
下面是接屏幕源码:
 HWND hWnd = ::GetDesktopWindow();//获得屏幕的HWND.
   HDC hScreenDC = ::GetDC(hWnd);   //获得屏幕的HDC.
   HDC MemDC = ::CreateCompatibleDC(hScreenDC);
   RECT rect; 
   ::GetWindowRect(hWnd,&rect);//获取窗口矩形
   SIZE screensize;
   screensize.cx=rect.right-rect.left;//屏幕宽度
   screensize.cy=rect.bottom-rect.top;//屏幕高度
   HBITMAP Bitmap = ::CreateCompatibleBitmap(hScreenDC,screensize.cx,screensize.cy);
   HGDIOBJ hOldBMP = ::SelectObject(MemDC,Bitmap);
   ::BitBlt(MemDC,0,0,screensize.cx,screensize.cy,hScreenDC,rect.left,rect.top,SRCCOPY);
   ::SelectObject(MemDC,hOldBMP);
   ::DeleteObject(MemDC);
   ::ReleaseDC(hWnd,hScreenDC);
   return Bitmap;

解决方案 »

  1.   

     HWND hWnd = ::GetDesktopWindow();//获得屏幕的HWND.
      HDC hScreenDC = ::GetDC(hWnd); //获得屏幕的HDC.直接在这个DC上写字或其他操作都行
      

  2.   

    个人理解,::BitBlt(MemDC,0,0,screensize.cx,screensize.cy,hScreenDC,rect.left,rect.top,SRCCOPY);这里你吧Mendc和hscreendc对换下位置的话效果会是什么?
    抛砖引玉。
      

  3.   

    你们自己实验,我的无法显示,也就是桌面无法直接写字或贴位图
    Mendc和hscreendc对换下位置的话效果会是什么?
    我 也没有见过这样的程序:没有窗口,直接桌面写屏幕的
      

  4.   

    可以啊,用HDC hScreenDC = ::GetDC(NULL); 就能得到屏幕的DC啊,然后用这个DC进行画图就行了。
      

  5.   

    我没有贴图了,写了一行字,就两句就行了:
    void CdfdffDlg::OnBnClickedButton1()
    {
    HDC hDesk=::GetDC(NULL);
    ::TextOut(hDesk,200,200,"我会显示在桌面上",16);
    }