Показать сообщение отдельно

  #2  
Старый 15.10.2009, 02:58
d_x
Постоянный
Регистрация: 25.03.2008
Сообщений: 670
Провел на форуме:
4137635

Репутация: 2407


По умолчанию

На ассемблере набросал, но думаю, что будет понятно.
Код:
      .486                      ; create 32 bit code
      .model flat, stdcall      ; 32 bit memory model
      option casemap :none      ; case sensitive

      include \masm32\include\windows.inc
      include \masm32\include\user32.inc
      include \masm32\include\kernel32.inc
      include \masm32\macros\macros.asm

      includelib \masm32\lib\user32.lib
      includelib \masm32\lib\kernel32.lib

.code

start:
invoke FindWindow,chr$("Notepad"),chr$("Untitled - Notepad")
invoke FindWindowEx,eax,0,chr$("Edit"),0 ;нашли дочернее окно - текстовое поле

mov edi,eax

invoke SendMessage,edi,WM_SETTEXT,0,chr$("hello") ;можно просто задать для него текст

invoke SendMessage,edi,EM_SETSEL,-2,-2 ;переместим каретку в конец

invoke SendMessage,edi,WM_CHAR,10,1 ;можно посимвольно слать
invoke SendMessage,edi,WM_CHAR,'l',1
invoke SendMessage,edi,WM_CHAR,'o',1
invoke SendMessage,edi,WM_CHAR,'l',1

invoke SendMessage,edi,EM_SETSEL,-2,-2 ;переместим каретку в конец
invoke SendMessage,edi,EM_REPLACESEL,0,chr$(13,10,"more text") ;можно дополнить текст

invoke ExitProcess,0
end start
 
Ответить с цитированием