svnno****@sourc*****
svnno****@sourc*****
2011年 9月 19日 (月) 14:03:55 JST
Revision: 4642 http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=4642 Author: maya Date: 2011-09-19 14:03:55 +0900 (Mon, 19 Sep 2011) Log Message: ----------- ダイアログ系マクロコマンドのテキスト幅・高さの取得を調整 GetDC の対象をスタティックテキストのハンドルに変更(あまり関係ないかも) 取得したデバイスコンテキストにフォントをセットしないとフォントに合わせたサイズを取得できなかった Modified Paths: -------------- trunk/teraterm/ttpmacro/inpdlg.cpp trunk/teraterm/ttpmacro/msgdlg.cpp trunk/teraterm/ttpmacro/statdlg.cpp -------------- next part -------------- Modified: trunk/teraterm/ttpmacro/inpdlg.cpp =================================================================== --- trunk/teraterm/ttpmacro/inpdlg.cpp 2011-09-16 16:18:09 UTC (rev 4641) +++ trunk/teraterm/ttpmacro/inpdlg.cpp 2011-09-19 05:03:55 UTC (rev 4642) @@ -34,6 +34,7 @@ PaswdFlag = Paswd; PosX = x; PosY = y; + DlgFont = NULL; } BEGIN_MESSAGE_MAP(CInpDlg, CDialog) @@ -52,7 +53,7 @@ HWND HEdit, HOk; char uimsg[MAX_UIMSG], uimsg2[MAX_UIMSG]; LOGFONT logfont; - HFONT font; + HFONT font, tmpfont; CDialog::OnInitDialog(); font = (HFONT)SendMessage(WM_GETFONT, 0, 0); @@ -71,9 +72,15 @@ SetDlgItemText(IDC_INPTEXT,TextStr); SetDlgItemText(IDC_INPEDIT,DefaultStr); - TmpDC = ::GetDC(GetSafeHwnd()); + TmpDC = ::GetDC(GetDlgItem(IDC_INPTEXT)->GetSafeHwnd()); + if (DlgFont) { + tmpfont = (HFONT)SelectObject(TmpDC, DlgFont); + } CalcTextExtent(TmpDC,TextStr,&s); - ::ReleaseDC(GetSafeHwnd(),TmpDC); + if (DlgFont && tmpfont != NULL) { + SelectObject(TmpDC, tmpfont); + } + ::ReleaseDC(GetDlgItem(IDC_INPTEXT)->GetSafeHwnd(),TmpDC); TW = s.cx + s.cx/10; TH = s.cy; Modified: trunk/teraterm/ttpmacro/msgdlg.cpp =================================================================== --- trunk/teraterm/ttpmacro/msgdlg.cpp 2011-09-16 16:18:09 UTC (rev 4641) +++ trunk/teraterm/ttpmacro/msgdlg.cpp 2011-09-19 05:03:55 UTC (rev 4642) @@ -30,6 +30,7 @@ YesNoFlag = YesNo; PosX = x; PosY = y; + DlgFont = NULL; } BEGIN_MESSAGE_MAP(CMsgDlg, CDialog) @@ -47,7 +48,7 @@ HWND HOk, HNo; char uimsg[MAX_UIMSG], uimsg2[MAX_UIMSG]; LOGFONT logfont; - HFONT font; + HFONT font, tmpfont; CDialog::OnInitDialog(); font = (HFONT)SendMessage(WM_GETFONT, 0, 0); @@ -65,9 +66,15 @@ SetWindowText(TitleStr); SetDlgItemText(IDC_MSGTEXT,TextStr); - TmpDC = ::GetDC(GetSafeHwnd()); + TmpDC = ::GetDC(GetDlgItem(IDC_MSGTEXT)->GetSafeHwnd()); + if (DlgFont) { + tmpfont = (HFONT)SelectObject(TmpDC, DlgFont); + } CalcTextExtent(TmpDC,TextStr,&s); - ::ReleaseDC(GetSafeHwnd(),TmpDC); + if (DlgFont && tmpfont != NULL) { + SelectObject(TmpDC, tmpfont); + } + ::ReleaseDC(GetDlgItem(IDC_MSGTEXT)->GetSafeHwnd(),TmpDC); TW = s.cx + s.cx/10; TH = s.cy; Modified: trunk/teraterm/ttpmacro/statdlg.cpp =================================================================== --- trunk/teraterm/ttpmacro/statdlg.cpp 2011-09-16 16:18:09 UTC (rev 4641) +++ trunk/teraterm/ttpmacro/statdlg.cpp 2011-09-19 05:03:55 UTC (rev 4642) @@ -34,6 +34,7 @@ TitleStr = Title; PosX = x; PosY = y; + DlgFont = NULL; return CDialog::Create(CStatDlg::IDD, GetDesktopWindow()); } @@ -41,6 +42,7 @@ { RECT R; HDC TmpDC; + HFONT tmpfont; if (Title!=NULL) { SetWindowText(Title); @@ -54,9 +56,15 @@ WH = R.bottom-R.top; if (Text!=NULL) { - TmpDC = ::GetDC(GetSafeHwnd()); + TmpDC = ::GetDC(GetDlgItem(IDC_STATTEXT)->GetSafeHwnd()); + if (DlgFont) { + tmpfont = (HFONT)SelectObject(TmpDC, DlgFont); + } CalcTextExtent(TmpDC,Text,&s); - ::ReleaseDC(GetSafeHwnd(),TmpDC); + if (DlgFont && tmpfont != NULL) { + SelectObject(TmpDC, tmpfont); + } + ::ReleaseDC(GetDlgItem(IDC_STATTEXT)->GetSafeHwnd(),TmpDC); TW = s.cx + s.cx/10; TH = s.cy;