以下のサンプルのように、Viewいっぱいにエディットを表示する際に分らないことがあ
ります。
Viewサイズ>=ウインドウサイズの範囲では問題なく、エディットがクライアントサイ
ズに追従しますが
Viewサイズ<ウインドウサイズ(つまりスクロールバーが出てる時)から、ウインドウ
を広げた場合
スクロールバーの幅・高さの分、追従が遅れてしまいす。
解決策を教えてください。
void MyView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
CWnd *wnd = GetDlgItem(IDC_EDIT1) ;
if( wnd && IsWindow( wnd->m_hWnd ) ){
wnd->MoveWindow( &CRect( 0 , 0 , cx , cy ) ) ;
}
}
vc7.0 + MFCです
自己解決です。
以下のように直したら追従します。
#OnSizeのcx、cyは新しいクライアントサイズ。
#なぜ取得しなおす必要があるか謎のままですが・・・
#まぁいいや・・・
void MyView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
CWnd *wnd = GetDlgItem(IDC_EDIT1) ;
if( wnd && IsWindow( wnd->m_hWnd ) ){
CRect rect ;
GetClientRect( &rect ) ;
wnd->MoveWindow( &rect ) ;
}
}