@@ -59,6 +59,18 @@ const DWORD p_helpids[] = { //11900
5959 0 , 0
6060}; // @@@ 2002.01.07 add end MIK
6161
62+ static const SAnchorList anchorList[] = {
63+ IDC_BUTTON_SEARCHPREV, ANCHOR_RIGHT,
64+ IDC_BUTTON_SEARCHNEXT, ANCHOR_RIGHT,
65+ IDC_BUTTON_SETMARK, ANCHOR_RIGHT,
66+ IDC_BUTTON_REPALCE, ANCHOR_RIGHT,
67+ IDC_BUTTON_REPALCEALL, ANCHOR_RIGHT,
68+ IDCANCEL, ANCHOR_RIGHT,
69+ IDC_BUTTON_HELP, ANCHOR_RIGHT,
70+ IDC_COMBO_TEXT, ANCHOR_LEFT_RIGHT,
71+ IDC_COMBO_TEXT2, ANCHOR_LEFT_RIGHT,
72+ };
73+
6274CDlgReplace::CDlgReplace ()
6375{
6476 m_sSearchOption.Reset (); // 検索オプション
@@ -363,6 +375,20 @@ BOOL CDlgReplace::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
363375 hFont = SetMainFont ( GetItemHwnd ( IDC_COMBO_TEXT2 ) );
364376 m_cFontText2.SetFont ( hFontOld, hFont, GetItemHwnd ( IDC_COMBO_TEXT2 ) );
365377
378+ RECT rc;
379+ ::GetClientRect (hwndDlg, &rc);
380+ m_ptDefaultSizeClient.x = rc.right ;
381+ m_ptDefaultSizeClient.y = rc.bottom ;
382+
383+ ::GetWindowRect (hwndDlg, &rc);
384+ m_ptDefaultSizeScreen.x = rc.right - rc.left ;
385+ m_ptDefaultSizeScreen.y = rc.bottom - rc.top ;
386+
387+ m_rcItems.resize (_countof (anchorList));
388+ for (int i = 0 ; i < _countof (anchorList); i++) {
389+ GetItemClientRect (anchorList[i].id , m_rcItems[i]);
390+ }
391+
366392 return bRet;
367393}
368394
@@ -607,6 +633,75 @@ BOOL CDlgReplace::OnActivate( WPARAM wParam, LPARAM lParam )
607633 return CDialog::OnActivate (wParam, lParam);
608634}
609635
636+ BOOL CDlgReplace::OnSize (WPARAM wParam, LPARAM lParam)
637+ {
638+ CDialog::OnSize (wParam, lParam);
639+
640+ POINT ptNew;
641+ ptNew.x = LOWORD (lParam);
642+ ptNew.y = HIWORD (lParam);
643+
644+ for (int i = 0 ; i < _countof (anchorList); i++) {
645+ ResizeItem (GetItemHwnd (anchorList[i].id ), m_ptDefaultSizeClient, ptNew, m_rcItems[i], anchorList[i].anchor );
646+ }
647+ return TRUE ;
648+ }
649+
650+ BOOL CDlgReplace::OnSizing (WPARAM wParam, LPARAM lParam)
651+ {
652+ RECT& rc = *(RECT*)lParam;
653+
654+ switch (wParam) {
655+ case WMSZ_BOTTOMRIGHT:
656+ case WMSZ_RIGHT:
657+ case WMSZ_TOPRIGHT:
658+ if (rc.right - rc.left < m_ptDefaultSizeScreen.x ) {
659+ rc.right = rc.left + m_ptDefaultSizeScreen.x ;
660+ }
661+ break ;
662+ case WMSZ_BOTTOMLEFT:
663+ case WMSZ_LEFT:
664+ case WMSZ_TOPLEFT:
665+ if (rc.right - rc.left < m_ptDefaultSizeScreen.x ) {
666+ rc.left = rc.right - m_ptDefaultSizeScreen.x ;
667+ }
668+ break ;
669+ }
670+
671+ switch (wParam) {
672+ case WMSZ_BOTTOM:
673+ case WMSZ_BOTTOMLEFT:
674+ case WMSZ_BOTTOMRIGHT:
675+ rc.bottom = rc.top + m_ptDefaultSizeScreen.y ;
676+ break ;
677+ case WMSZ_TOP:
678+ case WMSZ_TOPLEFT:
679+ case WMSZ_TOPRIGHT:
680+ rc.top = rc.bottom - m_ptDefaultSizeScreen.y ;
681+ break ;
682+ }
683+
684+ return TRUE ;
685+ }
686+
687+ int CDlgReplace::OnNcHitTest (WPARAM wParam, LPARAM lParam)
688+ {
689+ int ret = CDialog::OnNcHitTest (wParam, lParam);
690+ switch (ret) {
691+ case HTTOPLEFT:
692+ case HTBOTTOMLEFT:
693+ return HTLEFT;
694+ case HTTOPRIGHT:
695+ case HTBOTTOMRIGHT:
696+ return HTRIGHT;
697+ case HTBOTTOM:
698+ case HTTOP:
699+ return HTBORDER;
700+ default :
701+ return ret;
702+ }
703+ }
704+
610705// @@@ 2002.01.18 add start
611706LPVOID CDlgReplace::GetHelpIdTable (void )
612707{
0 commit comments