Уроки Iczelion'а


         

Урок 33 . Контрол Richedit: Основы. - часть 13


invoke SendMessage, hwndRichEdit, EM_SETCHARFORMAT, \ SCF_ALL, addr cfm Ret SetColor endp

После установки цвета, Вы должны освободить буфер отмены, потому что действие изменения текста/цвета фона возможно отменить. Мы посылаем сообщение EM_EMPTYUNDOBUFFER, чтобы сделать этого.

invoke SendMessage, hwndRichEdit, EM_EMPTYUNDOBUFFER, 0,0

После заполнения структуры CHARFORMAT, мы посылаем EM_SETCHARFORMAT richedit контролу, определяя SCF_ALL флаг в wParam, чтобы указать, что мы хотим, чтобы форматирование текста применилось ко всему тексту.

Обратите внимание, что, когда мы создавали richedit контрол, мы не определили его размер и позицию. Дело в том, что мы хотим, чтобы он закрыл всю клиентскую область родительского окна. Мы изменяем его размеры всякий раз, когда изменяется размер родительского окна.

.elseif uMsg== WM_SIZE Mov eax, lParam Mov edx, eax and eax, 0FFFFh Shr edx, 16 invoke MoveWindow, hwndRichEdit, 0,0, eax, edx, TRUE

В вышеупомянутом фрагменте кода, мы используем новые размеры клиентской области в lParam, чтобы изменить размеры richedit контрола с помощью MoveWindow.

Когда пользователь кликает на строке меню Файл/Правка, мы обрабатываем сообщение WM_INITPOPUPMENU так, чтобы мы могли установить состояние некоторых пунктов в подменю перед отображением эго пользователю. Например, если файл уже открыт в richedit контроле, мы хотим отключить пункт открыть в подменю и включить пункт сохранить, сохранить как... и т.д.

В случае со строкой меню Файл, мы используем переменную FileOpened как флаг, чтобы определить, открыт ли уже файл. Если значение в этой переменной TRUE, то мы знаем, что файл уже открыт.

.elseif uMsg==WM_INITMENUPOPUP mov eax,lParam .if ax==0 ; меню Файл .if FileOpened==TRUE ; файл уже открыт invoke EnableMenuItem,wParam,IDM_OPEN,MF_GRAYED invoke EnableMenuItem,wParam,IDM_CLOSE,MF_ENABLED invoke EnableMenuItem,wParam,IDM_SAVE,MF_ENABLED invoke EnableMenuItem,wParam,IDM_SAVEAS,MF_ENABLED .else invoke EnableMenuItem,wParam,IDM_OPEN,MF_ENABLED invoke EnableMenuItem,wParam,IDM_CLOSE,MF_GRAYED invoke EnableMenuItem,wParam,IDM_SAVE,MF_GRAYED invoke EnableMenuItem,wParam,IDM_SAVEAS,MF_GRAYED .endif




Содержание  Назад  Вперед