Index: trunk/ab5.0/abdev/abdev/abdev.cpp
===================================================================
--- trunk/ab5.0/abdev/abdev/abdev.cpp	(revision 492)
+++ trunk/ab5.0/abdev/abdev/abdev.cpp	(revision 493)
@@ -988,55 +988,4 @@
 	return hChild;
 }
-void CreateNewFile(void){
-
-#ifdef THETEXT
-	NewTextEditWindow(NULL,WNDTYPE_TEXT);
-	return;
-#else
-	int FileType;
-	BOOL bAddToProject;
-	char temporary[MAX_PATH];
-
-	FileType=DialogBox(hResInst,MAKEINTRESOURCE(IDD_NEWFILE),hOwner,(DLGPROC)DlgNewFile);
-	if(FileType==-1) return;
-
-	if(FileType&0x00008000){
-		bAddToProject=1;
-		FileType&=0x0FFF;
-		lstrcpy(temporary,NewFileName);
-		if(!strstr(temporary,".")) lstrcat(temporary,".ab");
-		GetFullPath(temporary,ProjectInfo.dir);
-	}
-	else bAddToProject=0;
-
-	switch(FileType){
-		case FT_BASICPROGRAM:		//Basicプログラム
-		case FT_SUBPROGRAM:
-			if(bAddToProject){
-				WriteBuffer(temporary,0,0);
-				NewTextEditWindow(temporary,WNDTYPE_BASIC);
-				Project_File_Insert(temporary);
-			}
-			else NewTextEditWindow(NULL,WNDTYPE_BASIC);
-			break;
-
-		case FT_PROJECT:
-			DlgNewProjectWizard(hOwner);
-			break;
-
-		case FT_TEXT:
-			NewTextEditWindow(NULL,WNDTYPE_TEXT);
-			break;
-
-		case FT_HTML:
-			NewTextEditWindow(NULL,WNDTYPE_HTML);
-			break;
-
-		case FT_ICON:
-			NewIconEditWindow(NULL);
-			break;
-	}
-#endif
-}
 void CloseDocWindow(int WndNum){
 	int i2,i3;
@@ -1425,17 +1374,4 @@
 		case WM_COMMAND:
 			switch(LOWORD(wParam)){
-				case IDM_NEW:
-					CreateNewFile();
-					return 0;
-				case IDM_OPEN:
-					//"ファイルを指定してください"
-					if(!GetFilePathDialog(hwnd,str,DefFileFilter,STRING_FILEOPENTITLE_DEFAULT,TRUE)) return 0;
-
-					OpenFileWithExtension(str);
-					return 0;
-				case IDM_CLOSE:
-					hChild=GetWindow(hClient,GW_CHILD);
-					if(IsWindow(hChild)) SendMessage(hChild,WM_CLOSE,0,0);
-					return 0;
 #ifndef THETEXT
 				case IDM_PROJECT_OPEN:
Index: trunk/ab5.0/abdev/abdev/include/MainFrame.h
===================================================================
--- trunk/ab5.0/abdev/abdev/include/MainFrame.h	(revision 492)
+++ trunk/ab5.0/abdev/abdev/include/MainFrame.h	(revision 493)
@@ -45,4 +45,13 @@
 	LRESULT OnNotify( int idCtrl, LPNMHDR pnmh );
 
+	// 「新規作成」メニューがクリックされた
+	void OnCmdNew( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// 「開く」メニューがクリックされた
+	void OnCmdOpen( UINT uNotifyCode, int nID, CWindow wndCtl );
+
+	// 「閉じる」メニューがクリックされた
+	void OnCmdClose( UINT uNotifyCode, int nID, CWindow wndCtl );
+
 private:
 	// メッセージマップ
@@ -59,4 +68,8 @@
 
 		MSG_WM_NOTIFY( OnNotify );
+
+		COMMAND_ID_HANDLER_EX( IDM_NEW, OnCmdNew )
+		COMMAND_ID_HANDLER_EX( IDM_OPEN, OnCmdOpen )
+		COMMAND_ID_HANDLER_EX( IDM_CLOSE, OnCmdClose )
 	END_MSG_MAP()
 };
Index: trunk/ab5.0/abdev/abdev/src/MainFrame.cpp
===================================================================
--- trunk/ab5.0/abdev/abdev/src/MainFrame.cpp	(revision 492)
+++ trunk/ab5.0/abdev/abdev/src/MainFrame.cpp	(revision 493)
@@ -267,2 +267,72 @@
 	return 0;
 }
+
+void MainFrame::OnCmdNew( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+
+#ifdef THETEXT
+	NewTextEditWindow(NULL,WNDTYPE_TEXT);
+	return;
+#else
+	int FileType;
+	BOOL bAddToProject;
+	char temporary[MAX_PATH];
+
+	FileType=DialogBox(hResInst,MAKEINTRESOURCE(IDD_NEWFILE),hOwner,(DLGPROC)DlgNewFile);
+	if(FileType==-1) return;
+
+	if(FileType&0x00008000){
+		bAddToProject=1;
+		FileType&=0x0FFF;
+		extern char NewFileName[MAX_PATH];
+		lstrcpy(temporary,NewFileName);
+		if(!strstr(temporary,".")) lstrcat(temporary,".ab");
+		GetFullPath(temporary,ProjectInfo.dir);
+	}
+	else bAddToProject=0;
+
+	switch(FileType){
+		case FT_BASICPROGRAM:		//Basicプログラム
+		case FT_SUBPROGRAM:
+			if(bAddToProject){
+				WriteBuffer(temporary,0,0);
+				NewTextEditWindow(temporary,WNDTYPE_BASIC);
+				Project_File_Insert(temporary);
+			}
+			else NewTextEditWindow(NULL,WNDTYPE_BASIC);
+			break;
+
+		case FT_PROJECT:
+			DlgNewProjectWizard(hOwner);
+			break;
+
+		case FT_TEXT:
+			NewTextEditWindow(NULL,WNDTYPE_TEXT);
+			break;
+
+		case FT_HTML:
+			NewTextEditWindow(NULL,WNDTYPE_HTML);
+			break;
+
+		case FT_ICON:
+			NewIconEditWindow(NULL);
+			break;
+	}
+#endif
+}
+
+void MainFrame::OnCmdOpen( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	//"ファイルを指定してください"
+	extern LPSTR DefFileFilter;
+	char temporary[1024];
+	if(!GetFilePathDialog(m_hWnd,temporary,DefFileFilter,STRING_FILEOPENTITLE_DEFAULT,TRUE)) return;
+
+	OpenFileWithExtension( temporary );
+}
+
+void MainFrame::OnCmdClose( UINT uNotifyCode, int nID, CWindow wndCtl )
+{
+	HWND hChild=::GetWindow(hClient,GW_CHILD);
+	if(::IsWindow(hChild)) SendMessage(hChild,WM_CLOSE,0,0);
+}
Index: trunk/ab5.0/abdev/abdev/stdafx.h
===================================================================
--- trunk/ab5.0/abdev/abdev/stdafx.h	(revision 492)
+++ trunk/ab5.0/abdev/abdev/stdafx.h	(revision 493)
@@ -38,4 +38,6 @@
 #include <abdev/ab_common/Environment.h>
 
+#include "../res/resource.h"
+
 #include <WindowComponents/BaseWindow.h>
 #include <WindowComponents/MdiChild.h>
@@ -48,5 +50,3 @@
 #include <Program.h>
 
-#include "../res/resource.h"
-
 #include "Common.h"
