Пишу в FASM в секции .data структуру: Cf CHARFORMAT пишет illegal instruction. делаю по уроку Iczellion-a
typedef struct _charformat { UINT cbSize; _WPAD _wPad1; DWORD dwMask; DWORD dwEffects; LONG yHeight; LONG yOffset; COLORREF crTextColor; BYTE bCharSet; BYTE bPitchAndFamily; CHAR szFaceName[LF_FACESIZE]; _WPAD _wPad2; } CHARFORMAT;
struct CHARFORMAT { cbSize dd ? dwMask dd ? dwEffects dd ? yHeight dd ? yOffset dd ? crTextColor dd ? bCharSet dd ? bPitchAndFamily dd ? szFaceName BYTE LF_FACESIZE dup(?) _wPad2 dd ? ends сделал вот так вот. но он выделяет строку ends и пишет extra characters in line, а если убираю-out of memory. эту структура записал в отдельный inc файл
struct CHARFORMAT cbSize dd ? dwMask dd ? dwEffects dd ? yHeight dd ? yOffset dd ? crTextColor dd ? bCharSet dd ? bPitchAndFamily dd ? szFaceName db LF_FACESIZE dup(?) _wPad2 dd ? ends
ой, ошибка. BYTE == unsigned char struct CHARFORMAT cbSize dd ? dwMask dd ? dwEffects dd ? yHeight dd ? yOffset dd ? crTextColor dd ? bCharSet db ? bPitchAndFamily db ? szFaceName db LF_FACESIZE dup(?) _wPad2 dd ? ends
CHARFORMAT.szFaceName db dup(?) все равно тут ошибка и не компилит. вот код: format PE GUI 4.0 entry start include 'win32a.inc' include 'encoding\win1251.inc' ;Data Section section '.data' readable writeable LF_FACESIZE = 32 struct CHARFORMAT cbSize dd ? dwMask dd ? dwEffects dd ? yHeight dd ? yOffset dd ? crTextColor dd ? bCharSet db ? bPitchAndFamily db ? szFaceName db dup(?) _wPad2 dd ? ends а можно как нибудь без него обойтись? мне просто надо сделать смену шрифтов в RichEdit.
CHARFORMAT.szFaceName db dup(?) все равно тут ошибка и не компилит. вот код: format PE GUI 4.0 entry start include 'win32a.inc' include 'encoding\win1251.inc' ;Data Section section '.data' readable writeable LF_FACESIZE = 32 struct CHARFORMAT cbSize dd ? dwMask dd ? dwEffects dd ? yHeight dd ? yOffset dd ? crTextColor dd ? bCharSet db ? bPitchAndFamily db ? szFaceName db 32 dup(?) _wPad2 dd ? ends
И еще то, что вы сделали в секции .data - это объявление структуры, а надо еще создать ее экземпляр: section '.data' readable writeable cf CHARFORMAT <> section '.code' executable ... mov esi, cf.szFaceName ...
Microedition дак я не могу сделать потому,что структура не копмилится. он ее не понимает. в ней ошибка
Раз уж тема зашла о шрифте. Можно ли сделать fontdialog как в блокноте,чтобы он данные потом посылал в charformat. Если можно то дайте пожалуйста исходники, ссылки на статьи и тд. Заранее благодарен
ага. значит так. сделал FontDialog. Код (Text): структура CHOOSEFONT cf CHOOSEFONT mov [cf.lStructSize],sizeof.CHOOSEFONT mov [cf.hwndOwner],0 mov [cf.hDC],0 mov [cf.lpLogFont],0 mov [cf.iPointSize],0 mov [cf.Flags],CF_ANSIONLY+CF_EFFECTS+CF_SCREENFONTS mov [cf.rgbColors],0 mov [cf.lCustData],0 mov [cf.lpfnHook],0 mov [cf.lpTemplateName],0 mov [cf.hInstance],0 mov [cf.lpszStyle],0 mov [cf.nFontType],0 mov [cf.nSizeMin],0 mov [cf.nSizeMax],0 invoke ChooseFont,cf invoke SendMessage,[hRichEdit],WM_SETFONT,eax,0 появляется FontDialog. вопросто в том. как этот шрифт теперь применить к RichEdit-у? WM_SETFONT не пашет.