Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2011, 13:46   #1
shirowik
Новичок
Джуниор
 
Регистрация: 19.09.2011
Сообщений: 2
Радость Работа с MetaFile (.emf)

Кароче, есть файл с расширением .emf. Из него нужно получить сведения об имеющихся объектах: тип объекта и его координаты.

Я загрузил файл на канву, отображается нормально. Подскажите, что дальше делать?
shirowik вне форума Ответить с цитированием
Старый 19.09.2011, 15:45   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

shirowik

Я загрузил файл на канву, отображается нормально. Подскажите, что дальше делать?

Качать спецификацию формата, разбирать его внутренности, доставать инфу.
Rififi вне форума Ответить с цитированием
Старый 07.10.2011, 17:34   #3
shirowik
Новичок
Джуниор
 
Регистрация: 19.09.2011
Сообщений: 2
Вопрос

Так, вроде потихоньку начинаю разбираться. Почитав книжку Юаня Ф. "Программирование графики для Windows" родился следующий код для выведения записей метафайла в Grid. Только вот незадача - почему-то в таблицу ничего не выводится. Явно я что-то неверно делаю. Пожалуйста, помогите разобраться.
Код:
HENHMETAFILE hemf; // контексты устр-ва (метафайлы)
hemf=GetEnhMetaFile((const wchar_t*)("1.emf"));
int size = GetEnhMetaFileBits(hemf, 0, NULL);
BYTE * pBuffer = new BYTE[size];
GetEnhMetaFileBits(hemf, size, pBuffer);
const EMR * emr = (const EMR *) pBuffer;
int recno =0;
// Перебор всех записей EMF
while( (emr->iType)>=EMR_MIN && (emr->iType)<=EMR_MAX)
{
	recno++;
	StringGrid1->Cells[0][recno]=recno;
	StringGrid1->Cells[1][recno]=emr->iType;
	StringGrid1->Cells[2][recno]=emr->nSize;
	if ( emr->iType== EMR_EOF )
		break;
	emr = (const EMR *) ( ( const char * ) emr + emr->nSize );
}
delete [] pBuffer;
shirowik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование в emf файл vandrouny Win Api 0 17.10.2010 19:36
EMF - поворот текста mutabor Общие вопросы Delphi 5 23.03.2010 19:27
Шифрование текста в windows metafile HellchilD Помощь студентам 5 21.01.2010 17:33
Работа с webbrowser - Фреймы, работа с конкретным феймом в фрейме NewDelphi Фриланс 2 08.10.2009 11:00