purebasic.info

PureBasic forum
Текущее время: Пн окт 22, 2018 2:32 am

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




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Немного о мышке)
СообщениеДобавлено: Пн июн 04, 2012 12:47 pm 
Не в сети
GameC@Soft
Аватар пользователя

Зарегистрирован: Сб сен 22, 2007 12:45 pm
Сообщений: 1084
Откуда: Я из лесу вышел, и сразу зашел, в босоножках дырявых и взлядом ночным.
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
В общем мне понадобилось чтобы в оконном режиме курсор мышки мог свободна блуждать по ОС а не был привязан к открытому окну.... В поисках отвязать мышку от окна я написал функции для окна. Ничего сверхъестественного, но кому то может пригодится....

PMouse - это фиксация нажатия клавиш мышки
RMouse - это фиксация отжатия клавиш мышки


Код:
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
InitSprite()
InitKeyboard()
 
 
OpenWindow(0,0,0,800,600,"",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0),0,0,800,600,0,0,0,#PB_Screen_NoSynchronization)
 
SetFrameRate(80)
 
; глобальные переменные
Global  event
 
Procedure FPS(title=0,window=0, title$="")
  Static fps, sec, ofps, osec
  sec=Second(Date())
  If sec<>osec : osec=sec : fps=ofps : ofps=0
    If title : SetWindowTitle(window, title$+" | FPS: "+Str(fps)) : EndIf
    ProcedureReturn fps
  EndIf
  ofps+1
EndProcedure
 
; - Работа с мышкой
Procedure PMouseL()
  Static mevent
  If event=513 : mevent=1 : ElseIf event=514 : mevent=0 : EndIf
  ProcedureReturn mevent
EndProcedure
 
Procedure RMouseL()
  Static mevent
  If event=514 : mevent=1 : Else : mevent=0 : EndIf
  ProcedureReturn mevent
EndProcedure
 
Procedure PMouseR()
  Static mevent
  If event=516 : mevent=1 : ElseIf event=517 : mevent=0 : EndIf
  ProcedureReturn mevent
EndProcedure
 
Procedure RMouseR()
  Static mevent
  If event=517 : mevent=1 : Else : mevent=0 : EndIf
  ProcedureReturn mevent
EndProcedure
 
Procedure WMouseX(window=0)
ProcedureReturn WindowMouseX(window)  
EndProcedure
 
Procedure WMouseY(window=0)
ProcedureReturn WindowMouseY(window)  
EndProcedure
 
Procedure MouseDX(window=0)
  Static x, ox
  x=WindowMouseX(window)
  dx=x-ox : ox=x
  ProcedureReturn dx
EndProcedure
 
Procedure MouseDY(window=0)
  Static y, oy
  y=WindowMouseY(window)
  dy=y-oy : oy=y
  ProcedureReturn dy
EndProcedure
 
Repeat
  event=WaitWindowEvent(10)
  If event>0 : Debug event : EndIf
 
  FlipBuffers() : ClearScreen(0) : ExamineKeyboard() :   FPS(1)
   
  If event=#WM_CLOSE : q=1 : EndIf
 
Until q=1


_________________
"Самый большой глюк в PureBasic - это твоя голова...." (с) Артем
Мой сайт: http://feelzone.org.ua/


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

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


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

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


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

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