Сейчас на форуме: bartolomeo, vasilevradislav, rmn, Magister Yoda (+7 невидимых)

 eXeL@B —› Программирование —› RichEdit help!
Посл.ответ Сообщение


Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 09 июня 2008 18:07
· Личное сообщение · #1

До настоящего момента как-то не возникало потребности в данном контроле, но вот возникло.
Сейчас пишу прогу, и по ходу работы надо чтобы она выводила лог в ричедит.
Прога на асме. Какой функцией надо посылать сообщения в контрол, чтобы предыдущее сообщение сохранялось? И в целом формировался непрерывный лог.
SetWindowText?

-----
aLL rIGHTS rEVERSED!





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 09 июня 2008 18:31
· Личное сообщение · #2

StreamProcIn proc dwCookie, lpBuffer, lSize, lpRead
что там делаем и потом текст дополняем
StreamProcIn endp

LOCAL EdtS:EDITSTREAM
pop EdtS.dwCookie
mov EdtS.dwError, 0h
mov EdtS.pfnCallback, offset StreamProcIn
invoke SendMessage, REWin, EM_STREAMIN, SF_TEXT, addr EdtS


не уверен но помойму так.

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 09 июня 2008 18:36
· Личное сообщение · #3

вот 2 раза там на кнопку нажми и увидишь. Смотри как добавляется там

31fe_09.06.2008_CRACKLAB.rU.tgz - ConsoleOutput.zip

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 09 июня 2008 22:28
· Личное сообщение · #4

Вот ещё для вставки туда текста, хоть на С, но всё же там всё на апи, думаю разберёшься. А вот кто-нить быть может сталкивался с проблемой распечатки текста из RichEdit'а на принтер? Если такие есть - отзовитесь пожалуйста

fa46_09.06.2008_CRACKLAB.rU.tgz - InsertText.rar

-----
все багрепорты - в личные сообщения





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 09 июня 2008 22:53
· Личное сообщение · #5

Опять же не скажу точно но методика использовалась в исходниках гдето приложено. И еще вот ..

LinePrint MACRO pstring:REQ

mov eax, LINE_WIDTH
add yP, eax

invoke lstrlen, pstring
invoke TextOut, PD.hDC, COLUMN_1, yP, pstring, eax

mov eax, LINE_WIDTH
add yP, eax

ENDM

Do_Print PROC hWnd:DWORD, wParam:DWORD, lParam:DWORD
LOCAL memdc :DWORD
LOCAL hbmp :DWORD
LOCAL bmp :BITMAP

; Initialize the Print Dialog
; --===============================================
mov yP, 0 ; Start of page..

jmp @F
FontMS db "MS Sans Serif",0
@@:

; Initialize the Print Dialog
; --===============================================
mov PD.lStructSize, SIZEOF PD
mov eax,hWnd
mov PD.hwndOwner, eax
mov eax,hInstance
mov PD.hInstance, eax
mov PD.Flags, PD_RETURNDC ; Return Users DC choices

; Show the Print Dialog Box!
; --===============================================
invoke PrintDlg, offset PD
cmp eax, FALSE
je Done

; IF you specify the PD_RETURNDC value in the Flags member of the PRINTDLG structure and the user
; selects Print To File from the Print dialog box, you can use the DC returned in the hDC member
; of the structure to generate output, but only after you prepare the file for output by specifying
; the name of the file in the lpszOutput member of the DOCINFO structure and calling the StartDoc function.

; Check Get the Printed X+Y extence..
; --===============================================
invoke GetDeviceCaps, PD.hDC, HORZRES
shr eax, 1
mov COLUMN_2, eax ; 2 columns per page
invoke GetDeviceCaps, PD.hDC, VERTRES
shr eax, 6
mov LINE_WIDTH, eax ; 64 Lines / page
mov eax,LINE_WIDTH
mov COLUMN_1,eax

; Create A Printer Font..
; --===============================================
invoke lstrcpy, addr LF.lfFaceName, addr FontMS
mov eax,LINE_WIDTH
mov LF.lfHeight,eax
mov LF.lfWeight, 600
invoke CreateFontIndirect, ADDR LF
mov pFont, eax

; Set up the Document Info Structure
; --===============================================
mov DOC.cbSize, SIZEOF DOC
mov DOC.lpszDocName, offset DocTitle
mov DOC.lpszOutput, NULL
mov DOC.fwType, NULL

; Start the Doc..
; Ensures proper print order of pages..
; --===============================================
invoke StartDoc, PD.hDC, offset DOC

; Start the Page..
; Prepares the printer driver to accept data.
; --===============================================
invoke StartPage, PD.hDC

; Load a Printer Font..
; --===============================================
invoke SelectObject, PD.hDC, pFont

; Print the lines here
; --===============================================
jmp @F
; This is an example
szTestMessage db "This is a test",0
szTestMessage2 db "This is a test2",0
@@:

LinePrint OFFSET szTestMessage
LinePrint OFFSET szTestMessage2

invoke CreateCompatibleDC,PD.hDC
mov memdc,eax
invoke LoadBitmap,hInstance,10000
mov hbmp,eax
invoke SelectObject,memdc,hbmp
push eax
invoke GetObject,hbmp,SIZEOF bmp,ADDR bmp

invoke BitBlt,PD.hDC,0,0,bmp.bmWidth,bmp.bmHeight,memdc,0,0,SRCCOPY

pop eax
invoke SelectObject,memdc,eax
invoke DeleteDC,memdc
invoke DeleteObject,hbmp

; Do the End of Page (feed out the paper)
; --===============================================
invoke EndPage, PD.hDC
invoke EndDoc, PD.hDC
invoke DeleteDC, PD.hDC

Done:
ret
Do_Print ENDP


e60c_09.06.2008_CRACKLAB.rU.tgz - Рабочий стол.rar

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 10 июня 2008 23:07
· Личное сообщение · #6

HandMill
mak

Спасибо, помогло! ;)

-----
aLL rIGHTS rEVERSED!





Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 04 июля 2008 10:26
· Личное сообщение · #7

Собственно вылезла еще одна проблема...
Все выводиться в контрол нормально до последней нижней строки.
Как только начинает выводить последнюю строку с низу контрола и переводить коретку... текс улетает наверх за пределы верхнего края контрола, т.е. поле ричконтрола становиться чистым и начинается его заполнение строками с верху в низ....
Как решить эту проблему, чтобы вывод был равномерным без таких скачков за верхний предел контрола?

-----
aLL rIGHTS rEVERSED!





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 04 июля 2008 12:55
· Личное сообщение · #8

ого ..я такого не видел еще .. Код покажешь ?

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube



 eXeL@B —› Программирование —› RichEdit help!
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати