0

MFC フォームで CPropertyPage のタイトルを動的に設定しようとしています。このフォームはウィザード モードで作成されています。これが私のコードです。このコードをコンパイルして実行しても、タイトルは設定されません。ウィザード ウィンドウのタイトルを設定するにはどうすればよいですか?

BOOL MyForm::OnSetActive()
{
    CPropertySheet* pWnd = (CPropertySheet*) GetParent();
    pWnd->SetTitle(L"My Title",PSH_PROPTITLE);  
    return CPropertyPage::OnSetActive();
}
4

1 に答える 1

2

イベント WM_SHOWWINDOW で実行してみてください。私のコードでは、次のように機能します。

void CPropSIni::OnShowWindow(BOOL bShow, UINT nStatus)
{
    CPropertyPage::OnShowWindow(bShow, nStatus);

    CNodeSheet* pSheet = (CNodeSheet*)GetParent();
    if ( (bShow==TRUE) && (pSheet->IsWizard()) )
    {   
        CString strTemp;
        pSheet->GetWindowText(strTemp);     

        CString strCaption;
        strCaption = CustomFormat(CART_CAPTION_FORMAT_ADD, 2, strTemp, pSheet->m_Name);

        CPropertyPage::OnSetActive();
        pSheet->SetTitle(strCaption);
    }
}
于 2013-03-15T12:35:19.237 に答える