
Последние записи
- Удалить повторы со сложением значений (Microsoft Office Excel)
- Bass регулировка по отдельности левого и правого каналов звука
- Как ускорить замену текста в MEMO?
- Вывод картинки (текстуры) на OpenGL 3.3 и Qt C++ с плавающем диапазоном координат по оси X
- Поиск ячеек определенного цвета (Microsoft Office Excel)
- Конвертирование кодов в символы (URLDecode в Delphi)
- Рекурсивное удаление файлов из папки (CMD)
- Самый быстрый способ прорисовки на компоненте Image
- Эксперименты с генератором фракталов
- Технология производства чая (белый, зелёный, жёлтый, улун, шен, красный, шу)

7th
Июн
Копирование bmp-картинки в буфер обмена используя Си
Posted by obzor under Win Api
Здравствуйте, такая проблема. Есть у меня HBITMAP прочитанной картинки (допустим, из файла прочитал). Нужно скопировать картинку в буфер, используя Си (не C++), без использования сторонних библиотек. Загвоздка в том, что только начинаю учить WinAPI, перекопал кучу сайтов, но понятных примеров не нашел. Копировать текст в буфер научился, а с картинками проблема. Хотелось бы пример с комментариями, как оно работает, или ссылок на литературу (где будет описано на си, а не на плюсах). Помогите разобраться
Ну так покажите как копируете текст, я вам скажу как исправить для HBITMAP
Код:
switch(cmd)
{
case MY_COPY:
char *dest;
HGLOBAL hgl;
hgl = GlobalAlloc(GHND, BUFSIZE);
GetDlgItemText(hw, MY_TEXT, buf, BUFSIZE-1);
dest = (char *)GlobalLock(hgl);
strcpy(dest, buf);
OpenClipboard(NULL);
EmptyClipboard();
SetClipboardData(CF_TEXT, hgl);
CloseClipboard();
GlobalUnlock(NULL);
return TRUE;
}
Я копирую из поля Edit, BUFSIZE = 1024, cmd — код команды
Замените
Код:
SetClipboardData(CF_TEXT, hgl);
на
Код:
SetClipboardData(CF_BITMAP, hBitmap);
Это лишнее — надо unlock тому, что до этого lock.
Случайные статьи

пеллетные котлы

Пеллетный котел Emtas

Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)