Re: Как из DialogProc проверить, была ли вызвана EndDialog?
От: VladKurmaz Украина http://tis-method.org/
Дата: 29.09.05 10:21
Оценка:
Здравствуйте, sergmann, Вы писали:

S>Привет всем!


S>Подскажите, пожалуйста, возможно ли из диалоговой процедуры узнать, был ли (из неё же) сделан вызов EndDialog?

S>Например:

S>BOOL CALLBACK MyDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)

S>{
S> BOOL bResult;

S> ....


S> if (uMsg == WM_COMMAND && LOWORD(wParam) == IDC_OK && HIWORD(wParam) == BN_CLICKED)

S> {
S> EndDialog(0);
S> }

S> ....


S> (Возможно ли здесь определить, была ли вызвана EndDialog?)


S> return bResult;

S>}

S>Может возникнуть вопрос: зачем может понадобиnься такой бред. Дело в том, что у меня реализован Hook над чужой диалоговой процедурой, т.е. моя DlgProc для системы является диалоговой процедурой окна, а истинная DlgProc вызывается уже из моей, поэтому мне нужно в моей диалоговой процедуре после вызова истинной определить, завершила ли она диалог или нет?

S>В MSDN написано, что при вызове EndDialog устанавливается флаг, который затем проверяется системой, и в случае, если он установлен, диалог "убивается"? А можно ли его проверить самому?
S>Спасибо!

Попробуй GetWindowLong( hWnd, DWL_MSGRESULT );
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.