source: dev/trunk/ab5.0/abdev/abdev/include/WindowComponents/MdiWindow.h@ 489

Last change on this file since 489 was 489, checked in by dai_9181, 16 years ago

abdevをATL化するための下準備

File size: 2.1 KB
Line 
1#pragma once
2
3namespace ActiveBasic{ namespace IDE{ namespace WindowComponents{
4
5
6class MdiWindow
7 : public CMDIFrameWindowImpl<MdiWindow>
8 , public CUpdateUI<MdiWindow>
9 , public CMessageFilter
10 , public CIdleHandler
11{
12public:
13 virtual BOOL PreTranslateMessage(MSG* pMsg){
14 if(CMDIFrameWindowImpl<MdiWindow>::PreTranslateMessage(pMsg))
15 return TRUE;
16
17 // アクティブな子ウィンドウにメッセージフィルタの機会を与える
18 HWND hWnd = MDIGetActive();
19 if(hWnd != NULL)
20 return (BOOL)::SendMessage(hWnd, WM_FORWARDMSG, 0, (LPARAM)pMsg);
21
22 return FALSE;
23 }
24
25 virtual BOOL OnIdle(){
26 UIUpdateToolBar();
27 UIUpdateStatusBar();
28 return FALSE;
29 }
30
31 BEGIN_UPDATE_UI_MAP(MdiWindow)
32 // エントリなし
33 END_UPDATE_UI_MAP()
34
35 BEGIN_MSG_MAP_EX(MdiWindow)
36 MSG_WM_CREATE(OnCreate)
37 COMMAND_ID_HANDLER_EX(ID_APP_EXIT, OnFileExit)
38 COMMAND_ID_HANDLER_EX(ID_FILE_NEW, OnFileNew)
39 COMMAND_ID_HANDLER_EX(ID_WINDOW_CASCADE, OnWindowCascade)
40 COMMAND_ID_HANDLER_EX(ID_WINDOW_TILE_HORZ, OnWindowTile)
41 COMMAND_ID_HANDLER_EX(ID_WINDOW_ARRANGE, OnWindowArrangeIcons)
42 CHAIN_MSG_MAP(CUpdateUI<MdiWindow>)
43 CHAIN_MSG_MAP(CMDIFrameWindowImpl<MdiWindow>)
44 END_MSG_MAP()
45
46 LRESULT OnCreate(LPCREATESTRUCT lpcs);
47
48 void OnFileExit(UINT uNotifyCode, int nID, HWND hWndCtl){
49 PostMessage(WM_CLOSE);
50 }
51
52 void OnFileNew(UINT uNotifyCode, int nID, HWND hWndCtl){
53 // 子ウィンドウを作成
54 MdiChild *child = new MdiChild();
55 child->CreateEx( m_hWndClient );
56 }
57
58 void OnWindowCascade(UINT uNotifyCode, int nID, HWND hWndCtl){
59 // 子ウィンドウを重ねて表示
60 MDICascade();
61 }
62
63 void OnWindowTile(UINT uNotifyCode, int nID, HWND hWndCtl){
64 // 子ウィンドウを上下に並べて表示
65 MDITile();
66 }
67
68 void OnWindowArrangeIcons(UINT uNotifyCode, int nID, HWND hWndCtl){
69 // 最小化された子ウィンドウのアイコンを整列
70 MDIIconArrange();
71 }
72};
73
74
75}}}
Note: See TracBrowser for help on using the repository browser.