|
分類:[その他の言語]
お世話になります。DD.です。
環境:XP, VC++2005(MFC)
MFCにて、CPropertySheetを派生させたクラス(CPropertyMenu)にて、
Create()メソッドを呼び出したところ「ウィンドウハンドルが無効です」となってしまい困っております。
処理的には、特にややこしいこともしておらず、ViewのOnInitialUpdate()で
CPropertyMenuをnewでインスタンス化し、その直後にCreate()メソッドをCallしているだけです。
以下にコードを抜粋します。(プロジェクトを作成したばかりで他に自動作成から追記したコードは、ほぼありません。)
class CPropertyMenu : public CPropertySheet
-----------------------------------------------
↓ViewのOnInitialUpdate()メソッド
CWnd* pWnd = AfxGetMainWnd();
CString strErrTitle, strErrMsg;
CPropertyMenu* pPropMenu = new CPropertyMenu( "PropertyMenu" );
if ( !pPropMenu ) {
strErrTitle.LoadStringW( 101 );
strErrMsg.LoadStringW( 102 );
pWnd->MessageBox( strErrMsg, strErrTitle );
return;
}
if ( !pPropMenu->Create( pWnd, WS_CHILD | WS_VISIBLE ) ) { // ←ここでエラー
HLOCAL hLocal = NULL;
::FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER, NULL, GetLastError(), MAKELANGID( LANG_NEUTRAL, SUBLANG_NEUTRAL ), (PTSTR)&hLocal, 0, NULL );
strErrTitle.LoadStringW( 101 );
pWnd->MessageBox( (PCTSTR)LocalLock( hLocal ), strErrTitle ); // ←ウィンドウハンドルが無効です
LocalFree( hLocal );
return;
}
原因がわかる方、問題点をご教授頂ければと思います。
|