source: trunk/ab5.0/ablib/src/Classes/ActiveBasic/Windows/UI/Application.ab@ 547

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

Applicationクラスの追加

File size: 1.3 KB
Line 
1'Classes/ActiveBasic/Windows/UI/Application.ab
2
3Namespace ActiveBasic
4Namespace Windows
5Namespace UI
6
7/*!
8@date 2008/07/13
9@brief アプリケーション全体に関わるようなこと……、主にメッセージループを管理するクラス。
10@todo メッセージフィルタとマルチスレッド対応
11@author Egtra
12*/
13Class Application
14Public
15 /*!
16 @brief メッセージループを回す
17 @date 2008/07/13
18 @param[in] form メインウィンドウ
19 @author Egtra
20 */
21 Static Sub Run(form As Form)
22 f.Show(SW_SHOW)
23 If IsNothing(form) = False Then
24 form.AddMessageEvent(WM_DESTROY, AddressOf(Application.OnMainFormClosed))
25 End If
26
27 Dim m As MSG
28 Do
29 Dim ret = GetMessage(m, 0, 0, 0)
30 If ret = 0 Or ret = -1 Then
31 Exit Do
32 End If
33 TranslateMessage(m)
34 DispatchMessage(m)
35 Loop
36' OnThraedExit(EventArgs.Empty)
37 End Sub
38
39 /*!
40 @brief メインウィンドウなしでメッセージループを回す
41 @date 2008/07/13
42 @author Egtra
43 */
44 Static Sub Run()
45 Run(Nothing)
46 End Sub
47
48 /*!
49 @brief メッセージループを終わらせる。
50 @date 2008/07/13
51 @author Egtra
52 */
53 Static Sub ExitThread()
54 PostQuitMessage(0)
55 End Sub
56
57'#include "ApplicationEvent.sbp"
58
59Private
60 Static Sub OnMainFormClosed(sender As Object, e As EventArgs)
61 ExitThread()
62 End Sub
63
64 main As Form
65End Class
66
67End Namespace 'UI
68End Namespace 'Widnows
69End Namespace 'ActiveBasic
Note: See TracBrowser for help on using the repository browser.