source: trunk/ab5.0/ablib/src/Classes/ActiveBasic/Windows/UI/Form.ab@ 551

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

Buttonの追加。WM_COMMANDから子のClickイベントを発生させる仕組みの追加など。

File size: 2.0 KB
Line 
1'Classes/ActiveBasic/Windows/UI/Form.ab
2
3#require <Classes/ActiveBasic/Windows/UI/Control.ab>
4#require <Classes/ActiveBasic/Windows/UI/Button.ab>
5
6Namespace ActiveBasic
7Namespace Windows
8Namespace UI
9
10/*!
11@date 2008/07/13
12@brief トップレベルウィンドウを表すクラス。
13@author Egtra
14*/
15
16Class Form
17 Inherits Control
18Public
19 Sub Form()
20 AddMessageEvent(WM_COMMAND, AddressOf (OnCommand))
21 End Sub
22
23Protected
24 Override Sub GetCreateStruct(ByRef cs As CREATESTRUCT)
25 cs.style = WS_OVERLAPPEDWINDOW
26 End Sub
27
28 Sub OnCommand(sender As Object, e As MessageArgs)
29 Dim id = e.WParam And &hffff 'LOWORD(e.WParam)
30 Dim cmd = (e.WParam >> 16) And &hffff 'HIWORD(e.WParam)
31 Dim hwnd = e.LParam As HWND
32 If cmd = BN_CLICKED And hwnd <> 0 Then
33 Dim c = Control.FromHWnd(hwnd)
34 If IsNothing(c) = False Then
35 Dim b = c As Button
36 b.RaiseClick()
37 End If
38 End If
39 End Sub
40
41#include "FormEvent.sbp"
42End Class
43
44End Namespace 'UI
45End Namespace 'Widnows
46End Namespace 'ActiveBasic
47
48'----------
49'テスト実行用
50
51#require <Classes/ActiveBasic/Windows/UI/Application.ab>
52#require <Classes/ActiveBasic/Windows/UI/Button.ab>
53
54Imports ActiveBasic.Windows.UI
55
56'OleInitialize()
57Control.Initialize(GetModuleHandle(0))
58
59Sub Paint(sender As Object, e As PaintDCArgs)
60 TextOut(e.Handle, 10, 10, "Hello world!", 12)
61End Sub
62
63Class MyForm
64 Inherits Form
65Public
66 Sub MyForm()
67 AddPaintDC(AddressOf (Paint))
68 AddMouseClick(AddressOf (Mouse))
69 s = "aaa"
70 End Sub
71
72' Sub Paint(sender As Object, e As PaintDCArgs)
73' TextOut(e.Handle, 10, 10, ToTCStr(s), s.Length)
74' End Sub
75
76 Sub Mouse(sender As Object, e As MouseArgs)
77 Invalidate()
78 End Sub
79
80 Sub OnClick(sender As Object, e As Args)
81 OutputDebugString(Ex"====OnClick====\r\n")
82 End Sub
83
84 s As String
85End Class
86
87Dim f = New MyForm
88f.Create()
89f.Text = "Hello"
90
91Dim b = New Button
92b.Create(f)
93b.Move(50, 50, 100, 100)
94b.Text = "Ok"
95b.AddClick(AddressOf(f.OnClick))
96
97Application.Run(f)
98f = Nothing
99System.GC.Collect()
100
101Control.Uninitialize()
102'OleUninitialize()
103
104End
Note: See TracBrowser for help on using the repository browser.