Привет masm32 RichEdit, который работает в RTF-ANSII, позволяет в ставлять символы из Unicod`a, с помощью копи-пасте. Программно - не получается, редакторы коды не понимают Unicod, или я что-то не понимаю. Может кто-нибудь сталкивался с этим ? В одной из статей встретил упоминание о том, что существует ресурс - строки символов.Что это такое , как с ними работать нигде не нашел... Ели не трудно дайте ссылку на описание технологии втавления картинок в RTF. Гда-то видел на форуме , найти невозможно ничего..
В своё время разбирался со вставлянием картинок в ричэдит. Мало что помню, но основные ссылки остались. Этими же методами вставляется gif точно и вроде jpg/png. A Rich Edit Control That Displays Bitmaps and Other OLE Objects Insert any HBITMAP (Bitmap) in your RichEdit Control Inserting a bitmap file into a CRichEditCtrl How to insert a bitmap into an RTF document using the RichEdit control in Visual C++ 6.0 И вот занятное чтиво. Extending RichTextBox Extending RichTextBox - Part II Extending RichTextBox - Part III The RTF Cookbook
Только щас понял, о чём это ты К RichEdit никакого отношения не имеет и никак не поможет вставлять в него юникод. Работают с ними точно также как и с любыми другими ресурсами: FindResource, LoadResource и т.д... Насчет юникода... должно работать. Во всяком случае в спецификации это определено. Кстати, советую разобраться с потоковым водом/выводом в/из ричэдита. Это сложнее, но на несколько порядков быстрее и можно делать всё что угодно (в пределах спецификации, разумеется). Rich Text Format (RTF) Version 1.5 Specification Word 2003: Rich Text Format (RTF) Specification, version 1.8 По потоковому в/в можно глянуть тут: Ввод-вывод в RichEdit Painless streaming of rich text to/from CRichEditCtrl
Одна из основных проблем - редактор кода MasmBuildere не понимает Unicod. А так было бы просто ReplaiseSel там какойнить. Да и никакие редакторы его почему-то не понимают. а вот это ещё код : mov ax, "s" Можно как-нибудь по другому реализовать? Предположим код символа в U. - 2663 НО,если редактор кода не хочет ловить мышей - нужно как-то числом символ вставлять , он в ax не влезет и куда его совать? Тёмный лес,короче.
Формат RTF вызывает у меня , пока, чувство глубокого недоумения... Вставляю в пустой файл символ - трефа ,например. В другой тоже пустой ,- пика . Смотрю на них, смотрю... отличаются они 1 цифрой( 4 и 7 ) но если поменять 4 на 7 hex редактором , пики не получается а получеется квадратик ... странно Кстати из всех hex - редакторов больше всего нравится "Tea" (можно редактировать) да он и универсальный к тому-же, но написан не на асме... Его можно скачать на freeware.ru
А его никто не понимает, т.к. масм жуёт сорцы только в ansi. Вставляй символы через "syms dw 2663, 2663, 0".
Оказывается в Word`e - символы, их можно посмотреть, - в 16-ричном представлении Код (Text): EditWndProc PROC hEdit:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD .if uMsg==WM_CHAR mov eax,wParam .if al =="т" mov ax,02663h .endif invoke CallWindowProc,OldWndProc,hEdit,uMsg,eax,lParam ret .else invoke CallWindowProc,OldWndProc,hEdit,uMsg,wParam,lParam ret .endif xor eax,eax ret EditWndProc endp Это код, как легко увидеть, вставляет символ трефы при нажатии "т". Уже полегче...
Сори, если непонятно выразился - чтобы не искать кодировки unicoda, можно посмотреть в Worde - при вставке символа - он пишет его код. У меня целая куча доков, а кодировок U. почему-то нет.(их конечно можно найти, но инет - 2 р мгбт и этих мгбт-ов всегда не хватает ...)
Спасибо , я просто ещё слепой котёнок...Пока вырасту - все уже перейдут на 64 бита, и 8 процессоров...и монитор 30 дюймов, с разрешением 2.800 на 2.400. Как угнаться за прогрессом? Можт не гнаться за ним, а начать програмировать для 128-битных процессоров? Сори за грустное лирическое отступление..
Veter Не расстраивайся. Прогресс в процессорной области, по сути, уже как лет пять топчется на месте. 64 бита - это уже надолго. Единственная опасность того, что знания обесценятся - это если изобретут квантовый компьютер, который массово войдёт в нашу жизнь .
Идея ,мне кажется интересная , хотя,может быть и глупая - попробовать сделать эмулятор 128 процессора и соотв., 128-битный ассемблер Лет через 10 окажется ,что на Wasm.ru - ЕСТЬ программное обеспечение для таких процессоров. И наш сайт превратится в мировой центр программерской мысли! А разве производителя процессоров не интересно будет узнать что напрограмировали для про.,которые ещё только планируются к производству и какие возникли у нас умные мысли на этот счёт? А мы - тут-как тут .... и ....Сори за "мы" и "у нас".
Извиняюсь, за болтовню... Обнаружилось, что субклассировать редит не надо - просто послать ему : invoke SendMessage,hwndRichEdit,WM_CHAR,02663h,0 и всё ок( 2663h - символ трефы ) Не могу решить проблему - некоторорые символы отображаются не так, как хотелось бы - слишком маленькие или большие. Если при вставке такого символа изменить его размер с помощью CHARFORMAT, - обратно параметры фонта не удается вернуть никаким образом.( Изначально фонт создается с помощью CreatIndirect - такой выглядит значительно лучшее...). Можно менять цвет и фонт остается прежним, но размер ....и все