Re: Проблема с наследником от CWnd
От: Аноним  
Дата: 22.07.04 10:38
Оценка:
Здравствуйте, kpn, Вы писали:


kpn>Есть проблема, а заключается она в следующем:

kpn>Есть класс, базовым которого является CWnd (class CDevice : public CWnd)
kpn>Этот класс CDevice отвечает за общение с СОМ-портом, поэтому нужно, чтобы
kpn>1. Этот класс мог принимать сообщения, как любое стандартное окно.
kpn>2. Этот класс не показывал никаких окон, хотя они могут существовать "виртуально"

kpn>В одной из процедур класса я пытаюсь запустить таймер. Он не запускается, Debugger говорит, что ошибка находитя в этой стандартной функции (файл Afxwin2.inl)


kpn>_AFXWIN_INLINE UINT CWnd::SetTimer(UINT nIDEvent, UINT nElapse,

kpn>void (CALLBACK* lpfnTimer)(HWND, UINT, UINT, DWORD))
kpn>{ ASSERT(::IsWindow(m_hWnd)); return ::SetTimer(m_hWnd, nIDEvent, nElapse,
kpn>(TIMERPROC)lpfnTimer); }

kpn>Насколько я понимаю, ошибка возникает из-за того, что у моего класса CDevice, хоть он

kpn>и наследован от CWnd, но перемнная m_hWnd НЕ проинициализирована. Прав ли я в своих предположениях и как мне проинициализировать m_hWnd??

CWnd::Create()



CWnd* _wnd = new CDevice;
_wnd->Create(_T("My Super window class"), "Hello world this is window", WS_POPUP /*| WS_VISIBLE*/,
       CRect(0, 0, 100, 100), NULL );
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.