Я использую мастер MFC с CPropertyPages.
Есть ли способ вызова функции после показа страницы?
В тот момент, когда функция запускается, когда я нажимаю кнопку «Далее» на предыдущей странице.
Я пытался вызвать функцию из OnShowWindow, OnCreate, OnSetActive, DoModal, но ни одна из них не сработала.
Спасибо за вашу помощь!
Обычно этого достаточно, чтобы переопределить OnSetActive (). Однако этот метод вызывается до того, как CPropertyPage станет видимым и сфокусированным. Если вам нужно выполнить задачу после страница отображается, вы должны опубликовать собственное сообщение в OnSetActive:
// This message will be received after CMyPropertyPage is shown
#define WM_SHOWPAGE WM_APP+2
BOOL CMyPropertyPage::OnSetActive() {
if(CPropertyPage::OnSetActive()) {
PostMessage(WM_SHOWPAGE, 0, 0L); // post the message
return TRUE;
}
return FALSE;
}
LRESULT CMyPropertyPage::OnShowPage(UINT wParam, LONG lParam) {
MessageBox(TEXT("Page is visible. [TODO: your code]"));
return 0L;
}
BEGIN_MESSAGE_MAP(CMyPropertyPage,CPropertyPage)
ON_MESSAGE(WM_SHOWPAGE, OnShowPage) // add message handler
// ...
END_MESSAGE_MAP()
Других решений пока нет …