purebasic.info

PureBasic forum
Текущее время: Ср июн 19, 2019 12:20 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: что возвращает функция?
СообщениеДобавлено: Пн июн 10, 2019 1:40 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 852
Благодарил (а): 2 раз.
Поблагодарили: 40 раз.
Пункты репутации: 9
Собственно что возвращает функция SendMessage_(hWnd,1102,0,0). :roll:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: что возвращает функция?
СообщениеДобавлено: Пн июн 10, 2019 2:33 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11480
Благодарил (а): 4 раз.
Поблагодарили: 468 раз.
Определи какой константе соответствует число 1102 и найди ее описание.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: что возвращает функция?
СообщениеДобавлено: Пн июн 10, 2019 2:48 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6519
Благодарил (а): 28 раз.
Поблагодарили: 215 раз.
Пункты репутации: 57
Сергейчик писал(а):
Собственно что возвращает функция SendMessage_(hWnd,1102,0,0). :roll:

EM_GETOPTIONS
Это сообщение возвращает комбинацию описанных значений флага текущей опции Rich Edit Control
Описаны тут, где дается описание EM_SETOPTIONS
У сишников в Richedit.h

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: что возвращает функция?
СообщениеДобавлено: Пн июн 10, 2019 5:13 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 852
Благодарил (а): 2 раз.
Поблагодарили: 40 раз.
Пункты репутации: 9
Примерно и представлял что какие-то флаги опций.
А в нём есть возможность отключить моргание каретки? (хоть и придумал но всё же у кого какие идеи?)
И возможность прокрутки строк по целой высоте строки? :roll:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: что возвращает функция?
СообщениеДобавлено: Вт июн 11, 2019 6:54 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 822
Благодарил (а): 82 раз.
Поблагодарили: 23 раз.
Пункты репутации: 5
есть же айпишные функции для каретки, кажысь у Соковникова есть, непомню


Виталик, добавь к названию темы название функции, измени во всех постах, непонятно о чём речь


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: что возвращает функция?
СообщениеДобавлено: Вт июн 11, 2019 9:49 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 852
Благодарил (а): 2 раз.
Поблагодарили: 40 раз.
Пункты репутации: 9
newJS писал(а):
есть же айпишные функции для каретки, кажысь у Соковникова есть, непомню


Виталик, добавь к названию темы название функции, измени во всех постах, непонятно о чём речь

Есть то есть но ими ничего не сделать с едитор гаджетом. (всё дело в фокусе) :D


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: что возвращает функция?
СообщениеДобавлено: Ср июн 12, 2019 5:05 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 822
Благодарил (а): 82 раз.
Поблагодарили: 23 раз.
Пункты репутации: 5
Сергейчик писал(а):
Есть то есть но ими ничего не сделать с едитор гаджетом. (всё дело в фокусе)

