Revision: 8508 https://osdn.net/projects/ttssh2/scm/svn/commits/8508 Author: zmatsuo Date: 2020-01-27 00:14:04 +0900 (Mon, 27 Jan 2020) Log Message: ----------- ダイアログのサイズ計算前にステータスバーを追加 - switchで意図しないリサイズ処理を行わないようにした - デスクトップ領域取得関数を追加 Modified Paths: -------------- trunk/teraterm/teraterm/clipboarddlg.cpp -------------- next part -------------- Modified: trunk/teraterm/teraterm/clipboarddlg.cpp =================================================================== --- trunk/teraterm/teraterm/clipboarddlg.cpp 2020-01-26 15:13:58 UTC (rev 8507) +++ trunk/teraterm/teraterm/clipboarddlg.cpp 2020-01-26 15:14:04 UTC (rev 8508) @@ -46,6 +46,28 @@ #include "clipboarddlg.h" #include "compat_win.h" +static void GetDesktopRectFromPoint(POINT p, RECT *rect) +{ + if (pMonitorFromPoint == NULL) { + // NT4.0, 95 \x82̓}\x83\x8B\x83`\x83\x82\x83j\x83^API\x82ɔ\xF1\x91Ή\x9E + SystemParametersInfo(SPI_GETWORKAREA, 0, rect, 0); + } + else { + // \x83}\x83\x8B\x83`\x83\x82\x83j\x83^\x82\xAA\x83T\x83|\x81[\x83g\x82\xB3\x82\xEA\x82Ă\xA2\x82\xE9\x8Fꍇ + HMONITOR hm; + POINT pt; + MONITORINFO mi; + + pt.x = p.x; + pt.y = p.y; + hm = pMonitorFromPoint(pt, MONITOR_DEFAULTTONEAREST); + + mi.cbSize = sizeof(MONITORINFO); + pGetMonitorInfoA(hm, &mi); + *rect = mi.rcWork; + } +} + static INT_PTR CALLBACK OnClipboardDlgProc(HWND hDlgWnd, UINT msg, WPARAM wp, LPARAM lp) { static const DlgTextInfo TextInfos[] = { @@ -75,6 +97,12 @@ SetDlgItemTextA(hDlgWnd, IDC_EDIT, data->strA_ptr); } + // \x83\x8A\x83T\x83C\x83Y\x83A\x83C\x83R\x83\x93\x82\xF0\x89E\x89\xBA\x82ɕ\\x8E\xA6\x82\xB3\x82\xB9\x82\xBD\x82\xA2\x82̂ŁA\x83X\x83e\x81[\x83^\x83X\x83o\x81[\x82\xF0\x95t\x82\xAF\x82\xE9\x81B + InitCommonControls(); + hStatus = CreateStatusWindow( + WS_CHILD | WS_VISIBLE | + CCS_BOTTOM | SBARS_SIZEGRIP, NULL, hDlgWnd, 1); + if (ActiveWin == IdVT) { // VT Window /* * Caret off \x8E\x9E\x82\xC9 GetCaretPos() \x82Ő\xB3\x8Am\x82ȏꏊ\x82\xAA\x8E\xE6\x82\xEA\x82Ȃ\xA2\x82̂ŁA @@ -105,23 +133,8 @@ // \x83L\x83\x83\x83\x8C\x83b\x83g\x82\xAA\x89\xE6\x96ʂ\xA9\x82\xE7\x82͂ݏo\x82\xB5\x82Ă\xA2\x82\xE9\x82Ƃ\xAB\x82ɓ\\x82\xE8\x95t\x82\xAF\x82\xF0\x82\xB7\x82\xE9\x82\xC6 // \x8Am\x94F\x83E\x83C\x83\x93\x83h\x83E\x82\xAA\x8C\xA9\x82\xA6\x82\xE9\x82Ƃ\xB1\x82\xEB\x82ɕ\\x8E\xA6\x82\xB3\x82\xEA\x82Ȃ\xA2\x82\xB1\x82Ƃ\xAA\x82\xA0\x82\xE9\x81B // \x83E\x83C\x83\x93\x83h\x83E\x82\xA9\x82\xE7\x82͂ݏo\x82\xB5\x82\xBD\x8Fꍇ\x82ɒ\xB2\x90߂\xB7\x82\xE9 (2008.4.24 maya) - if (pMonitorFromPoint == NULL) { - // NT4.0, 95 \x82̓}\x83\x8B\x83`\x83\x82\x83j\x83^API\x82ɔ\xF1\x91Ή\x9E - SystemParametersInfo(SPI_GETWORKAREA, 0, &rc_dsk, 0); - } - else { - HMONITOR hm; - POINT pt; - MONITORINFO mi; + GetDesktopRectFromPoint(p, &rc_dsk); - pt.x = p.x; - pt.y = p.y; - hm = pMonitorFromPoint(pt, MONITOR_DEFAULTTONEAREST); - - mi.cbSize = sizeof(MONITORINFO); - pGetMonitorInfoA(hm, &mi); - rc_dsk = mi.rcWork; - } GetWindowRect(hDlgWnd, &rc_dlg); dlg_height = rc_dlg.bottom-rc_dlg.top; dlg_width = rc_dlg.right-rc_dlg.left; @@ -163,12 +176,6 @@ ts.PasteDialogSize.cx, ts.PasteDialogSize.cy, SWP_NOZORDER | SWP_NOMOVE); - // \x83\x8A\x83T\x83C\x83Y\x83A\x83C\x83R\x83\x93\x82\xF0\x89E\x89\xBA\x82ɕ\\x8E\xA6\x82\xB3\x82\xB9\x82\xBD\x82\xA2\x82̂ŁA\x83X\x83e\x81[\x83^\x83X\x83o\x81[\x82\xF0\x95t\x82\xAF\x82\xE9\x81B - InitCommonControls(); - hStatus = CreateStatusWindow( - WS_CHILD | WS_VISIBLE | - CCS_BOTTOM | SBARS_SIZEGRIP, NULL, hDlgWnd, 1); - return TRUE; case WM_COMMAND: @@ -200,6 +207,7 @@ default: return FALSE; } + return TRUE; case WM_SIZE: {