Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как записать в буфер обмена участок окна 
:(
    Опции темы
triclosan
Дата 25.8.2006, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: 1
Всего: 12



Рисую во фрейме диалога графику средствами MFC. Требуется отправить фрейм в буфер обмена. Собираюсь делать так:

Код

HGLOBAL clipbuffer;
CBitmap* my;

if (AfxGetMainWnd()->OpenClipboard())// если буфер обмена удалось открыть то
{
        if (EmptyClipboard())    // Очистить буфер
        {
            clipbuffer = GlobalAlloc(GMEM_DDESHARE, РАЗМЕР_БИТМАПА_ (КАК?)); //??? выделить память 
            my = (CBitmap*)GlobalLock(clipbuffer);    // блокировать буфер
            ЗАПИСАТЬ В my ИЗОБРАЖЕНИЕ (КАК?) //???
            GlobalUnlock(clipbuffer);    // разблокировать
            SetClipboardData(CF_BITMAP,clipbuffer);    // установить данные и тип
            if (!CloseClipboard()) AfxMessageBox("Error Close Clipboard");// закрыть
        } 
        else AfxMessageBox("Error Empty Clipboard");
} 
else AfxMessageBox("Error Open Clipboard");


Если такой подход верен подскажите как собственно записать изображение в переменную my и как узнать сколько памяти выделять для буфера. 
PM MAIL   Вверх
Earnest
Дата 25.8.2006, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



1) Записать часть окна в буфер
  - создаешь совместимый контекст 
  - совместимый битмап
  - выбираешь битмап в контекст
  - копируешь из контекста окна в совместимый контекст (ИшеИде)
  -> вот тебе и битмап (HBITMAP)

2) Насчет помещения HBITMAP в буфер обмена, поище в форуме (по-моему было), посмотри в MSDN
Кажется, в SetClipboardData передается именно HBITMAP.


--------------------
...
PM   Вверх
triclosan
Дата 28.8.2006, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: 1
Всего: 12



спасибо, буду пробовать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0402 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.