Permalink
Browse files

・walkコマンドでフォルダの移動

  • Loading branch information...
bg1bgst333 committed May 26, 2017
1 parent e5dd654 commit 9429b94d4126325a4d7a2dea52a2f76d04e40dec
View
Binary file not shown.
View
Binary file not shown.
View
@@ -16,6 +16,14 @@ CConsole::CConsole() : CScalableEditBoxPanel() {
}
// コンストラクタCConsole(tstring tstrDefaultCurrentPath)
CConsole::CConsole(tstring tstrDefaultCurrentPath) : CScalableEditBoxPanel() {
// デフォルトカレントパスのセット.
m_tstrDefaultCurrentPath = tstrDefaultCurrentPath;
}
// デストラクタ~CCConsole()
CConsole::~CConsole() {
@@ -38,6 +46,7 @@ int CConsole::OnCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct) {
// 子エディットボックスの生成.
pConsoleCore = new CConsoleCore(); // CConsoleCoreオブジェクトを作成し, ポインタをpConsoleCoreに格納.
pConsoleCore->SetCurrentPath(m_tstrDefaultCurrentPath); // デフォルトカレントパスのセット.
m_pEditBox = pConsoleCore; // m_pEditBoxにpConsoleCoreをセット.
m_pEditBox->Create(_T(""), ES_MULTILINE | ES_WANTRETURN | ES_AUTOHSCROLL /*| ES_AUTOVSCROLL*/, 0, 0, m_iWidth, m_iHeight, hwnd, m_nId + 100, lpCreateStruct->hInstance); // m_pEditBox->Createでエディットボックス作成.
@@ -119,6 +128,12 @@ int CConsole::OnConsoleCoreCommand(WPARAM wParam, LPARAM lParam) {
// StreamConsoleに投げる.
SendMessage(m_hProcWnd, UM_STREAMCOMMAND, (WPARAM)pCommand, (LPARAM)m_hWnd); // UM_STREAMCOMMANDでコマンド文字列をコマンドに対する処理を実行するウィンドウに送信.
}
else if (tstrCommandName == _T("walk")) { // コマンド"walk"
// OnWalkに任せる.
OnWalk(hSrc, pCommand); // OnWalkにpCommandを渡す.
}
else { // コマンドが見つからない.
@@ -143,6 +158,27 @@ void CConsole::OnHello(HWND hSrc) {
}
// フォルダ移動する独自ハンドラ.
void CConsole::OnWalk(HWND hSrc, CCommand *pCommand){
// パスの取得.
tstring tstrPath = pCommand->GetParam(1); // 1番目がパスなので, pCommand->GetParam(1)で1番目のパスを取得.
CConsoleCore *pConsoleCore = (CConsoleCore *)m_pEditBox; // pConsoleCoreを取り出す.
if (tstrPath == _T("")) { // 空文字列の場合.
tstrPath = pConsoleCore->GetMyDocumentPath(hSrc); // pConsoleCore->GetMyDocumentPathでマイドキュメントパスを取得し, それをtstrPathに格納.
}
else {
tstring newPath = pConsoleCore->GetFullPath(tstrPath); // pConsoleCore->GetFullPathでフルパスに変換したものをnewPathに代入.
tstrPath = newPath; // newPathをtstrPathに代入.
}
pConsoleCore->SetCurrentPath(tstrPath); // pConsoleCore->SetCurrentPathでtstrPathをセット.
pConsoleCore->GetOutputFormString(); // pConsoleCore->GetOutputFormStringでフォームの再生成.
// レスポンス終了.
SendMessage(hSrc, UM_FINISHRESPONSE, 0, 0); // UM_FINISHRESPONSEを送る.
}
// コマンドが見つからない時のエラー用独自ハンドラ.
void CConsole::OnErrorCommandNotFound(HWND hSrc) {
View
@@ -15,21 +15,24 @@ class CConsole : public CScalableEditBoxPanel {
// publocメンバ変数
// メンバ変数
HWND m_hProcWnd; // コマンドに対する処理を実行するウィンドウのウィンドウハンドルHWND型m_hProcWnd.
tstring m_tstrDefaultCurrentPath; // デフォルトのカレントパスm_tstrDefaultCurrentPath.
// publicメンバ関数
// staticメンバ関数
static BOOL RegisterClass(HINSTANCE hInstance); // ウィンドウクラス登録関数RegisterClass
// コンストラクタ・デストラクタ
CConsole(); // コンストラクタCCConsole()
CConsole(); // コンストラクタCConsole()
CConsole(tstring tstrDefaultCurrentPath); // コンストラクタCConsole(tstring tstrDefaultCurrentPath)
virtual ~CConsole(); // デストラクタ~CCConsole()
// メンバ関数
virtual BOOL Create(LPCTSTR lpctszWindowName, DWORD dwStyle, int x, int y, int iWidth, int iHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance); // ウィンドウ作成関数Create
virtual int OnCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct); // ウィンドウ作成時のハンドラOnCreate.
virtual void OnUserMessage(UINT uMsg, WPARAM wParam, LPARAM lParam); // ユーザ定義メッセージが発生した時のハンドラ.
virtual int OnConsoleCoreCommand(WPARAM wParam, LPARAM lParam); // CConsoleCoreから送られたメッセージを処理する独自ハンドラ.
virtual void OnHello(HWND hSrc); // "Hello, world!"を出力する独自ハンドラ.
virtual void OnHello(HWND hSrc); // "Hello, world!"を出力する独自ハンドラ.
virtual void OnWalk(HWND hSrc, CCommand *pCommand); // フォルダ移動する独自ハンドラ.
virtual void OnErrorCommandNotFound(HWND hSrc); // コマンドが見つからない時のエラー用独自ハンドラ.
virtual void SetProcWindow(HWND hWnd); // コマンドに対する処理を実行するウィンドウのウィンドウハンドルをセットする関数SetProcWindow.
View
@@ -193,10 +193,17 @@ int CConsoleCore::OnCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct) {
// ホームフォルダ(マイドキュメントに変更.)の取得.
//GetProfilePath(hwnd); // GetProfilePathで取得.
GetMyDocumentPath(hwnd); // GetMyDocumentPathで取得.
// 現在のパスとしてマイドキュメントをセット.
SetCurrentPath(m_tstrMyDocumentPath); // SetCurrentPathでm_tstrMyDocumentPathをセット.
// カレントパスが無い場合はマイドキュメントとする.
if (m_tstrCurrentPath == _T("")) {
// マイドキュメントのパスを取得.
GetMyDocumentPath(hwnd); // GetMyDocumentPathで取得.
// 現在のパスとしてマイドキュメントをセット.
SetCurrentPath(m_tstrMyDocumentPath); // SetCurrentPathでm_tstrMyDocumentPathをセット.
}
// 出力フォームを取得.
GetOutputFormString(); // GetOutputFormStringで取得.
@@ -182,6 +182,7 @@ int CStreamConsole::OnList(WPARAM wParam, LPARAM lParam) {
//tstring tstrCommand; // コマンド文字列tstring型tstrCommand.
HWND hSrc; // 送信元ウィンドウハンドルHWND型hSrc.
CCommand *pCommand; // コマンドオブジェクトポインタpCommand.
tstring tstrCurrentPath; // カレントパスtstrCurrentPath.
// コマンドとソースを取得.
pCommand = (CCommand *)wParam; // wParamをCCommand *型にキャストしてpCommandに格納.
@@ -194,6 +195,7 @@ int CStreamConsole::OnList(WPARAM wParam, LPARAM lParam) {
CWindowListItem *pItem = m_pWindowListItemsPanel->Get(m_nId - 1); // m_nId - 1番目を取得.
CConsole *pConsole = (CConsole *)pItem->m_mapChildMap[_T("Console")]; // pConsoleを取り出す.
CConsoleCore *pConsoleCore = (CConsoleCore *)pConsole->m_pEditBox; // pConsoleCoreを取り出す.
tstrCurrentPath = pConsoleCore->GetCurrentPath(); // pConsoleCore->GetCurrentPathをtstrCurrentPathに格納.
if (tstrPath == _T("")) { // 空文字列の場合.
pConsoleCore->GetCurrentPath(); // GetCurrentPathで現在のパスを取得.
tstrPath = pConsoleCore->m_tstrCurrentPath; // m_tstrCurrentPathを取り出してtstrPathに格納.
@@ -278,7 +280,7 @@ int CStreamConsole::OnList(WPARAM wParam, LPARAM lParam) {
Insert(_T(""), m_nId, 100, hInstance); // Insertで0番目にウィンドウを挿入
// デフォルトアイテムに子ウィンドウをセット.
CWindowListItem *pItem2 = m_pWindowListItemsPanel->Get(m_nId); // 0番目を取得.
CConsole *pConsole = new CConsole(); // コンソールを生成.
CConsole *pConsole = new CConsole(tstrCurrentPath); // コンソールを生成.
pConsole->SetProcWindow(m_hWnd); // SetProcWindowで処理する場所をセット.
pConsole->Create(_T(""), 0, 0, 0, pItem2->m_iWidth, pItem2->m_iHeight, pItem2->m_hWnd, (HMENU)IDC_WINDOWLISTITEM_CHILD_ID_START + m_nId, hInstance); // コンソールのウィンドウを生成.
pItem2->m_mapChildMap.insert(std::make_pair(_T("Console"), pConsole)); // アイテムに子ウィンドウを挿入.
View
Binary file not shown.

0 comments on commit 9429b94

Please sign in to comment.