Здравствуйте Joker3D, Вы писали:
JD>Здравствуйте Constructor, Вы писали:
C>>Здравствуйте Flea, Вы писали:
F>>>Здравствуйте Constructor, Вы писали:
C>>>>Здравствуйте!
C>>>>Функция SetTimer требует указать хэндл окна, сообщения OnTimer шлются тоже окну.
C>>>>А как быть, если у класса окна нет, а хожется получать собщения через заданные промежутки времени?
F>>>Пиши 0 вместо указателя на окно
C>>Вообще-то, я использую CWnd::SetTimer. Мой класс наследован от CWnd. Окно создавать (т.е., вызвать Create как обычно делается) для него я не могу. Вываливается на ASSERT, что мой класс не окно.
C>>Следуя Вашему совету, решил написать ::SetTimer(0, 1, 100, ). А что писать в 4-й параметр? NULL теперь туда писать нельзя, а то будет посылаться сообщение WM_TIMER, окна ведь нет. Пишу ::SetTimer(0, 1, 100, TimerProc1), где TIMERPROC TimerProc1(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime); Так не хочет компилироваться.
( Как вызывать ::SetTimer?
JD>напиши попобробнее... почему это ты не можешь создать окно? что за ассерт, где???
class COutControlCtrl : public COleControl
{
// ...
}
Окно не могу из-за специфического использования этого класса. Теоретически я могу вызвать Create (она объявлена еще в CWnd), но мне это не нужно. А вылетало на ASSERT( IsWindow() ); (примерно так, точный текст не помню), потому что я окно не создавал. Этот ASSERT где-то в исходниках CWnd. Экземпляр класса оператормо new создавал, а окно для этого класса не создавал, поэтому-то и возник данный вопрос.