source: trunk/ab5.0/ablib/TestCase/UI_Sample/mouse_watcher.ab@ 576

Last change on this file since 576 was 576, checked in by イグトランス (egtra), 16 years ago

ListBox, Dialogの追加。UI_Sample/mouse_watcherの追加。

File size: 2.7 KB
Line 
1#require <Classes/ActiveBasic/Windows/UI/Form.ab>
2#require <Classes/ActiveBasic/Windows/UI/ListBox.ab>
3#require <Classes/ActiveBasic/Windows/UI/Application.ab>
4
5#resource "UI_Sample.rc"
6
7Imports ActiveBasic.Windows.UI
8
9Const IDM_CLEAR_BUTTON = 100
10Const IDM_RECOED_LIST = 101
11
12Class MyForm
13 Inherits Form
14Public
15 Sub MyForm()
16 CreateForm()
17
18 Dim wpFont = GetStockObject(DEFAULT_GUI_FONT) As WPARAM
19
20 list = New ListBox
21 With list
22 .Create(This, IDM_RECOED_LIST, WS_VSCROLL, WS_EX_CLIENTEDGE)
23 .SendMessage(WM_SETFONT, wpFont, 0)
24 End With
25
26 AddResize(AddressOf(OnResize))
27 AddMouseClick(AddressOf(OnMouseClick))
28 AddMouseDoubleClick(AddressOf(OnMouseDoubleClick))
29 AddMouseMove(AddressOf(OnMouseMove))
30 AddMouseDown(AddressOf(OnMouseDown))
31 AddMouseUp(AddressOf(OnMouseUp))
32 AddMouseEnter(AddressOf(OnMouseEnter))
33 AddMouseLeave(AddressOf(OnMouseLeave))
34 AddMouseHover(AddressOf(OnMouseHover))
35
36 buttonClear = New Button
37 With buttonClear
38 .Create(This, IDM_CLEAR_BUTTON)
39 .Move(320, 20, 60, 30)
40 .Text = "Clear"
41 .AddClick(AddressOf(OnClearClick))
42 .SendMessage(WM_SETFONT, wpFont, 0)
43 End With
44
45 Show(SW_SHOWDEFAULT)
46 End Sub
47
48Private
49 Sub OnClearClick(sender As Object, e As Args)
50 LockWindowUpdate(list)
51 While list.SendMessage(LB_DELETESTRING, 0, 0) > 0
52 Wend
53 LockWindowUpdate(0)
54 End Sub
55
56 Sub OnResize(sender As Object, e As ResizeArgs)
57 list.Move(0, 0, 300, e.Y)
58 End Sub
59
60 Sub OnMouseClick(sender As Object, e As MouseArgs)
61 OnMouseEvent("Click", e)
62 End Sub
63
64 Sub OnMouseDoubleClick(sender As Object, e As MouseArgs)
65 OnMouseEvent("DoubleClick", e)
66 End Sub
67
68 Sub OnMouseMove(sender As Object, e As MouseArgs)
69 OnMouseEvent("Move", e)
70 End Sub
71
72 Sub OnMouseDown(sender As Object, e As MouseArgs)
73 OnMouseEvent("Down", e)
74 End Sub
75
76 Sub OnMouseUp(sender As Object, e As MouseArgs)
77 OnMouseEvent("Up", e)
78 End Sub
79
80 Sub OnMouseEnter(sender As Object, e As Args)
81 OnMouseEvent("Enter", New MouseArgs(MouseButtons.None, 0, 0, 0, 0))
82 End Sub
83
84 Sub OnMouseLeave(sender As Object, e As Args)
85 OnMouseEvent("Leave", New MouseArgs(MouseButtons.None, 0, 0, 0, 0))
86 End Sub
87
88 Sub OnMouseHover(sender As Object, e As MouseArgs)
89 OnMouseEvent("Hover", e)
90 End Sub
91
92 Sub OnMouseEvent(kind As String, e As MouseArgs)
93 Dim s = kind + ": X = " + Str$(e.X) + " Y = " + Str$(e.Y)
94 Dim lr = list.SendMessage(LB_ADDSTRING, 0, ToTCStr(s) As LPARAM)
95 If lr <> LB_ERR And lr <> LB_ERRSPACE Then
96 list.SendMessage(LB_SETCURSEL, lr As WPARAM, 0)
97 End If
98 End Sub
99
100 list As ListBox
101 buttonClear As Button
102End Class
103
104Control.Initialize(GetModuleHandle(0))
105
106Dim f = New MyForm
107Application.Run(f)
Note: See TracBrowser for help on using the repository browser.