Skip to content

Commit

Permalink
#46 フローティング状態でもサブウィンドウの名前を変更できるようにしました
Browse files Browse the repository at this point in the history
  • Loading branch information
hebiiro committed Feb 5, 2024
1 parent bf698ad commit 8bc23af
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
11 changes: 11 additions & 0 deletions Nest/Container/Container.h
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,17 @@ namespace fgo::nest
// メッセージをそのままターゲットウィンドウに転送します。
return ::SendMessage(content->getHWND(), message, wParam, lParam);
}
case WM_SYSCOMMAND:
{
// システムコマンド以外の場合は
if (wParam < 0xF000)
{
// メッセージをそのままターゲットウィンドウに転送します。
return ::SendMessage(content->getHWND(), message, wParam, lParam);
}

break;
}
}

switch (message)
Expand Down
33 changes: 33 additions & 0 deletions Nest/SubWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,24 @@ namespace fgo::nest
parent, 0, hive.instance, 0);
}

//
// ターゲットにアタッチします。
//
void init(const _bstr_t& name, HWND hwnd)
{
__super::init(name, hwnd);

// フローティングコンテナのアイコンを設定します。
HICON icon = (HICON)::GetClassLong(hive.aviutlWindow, GCL_HICON);
::SendMessage(*floatContainer, WM_SETICON, ICON_SMALL, (LPARAM)icon);
::SendMessage(*floatContainer, WM_SETICON, ICON_BIG, (LPARAM)icon);

// フローティングコンテナのシステムメニューに項目を追加します。
HMENU menu = ::GetSystemMenu(*floatContainer, FALSE);
::InsertMenu(menu, 0, MF_BYPOSITION | MF_STRING, CommandID::RENAME_SUB_WINDOW, _T("名前を変更"));
::InsertMenu(menu, 1, MF_BYPOSITION | MF_SEPARATOR, 0, 0);
}

//
// ウィンドウプロシージャです。
//
Expand Down Expand Up @@ -108,6 +126,21 @@ namespace fgo::nest

return 0;
}
case WM_SYSCOMMAND: // フローティングコンテナのシステムメニューコマンドをハンドルします。
{
switch (wParam)
{
case CommandID::RENAME_SUB_WINDOW:
{
// サブウィンドウの名前変更ダイアログを表示します。
shuttleManager.showRenameDialog(this, hwnd);

break;
}
}

break;
}
}

return __super::onWndProc(hwnd, message, wParam, lParam);
Expand Down

0 comments on commit 8bc23af

Please sign in to comment.