- Timestamp:
- Jul 17, 2008, 11:20:10 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/ablib/src/Classes/ActiveBasic/Windows/UI/Form.ab
r547 r551 2 2 3 3 #require <Classes/ActiveBasic/Windows/UI/Control.ab> 4 #require <Classes/ActiveBasic/Windows/UI/Button.ab> 4 5 5 6 Namespace ActiveBasic … … 12 13 @author Egtra 13 14 */ 15 14 16 Class Form 15 17 Inherits Control 18 Public 19 Sub Form() 20 AddMessageEvent(WM_COMMAND, AddressOf (OnCommand)) 21 End Sub 22 16 23 Protected 17 24 Override Sub GetCreateStruct(ByRef cs As CREATESTRUCT) 18 With cs 19 .lpCreateParams = 0 20 '.hInstance 21 .hMenu = 0 22 .hwndParent = 0 23 .cy = CW_USEDEFAULT 24 .cx = CW_USEDEFAULT 25 .y = CW_USEDEFAULT 26 .x = CW_USEDEFAULT 27 .style = WS_OVERLAPPEDWINDOW 28 .lpszName = "" 29 '.lpszClass 30 .dwExStyle = 0 31 End With 25 cs.style = WS_OVERLAPPEDWINDOW 32 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 33 41 #include "FormEvent.sbp" 34 42 End Class … … 42 50 43 51 #require <Classes/ActiveBasic/Windows/UI/Application.ab> 52 #require <Classes/ActiveBasic/Windows/UI/Button.ab> 44 53 45 54 Imports ActiveBasic.Windows.UI … … 48 57 Control.Initialize(GetModuleHandle(0)) 49 58 59 Sub Paint(sender As Object, e As PaintDCArgs) 60 TextOut(e.Handle, 10, 10, "Hello world!", 12) 61 End Sub 62 50 63 Class MyForm 51 64 Inherits Form 52 65 Public 53 66 Sub MyForm() 54 Dim f = This 55 AddMessageEvent(WM_DESTROY, AddressOf (f.Destory)) 56 AddPaintDC(AddressOf (f.Paint)) 57 AddMouseClick(AddressOf (f.Mouse)) 58 s = "" 67 AddPaintDC(AddressOf (Paint)) 68 AddMouseClick(AddressOf (Mouse)) 69 s = "aaa" 59 70 End Sub 60 71 61 Sub Destory(sender As Object, e As EventArgs) 62 OutputDebugString(Ex"Destory\r\n") 63 PostQuitMessage(0) 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() 64 78 End Sub 65 79 66 Sub Paint(sender As Object, e As PaintDCEventArgs) 67 TextOut(e.Handle, 10, 10, ToTCStr(s), s.Length) 68 End Sub 69 70 Sub Mouse(sender As Object, e As MouseEventArgs) 71 Dim sb = New System.Text.StringBuilder 72 sb.Append("X = ").Append(e.X).Append(", Y = ").Append(e.Y) 73 s = sb.ToString 74 OutputDebugString(ToTCStr(s + " " + Hex$(ObjPtr(e)) + Ex"\r\n")) 75 Invalidate() 80 Sub OnClick(sender As Object, e As Args) 81 OutputDebugString(Ex"====OnClick====\r\n") 76 82 End Sub 77 83 … … 81 87 Dim f = New MyForm 82 88 f.Create() 89 f.Text = "Hello" 90 91 Dim b = New Button 92 b.Create(f) 93 b.Move(50, 50, 100, 100) 94 b.Text = "Ok" 95 b.AddClick(AddressOf(f.OnClick)) 96 83 97 Application.Run(f) 84 98 f = Nothing … … 89 103 90 104 End 91
Note:
See TracChangeset
for help on using the changeset viewer.