Здравствуйте, Кодёнок, Вы писали:
S>>К сожалению, этот флаг, видимо, является недокументированной особенностью, и его проверка действительно является хаком.
Кё>Документировано — никак
Если тебе нужно недокументированное знание, то DM_GETDEFID в случае установленного флага завершения всегда возвращает ноль. Это найдено в исходниках w2k. Можешь проверить для остальных систем, и если тоже справедливо — используй на свой страх и риск
у меня это работает на xp sp2 (даже если нет кнопок в диалоге вообще) Т.е. если не был вызван EndDialog, то DM_GETDEFID всегда возвращает не ноль (а именно — DC_HASDEFID + единица, т.е. IDOK)
Кё>Кё> case DM_GETDEFID:
Кё> pwndT1 = GetParentDialog(pwnd);
Кё> if (!PDLG(pwndT1)->fEnd && PDLG(pwndT1)->result)
Кё> return(MAKELONG(PDLG(pwndT1)->result, DC_HASDEFID));
Кё> else
Кё> return 0;
Кё> break;
Кё>
Кё>Кроме DM_GETDEFID других бескровных путей я не нашёл.
Большое спасибо! Обязательно попробую!