а ты к Петру обратись, он тут недавно всем расказывал какой это замечательный редактор :D и какие у него "возможности"


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: что возвращает функция?
СообщениеДобавлено: Ср июн 12, 2019 11:52 am 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11480
Благодарил (а): 4 раз.
Поблагодарили: 468 раз.
Я писал что это RTF редактор. Разве нет? :)
Если микроскоп не подошел для забивания гвоздей, это не значит что он плохой инструмент. Просто не нужно использовать его не по назначению. :D
Вполне вероятно что в RichEdit можно отключить мигание каретки. Нужно искать соответствующую команду.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: что возвращает функция?
СообщениеДобавлено: Чт июн 13, 2019 6:31 pm 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 303
Благодарил (а): 14 раз.
Поблагодарили: 33 раз.
Пункты репутации: 2
Сергейчик писал(а):
возможность отключить моргание каретки?
Сергейчик писал(а):
Есть то есть но ими ничего не сделать с едитор гаджетом. (всё дело в фокусе) :D
Чего это "с едитор гаджетом ничего не сделать" ?
Код:
1
2
3
4
5
6
7
OpenWindow(0, 0, 0, 200, 100, "", #PB_Window_SystemMenu|1)
EditorGadget(0, 0, 0, 200, 200)
SetCaretBlinkTime_(-1)
Repeat
  Event.l = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
End



Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: что возвращает функция?
СообщениеДобавлено: Сб июн 15, 2019 5:22 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 852
Благодарил (а): 2 раз.
Поблагодарили: 40 раз.
Пункты репутации: 9
repeat писал(а):
Сергейчик писал(а):
возможность отключить моргание каретки?
Сергейчик писал(а):
Есть то есть но ими ничего не сделать с едитор гаджетом. (всё дело в фокусе) :D
Чего это "с едитор гаджетом ничего не сделать" ?
Код:
1
2
3
4
5
6
7
OpenWindow(0, 0, 0, 200, 100, "", #PB_Window_SystemMenu|1)
EditorGadget(0, 0, 0, 200, 200)
SetCaretBlinkTime_(-1)
Repeat
  Event.l = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
End


Выключив моргание остаётся линия каретки.
а с фокусом так. :roll:
ps:ради интереса ещё хочу адрес памяти на данные найти.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
 
Global Rodnoy_calbak.i
Global Rodnoy_calbak2.i
Global  ssi.SCROLLINFO;структура для управления прокрутками
  ssi\cbSize = SizeOf(ssi)
  ssi\fMask = #SIF_ALL;| #SIF_PAGE | #SIF_RANGE | #SIF_TRACKPOS
 
  Procedure NASH_calbak(hWnd, Msg, wParam, lParam);гаджета 0
Protected Rezultat.i
  If msg<>#WM_SETFOCUS;если будет сообщение на включение то в игнор
 
       Rezultat=CallWindowProc_(Rodnoy_calbak, hWnd, Msg, wParam, lParam);сначала прыгнем в родной обработчик    
     Else
       
       Debug "Заглушка в действии"
       ProcedureReturn 1
     EndIf
 
  ProcedureReturn Rezultat
EndProcedure  
Procedure NASH_calbak2(hWnd, Msg, wParam, lParam);гаджета 0
Protected Rezultat2.i
 
       Rezultat2=CallWindowProc_(Rodnoy_calbak2, hWnd, Msg, wParam, lParam);сначала прыгнем в родной обработчик    
       
       Select msg
     Case #WM_VSCROLL
       GetScrollInfo_(hWnd,#SB_VERT,@ssi)
       Debug ssi\nTrackPos
         Select (wParam & $ffff);на любое событие
           Case #SB_THUMBTRACK  ;нажали левой кнопкой мыши на ползунок и тащим его
             
             
             PostMessage_(GadgetID(0),$115, 4 + $10000 *ssi\nTrackPos,0);работает на прокрутку чужого скрола в окне
         EndSelect
      ;Case
          CloseWindow_(gadget)
      Case #WM_DESTROY
 
          DestroyWindow_(gadget)    
         
         
      EndSelect
 
  ProcedureReturn Rezultat2
EndProcedure  
 
 
 
 
 
 
 
 
OpenWindow(0, 0, 0, 500, 500, "TestEdit",#PB_Window_SystemMenu| #PB_Window_SizeGadget | #PB_Window_MinimizeGadget| #PB_Window_MaximizeGadget | #PB_Window_ScreenCentered)
EditorGadget(1,110,10,380,480)
 
EditorGadget(0,10,10,100,480)
 
SendMessage_(GadgetID(0),#EM_SHOWSCROLLBAR,#SB_VERT,#False);скрыть прокрутку
 
 
 
       Rodnoy_calbak= GetWindowLongPtr_(GadgetID(0), #GWL_WNDPROC)
       
       SetWindowLongPtr_(GadgetID(0), #GWL_WNDPROC,  @NASH_calbak());назначаем свой обработчик
       SendMessage_(GadgetID(0),#WM_KILLFOCUS,0,0);вырубить фокус с кареткой
       ;HideCaret_(GadgetID(0));Прячет каретку
 
 
 
              Rodnoy_calbak2= GetWindowLongPtr_(GadgetID(1), #GWL_WNDPROC)
       SetWindowLongPtr_(GadgetID(1), #GWL_WNDPROC,  @NASH_calbak2());назначаем свой обработчик
       SendMessage_(GadgetID(1),#WM_KILLFOCUS,0,0);вырубить фокус с кареткой
       
       
       
       
       
     
Debug GetCurrentProcess_()  
Debug GetCurrentProcessId_()
*baseaddress = $1000000
Global razmer.l
Global mem.i
Debug ReadProcessMemory_(GetCurrentProcessId_(), *baseaddress, @mem, 200, @razmer)
 
Debug razmer
Debug PeekS(@mem,-1,#PB_Unicode)
 
 
 
 For a=0 To 500
s.s=Str(a)
     For f=0 To Len(s) Step 1
       SendMessage_(GadgetID(0),#WM_CHAR,PeekA(@s+f*2),0)
       SendMessage_(GadgetID(1),#WM_CHAR,PeekA(@s+f*2),0)
 
    Next
       SendMessage_(GadgetID(0),#WM_KEYDOWN,13,0);;crlf
       SendMessage_(GadgetID(1),#WM_KEYDOWN,13,0);;crlf
 
 Next
 
 
Repeat
Event = WaitWindowEvent()
 
Until Event = #PB_Event_CloseWindow
 
 
 
 
 
 
 
 
 
 
 
 



Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: что возвращает функция?
СообщениеДобавлено: Сб июн 15, 2019 7:27 pm 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 303
Благодарил (а): 14 раз.
Поблагодарили: 33 раз.
Пункты репутации: 2
Сергейчик писал(а):
Выключив моргание остаётся линия каретки.
Хлопнуть её и делов то DestroyCaret_
Сергейчик писал(а):
ps:ради интереса ещё хочу адрес памяти на данные найти.
Кажись перед ReadProcessMemory_ нужно что-то типа OpenProcess :?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: что возвращает функция?
СообщениеДобавлено: Сб июн 15, 2019 8:03 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 852
Благодарил (а): 2 раз.
Поблагодарили: 40 раз.
Пункты репутации: 9
repeat писал(а):
Сергейчик писал(а):
Выключив моргание остаётся линия каретки.
Хлопнуть её и делов то DestroyCaret_
Сергейчик писал(а):
ps:ради интереса ещё хочу адрес памяти на данные найти.
Кажись перед ReadProcessMemory_ нужно что-то типа OpenProcess :?

Не хлопается она DestroyCaret_ первый клик по окну или разворачивание посылает setfocus и она снова начинает работать а блокирование этого сообщения не даёт ей включиться :D
ps С кареткой ещё муть в том что выходя с верхнего края окна при появлении GetCaretPos_(@pp) шлёт 0 до тех пор пока полностью не вылезет,хотел типа не подсветки а просто подчёркнутую линию порисовать,так плюс ещё сообщения летят в круговерть от едитора. :roll:
А после SetCaretBlinkTime_(-1) вобще перестала моргать в редакторах :?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: что возвращает функция?
СообщениеДобавлено: Сб июн 15, 2019 8:35 pm 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 303
Благодарил (а): 14 раз.
Поблагодарили: 33 раз.
Пункты репутации: 2
Сергейчик писал(а):
А после SetCaretBlinkTime_(-1) вобще перестала моргать в редакторах :?
Сперва CaretBlinkTime.l = GetCaretBlinkTime_() а при потере фокуса SetCaretBlinkTime_(CaretBlinkTime) :?
А если флаг использовать для включения?
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Global *Long
Global flag.b = 0
 
Procedure GadgetCallback(hWnd.l, uMsg.l, wParam.l, lParam.l)
  If uMsg = #WM_SETFOCUS And flag = 0
    DestroyCaret_()
    ProcedureReturn 0
  EndIf  
  ProcedureReturn CallWindowProc_(*Long, hWnd, uMsg, wParam, lParam)
EndProcedure
 
 
OpenWindow(0, 0, 0, 200, 100, "", #PB_Window_SystemMenu|1)
EditorGadget(0, 0, 0, 200, 75)
ButtonGadget(1, 5, 78, 90, 20, "Вкл")
ButtonGadget(2, 105, 78, 90, 20, "Выкл")
*Long = SetWindowLong_(GadgetID(0), #GWL_WNDPROC, @GadgetCallback())
Repeat
  Event.l = WaitWindowEvent()
  If Event = #PB_Event_Gadget And EventGadget() = 1
    flag = 1
    SetActiveGadget(0)
  EndIf
  If Event = #PB_Event_Gadget And EventGadget() = 2
    flag = 0
  EndIf  
Until Event = #PB_Event_CloseWindow
End



Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: что возвращает функция?
СообщениеДобавлено: Сб июн 15, 2019 10:53 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 852
Благодарил (а): 2 раз.
Поблагодарили: 40 раз.
Пункты репутации: 9
Мне не нужно её включать а нужно просто отключить и что бы она осталась в таком отключенном состоянии :roll:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
Global *Long
 
 
Procedure GadgetCallback(hWnd.l, uMsg.l, wParam.l, lParam.l)
  If uMsg <> #WM_SETFOCUS
   
    ProcedureReturn CallWindowProc_(*Long, hWnd, uMsg, wParam, lParam)
  ElseIf uMsg=#WM_SETFOCUS and lParam=#true
    ProcedureReturn CallWindowProc_(*Long, hWnd, uMsg, wParam, lParam)
 
   Else
    ProcedureReturn 0
  EndIf  
 
EndProcedure
 
 
OpenWindow(0, 0, 0, 200, 100, "", #PB_Window_SystemMenu|1)
EditorGadget(0, 0, 0, 200, 75)
ButtonGadget(1, 5, 78, 90, 20, "Вкл")
ButtonGadget(2, 105, 78, 90, 20, "Выкл")
*Long = SetWindowLong_(GadgetID(0), #GWL_WNDPROC, @GadgetCallback())
Repeat
  Event.l = WaitWindowEvent()
  If Event = #PB_Event_Gadget And EventGadget() = 1
 
    SendMessage_(GadgetID(0),#WM_SETFOCUS ,0,1)
  EndIf
  If Event = #PB_Event_Gadget And EventGadget() = 2
   SendMessage_(GadgetID(0),#WM_KILLFOCUS ,0,0)
  EndIf  
Until Event = #PB_Event_CloseWindow
End
 



Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: что возвращает функция?
СообщениеДобавлено: Вс июн 16, 2019 8:31 am 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 303
Благодарил (а): 14 раз.
Поблагодарили: 33 раз.
Пункты репутации: 2
Ну, тогда так:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Global *Long
 
Procedure GadgetCallback(hWnd.l, uMsg.l, wParam.l, lParam.l)
  If uMsg = #WM_SETFOCUS
    ProcedureReturn 0
  EndIf  
  ProcedureReturn CallWindowProc_(*Long, hWnd, uMsg, wParam, lParam)
EndProcedure
 
 
OpenWindow(0, 0, 0, 200, 100, "", #PB_Window_SystemMenu|1)
EditorGadget(0, 0, 0, 200, 100)
*Long = SetWindowLong_(GadgetID(0), #GWL_WNDPROC, @GadgetCallback())
Repeat
  Event.l = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
End



Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB