Re[8]: Есть Timer без окна!
От: Constructor  
Дата: 16.10.02 14:57
Оценка:
Здравствуйте Joker3D, Вы писали:

JD>Здравствуйте Constructor, Вы писали:


C>>Здравствуйте Joker3D, Вы писали:


JD>>>не понимаю, зачем наследоваться от окна если его (окно) не создавать??? (возможно, тут ошибка в дизайне)


C>>Потому что в COleControl кроме функциональности окна еще очень много полезного, в частности, функциональность внутризадачного СОМ-сервера.


JD>>>2. статическую функцию : static TIMERPROC MyTimer(...) и в ней делать то что надо..


C>>А теперь я попрошу поподробнее

C>>1. Почему она должна быть статической?
C>>2. Зачем у нее объявили 2-й параметр UINT uMsg, // WM_TIMER message, если туда все равно передается сообщение WM_TIMER?

JD>1. потому что таймер умеет дергать только глобальную (или статическую — один хрен функцию, соответствующую описанию

JD>
JD>VOID CALLBACK TimerProc(
JD>  HWND hwnd,         // handle to window
JD>  UINT uMsg,         // WM_TIMER message
JD>  UINT_PTR idEvent,  // timer identifier
JD>  DWORD dwTime       // current system time
JD>);
JD>

JD>и он понятия не имеет о твоих классах/объектах.

JD>2.by design


У меня уже почти плучилось!
Тип функции должен быть не TIMERPROC, а VOID CALLBACK; а 3-й параметр пришлось объявить не UINT_PTR, а UINT, чтобы скомпилировалось. Объявил функцию статически, создаю таймер и приходят от него сообщения!
Я не могу из статической фунции вызвать нормальные методы класса — компилятор говорит, что так нельзя. Как тут быть?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.