VC++6.0 MFC SDI WindowsXP SP2
動的に画面の幅に、エディットボックスの幅を合わせたいのですが、
どこで設定すればよいのかわかりません。
とりあえずFormViewの幅は取得できました。
その横幅のみをエディットボックスに設定したいです。
知っている方がいらっしゃたら教えてください。
// ビューのサイズにダイアログとエディットボックスの幅を合わせる
void XXXXView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
CRect lpRect;
GetClientRect(lpRect);
// ダイアログ
CWnd* pWnd = GetDlgItem( IDD_SEARCH_BAR );
if( pWnd && pWnd->GetSafeHwnd() ) {
pWnd->MoveWindow(lpRect);
}
// ここで設定するのでしょうか?
CWnd* pWnd = GetDlgItem( IDC_EDIT );
if( pWnd && pWnd->GetSafeHwnd() ) {
pWnd->MoveWindow(lpRect);
}
}
引数がなんだかわかりますか?
そのコードを実行するとどうなりますか?
そのコードの問題点はどこでしょうか?
余談ですが、
> if( pWnd && pWnd->GetSafeHwnd() ) {
これは冗長です。
GetSafeHwnd の説明には、
> m_hWnd を返します。this ポインタが NULL の場合は、NULL を返します。
とありますので、
if( pWnd->GetSafeHwnd() ) {
だけでよいです。
ありがとうございました。
無事出来ました。