Как создать собственное устройство GDI? - PullRequest
3 голосов
/ 19 апреля 2009

Можно ли создать пользовательское устройство GDI в режиме пользователя? Идея состоит в том, чтобы создать контекст устройства (HDC), который мы можем передать непрозрачному компоненту, чтобы при вызове компонентом функций GDI, таких как TextOut, мы могли получить фактическую текстовую строку.

1 Ответ

4 голосов
/ 20 апреля 2009

Я не очень много использовал GDI, но я слышал, что [метафайлы] (http://msdn.microsoft.com/en-us/library/dd145051(VS.85).aspx) записывают рисунок и могут быть воспроизведены. Возможно, вы сможете получить текстовую строку из него.

Я посмотрел больше, и вы можете создать GDI с CreateEnhMetaFile(), который записывает рисунок в метафайл. Сделайте так, чтобы компонент рисовал с помощью этого устройства GDI. Затем вы можете позвонить EnumEnhMetaFile(), передав ему обратный вызов. Ваш обратный вызов будет вызван с указателем на ENHMETARECORD. ENHMETARECORD начинается с [EMR] (http://msdn.microsoft.com/en-us/library/dd162512(VS.85).aspx).. У него есть элемент с именем iType, который является типом операции рисования.

...