diff --git a/Debug/VizCommand.exe b/Debug/VizCommand.exe
index d30d07b..137b90b 100644
Binary files a/Debug/VizCommand.exe and b/Debug/VizCommand.exe differ
diff --git a/Release/VizCommand.exe b/Release/VizCommand.exe
index bab098f..ec7fe19 100644
Binary files a/Release/VizCommand.exe and b/Release/VizCommand.exe differ
diff --git a/VizCommand/Application.cpp b/VizCommand/Application.cpp
index e1d9e7b..d06483d 100644
--- a/VizCommand/Application.cpp
+++ b/VizCommand/Application.cpp
@@ -30,18 +30,7 @@ BOOL CApplication::InitInstance(HINSTANCE hInstance, LPTSTR lpCmdLine, int nShow
// ウィンドウクラスの登録
CWindow::RegisterClass(hInstance, _T("Window")); // CWindow::RegisterClassでウィンドウクラス"Window"を登録.
- // ウィンドウオブジェクトの生成
- m_pMainWindow = new CWindow(); // CWindowオブジェクトを作成し, アドレスをm_pMainWindowに格納.
-
- // ウィンドウ作成
- if (!m_pMainWindow->Create(_T("Window"), _T("VizCommand"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance)) { // m_pMainWindow->Createでの作成が失敗なら.
- return FALSE; // FALSEを返す.
- }
-
- // ウィンドウ表示
- m_pMainWindow->ShowWindow(SW_SHOW); // m_pMainWindow->ShowWindowで表示.
-
- // 成功なのでTRUEを返す.
+ // TRUEを返す.
return TRUE; // TRUEを返す.
}
diff --git a/VizCommand/Application.h b/VizCommand/Application.h
index f5e02ea..9e16151 100644
--- a/VizCommand/Application.h
+++ b/VizCommand/Application.h
@@ -21,7 +21,7 @@ class CApplication {
// publicメンバ関数
// コンストラクタ・デストラクタ
CApplication(); // コンストラクタCApplication()
- ~CApplication(); // デストラクタ~CApplication()
+ virtual ~CApplication(); // デストラクタ~CApplication()
// メンバ関数
virtual BOOL InitInstance(HINSTANCE hInstance, LPTSTR lpCmdLine, int nShowCmd); // アプリケーション初期化関数InitInstance
diff --git a/VizCommand/BasicApplication.cpp b/VizCommand/BasicApplication.cpp
new file mode 100644
index 0000000..e0b1c39
--- /dev/null
+++ b/VizCommand/BasicApplication.cpp
@@ -0,0 +1,37 @@
+// 二重インクルード防止
+#pragma once // #pragma onceで二重インクルード防止.
+
+// ヘッダのインクルード
+// 独自のヘッダ
+#include "BasicApplication.h" // ベーシックアプリケーションクラス
+#include "BasicWindow.h" // ベーシックウィンドウクラス
+
+// コンストラクタCBasicApplication()
+CBasicApplication::CBasicApplication() : CApplication() {
+
+}
+
+// アプリケーション初期化関数InitInstance
+BOOL CBasicApplication::InitInstance(HINSTANCE hInstance, LPTSTR lpCmdLine, int nShowCmd){
+
+ // 初期化
+ CApplication::InitInstance(hInstance, lpCmdLine, nShowCmd); // CApplication::InitInstanceを呼ぶ.
+
+ // ベーシックウィンドウクラスの登録
+ CBasicWindow::RegisterClass(hInstance); // CBasicWindow::RegisterClassでウィンドウクラス"BasicWindow"を登録.
+
+ // ベーシックウィンドウオブジェクトの生成
+ m_pMainWindow = new CBasicWindow(); // CBasicWindowオブジェクトを作成し, アドレスをm_pMainWindowに格納.
+
+ // ウィンドウ作成
+ if (!m_pMainWindow->Create(_T("VizCommand"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance)) { // m_pMainWindow->Createでの作成が失敗なら.
+ return FALSE; // FALSEを返す.
+ }
+
+ // ウィンドウ表示
+ m_pMainWindow->ShowWindow(SW_SHOW); // m_pMainWindow->ShowWindowで表示.
+
+ // 成功なのでTRUEを返す.
+ return TRUE; // TRUEを返す.
+
+}
diff --git a/VizCommand/BasicApplication.h b/VizCommand/BasicApplication.h
new file mode 100644
index 0000000..86cb3e7
--- /dev/null
+++ b/VizCommand/BasicApplication.h
@@ -0,0 +1,20 @@
+// 二重インクルード防止
+#pragma once // #pragma onceで二重インクルード防止.
+
+// 独自のヘッダ
+#include "Application.h" // アプリケーションクラス
+
+// ベーシックアプリケーションクラスCBasicApplication
+class CBasicApplication : public CApplication {
+
+ // publicメンバ
+ public:
+
+ // publicメンバ関数
+ // コンストラクタ・デストラクタ
+ CBasicApplication(); // コンストラクタCBasicApplication()
+
+ // メンバ関数
+ virtual BOOL InitInstance(HINSTANCE hInstance, LPTSTR lpCmdLine, int nShowCmd); // アプリケーション初期化関数InitInstance
+
+};
\ No newline at end of file
diff --git a/VizCommand/BasicWindow.cpp b/VizCommand/BasicWindow.cpp
new file mode 100644
index 0000000..8b02bbf
--- /dev/null
+++ b/VizCommand/BasicWindow.cpp
@@ -0,0 +1,27 @@
+// 二重インクルード防止
+#pragma once // #pragma onceで二重インクルード防止.
+
+// ヘッダのインクルード
+// 独自のヘッダ
+#include "BasicWindow.h" // ベーシックウィンドウクラス
+
+// ウィンドウクラス登録関数RegisterClass
+BOOL CBasicWindow::RegisterClass(HINSTANCE hInstance){
+
+ // ウィンドウクラスの登録
+ return CWindow::RegisterClass(hInstance, _T("BasicWindow")); // CWindow::RegisterClassでウィンドウクラス"BasicWindow"を登録.
+
+}
+
+// コンストラクタCBasicWindow()
+CBasicWindow::CBasicWindow() : CWindow(){
+
+}
+
+// ウィンドウ作成関数Create(lpctszClassName省略)
+BOOL CBasicWindow::Create(LPCTSTR lpctszWindowName, DWORD dwStyle, int x, int y, int iWidth, int iHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance){
+
+ // ここに来る場合はウィンドウクラス"BasicWindow"のウィンドウとして作成.
+ return CWindow::Create(_T("BasicWindow"), lpctszWindowName, dwStyle, x, y, iWidth, iHeight, hWndParent, hMenu, hInstance); // ウィンドウクラスを"BasicWindow"にしてCreateのフルバージョンを呼ぶ.
+
+}
diff --git a/VizCommand/BasicWindow.h b/VizCommand/BasicWindow.h
new file mode 100644
index 0000000..6e218fd
--- /dev/null
+++ b/VizCommand/BasicWindow.h
@@ -0,0 +1,23 @@
+// 二重インクルード防止
+#pragma once // #pragma onceで二重インクルード防止.
+
+// 独自のヘッダ
+#include "Window.h" // ウィンドウクラス
+
+// ベーシックウィンドウクラスCBasicWindow
+class CBasicWindow : public CWindow {
+
+ // publicメンバ
+ public:
+
+ // publicメンバ関数
+ // staticメンバ関数
+ static BOOL RegisterClass(HINSTANCE hInstance); // ウィンドウクラス登録関数RegisterClass
+
+ // コンストラクタ・デストラクタ
+ CBasicWindow(); // コンストラクタCBasicWindow()
+
+ // メンバ関数
+ virtual BOOL Create(LPCTSTR lpctszWindowName, DWORD dwStyle, int x, int y, int iWidth, int iHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance); // ウィンドウ作成関数Create(lpctszClassName省略)
+
+};
\ No newline at end of file
diff --git a/VizCommand/VizCommand.rc b/VizCommand/VizCommand.rc
index a5c0dae..3440211 100644
Binary files a/VizCommand/VizCommand.rc and b/VizCommand/VizCommand.rc differ
diff --git a/VizCommand/VizCommand.vcxproj b/VizCommand/VizCommand.vcxproj
index 27df6a9..858d654 100644
--- a/VizCommand/VizCommand.vcxproj
+++ b/VizCommand/VizCommand.vcxproj
@@ -147,11 +147,15 @@
+
+
+
+
diff --git a/VizCommand/WinMain.cpp b/VizCommand/WinMain.cpp
index 3158b05..500de8e 100644
--- a/VizCommand/WinMain.cpp
+++ b/VizCommand/WinMain.cpp
@@ -4,7 +4,7 @@
#include // TCHAR型
// ヘッダのインクルード
// 独自のヘッダ
-#include "Application.h" // アプリケーションクラス
+#include "BasicApplication.h" // ベーシックアプリケーションクラス
// _tWinMain関数
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nShowCmd) {
@@ -12,8 +12,8 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdL
// 変数の宣言
CApplication *pApp; // CApplicationオブジェクトポインタpApp
- // CApplicationオブジェクトの初期化
- pApp = new CApplication(); // CApplicationオブジェクトを作成し, pAppにアドレスを格納.
+ // CBasicApplicationオブジェクトの初期化
+ pApp = new CBasicApplication(); // CBasicApplicationオブジェクトを作成し, pAppにアドレスを格納.
if (!pApp->InitInstance(hInstance, lpCmdLine, nShowCmd)){ // pApp->InitInstanceで初期化処理が失敗なら.
// エラー処理
diff --git a/VizCommand/Window.cpp b/VizCommand/Window.cpp
index d4c5b93..3eb6923 100644
--- a/VizCommand/Window.cpp
+++ b/VizCommand/Window.cpp
@@ -152,6 +152,14 @@ BOOL CWindow::Create(LPCTSTR lpctszClassName, LPCTSTR lpctszWindowName, DWORD dw
}
+// ウィンドウ作成関数Create(lpctszClassName省略)
+BOOL CWindow::Create(LPCTSTR lpctszWindowName, DWORD dwStyle, int x, int y, int iWidth, int iHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance){
+
+ // ここに来る場合はウィンドウクラス"Window"のウィンドウとして作成.
+ return Create(_T("Window"), lpctszWindowName, dwStyle, x, y, iWidth, iHeight, hWndParent, hMenu, hInstance); // ウィンドウクラスを"Window"にしてCreateのフルバージョンを呼ぶ.
+
+}
+
// ウィンドウ表示関数ShowWindow
BOOL CWindow::ShowWindow(int nCmdShow){
diff --git a/VizCommand/Window.h b/VizCommand/Window.h
index 52c88db..6a0ae8b 100644
--- a/VizCommand/Window.h
+++ b/VizCommand/Window.h
@@ -35,7 +35,7 @@ class CWindow {
// publicメンバ関数
// コンストラクタ・デストラクタ
CWindow(); // コンストラクタCWindow()
- ~CWindow(); // デストラクタ~CWindow()
+ virtual ~CWindow(); // デストラクタ~CWindow()
// staticメンバ関数
static BOOL RegisterClass(HINSTANCE hInstance, LPCTSTR lpctszClassName); // ウィンドウクラス登録関数RegisterClass
@@ -43,6 +43,7 @@ class CWindow {
// メンバ関数
virtual BOOL Create(LPCTSTR lpctszClassName, LPCTSTR lpctszWindowName, DWORD dwStyle, int x, int y, int iWidth, int iHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance); // ウィンドウ作成関数Create
+ virtual BOOL Create(LPCTSTR lpctszWindowName, DWORD dwStyle, int x, int y, int iWidth, int iHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance); // ウィンドウ作成関数Create(lpctszClassName省略)
virtual BOOL ShowWindow(int nCmdShow); // ウィンドウ表示関数ShowWindow
virtual LRESULT DynamicWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); // StaticWindowProcから各ウィンドウオブジェクトごとに呼び出されるサブウィンドウプロシージャDynamicWindowProc.
virtual int OnCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct); // ウィンドウ作成時のハンドラOnCreate.