From 8bc23afa808b5c1c8f9a0b48edf63a1fcb43cad9 Mon Sep 17 00:00:00 2001 From: hebiiro Date: Mon, 5 Feb 2024 17:23:08 +0900 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20#46=20=E3=83=95=E3=83=AD=E3=83=BC?= =?UTF-8?q?=E3=83=86=E3=82=A3=E3=83=B3=E3=82=B0=E7=8A=B6=E6=85=8B=E3=81=A7?= =?UTF-8?q?=E3=82=82=E3=82=B5=E3=83=96=E3=82=A6=E3=82=A3=E3=83=B3=E3=83=89?= =?UTF-8?q?=E3=82=A6=E3=81=AE=E5=90=8D=E5=89=8D=E3=82=92=E5=A4=89=E6=9B=B4?= =?UTF-8?q?=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E3=81=97?= =?UTF-8?q?=E3=81=BE=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Nest/Container/Container.h | 11 +++++++++++ Nest/SubWindow.h | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/Nest/Container/Container.h b/Nest/Container/Container.h index cf205610..8330fe55 100644 --- a/Nest/Container/Container.h +++ b/Nest/Container/Container.h @@ -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) diff --git a/Nest/SubWindow.h b/Nest/SubWindow.h index 2e3a051c..6c55a2c4 100644 --- a/Nest/SubWindow.h +++ b/Nest/SubWindow.h @@ -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); + } + // // ウィンドウプロシージャです。 // @@ -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);