Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 сентября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

Как поместить содержимое экрана в буфер обмена (Clipboard)

Автор: Joseph M. Newcomer

ToClip.h:

void toClipboard(CWnd * wnd, BOOL FullWnd);

ToClip.cpp

#include "stdafx.h"
 #include "toclip.h"
 /****************************************************************
 *                                 toClipboard
 * Входные значения:
 *       CWnd * wnd: Окно, содержимое которого будет передано в
 *                   буфер обмена (clipboard)
 *       BOOL FullWnd: TRUE для всего окна,
 *                     FALSE для клиентской области
 * На выходе
 *
 * Эффект:
 *       Копирует содержимое клиентской области или окна
 *       в буфер обмена (clipboard) в формате CF_BITMAP.
 *****************************************************************/
  
 void toClipboard(CWnd * wnd, BOOL FullWnd)
     {
      CDC dc;
      if(FullWnd)
         { /* всё окно */
          HDC hdc = ::GetWindowDC(wnd->m_hWnd);
          dc.Attach(hdc);
         } /* всё окно */
      else
         { /* только клиентская часть */
          HDC hdc = ::GetDC(wnd->m_hWnd);
          dc.Attach(hdc);
         } /* только клиентская часть */
  
      CDC memDC;
      memDC.CreateCompatibleDC(&dc);
  
      CBitmap bm;
      CRect r;
      if(FullWnd)
         wnd->GetWindowRect(&r);
      else
          wnd->GetClientRect(&r);
  
      CString s;
      wnd->GetWindowText(s);
      CSize sz(r.Width(), r.Height());
      bm.CreateCompatibleBitmap(&dc, sz.cx, sz.cy);
      CBitmap * oldbm = memDC.SelectObject(&bm);
      memDC.BitBlt(0, 0, sz.cx, sz.cy, &dc, 0, 0, SRCCOPY);
  
      wnd->GetParent()->OpenClipboard();
      ::EmptyClipboard();
      ::SetClipboardData(CF_BITMAP, bm.m_hObject);
      CloseClipboard();
  
      memDC.SelectObject(oldbm);
      bm.Detach();  // make sure bitmap not deleted with CBitmap object
     }

 



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS