Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
при создании Custom Control останавливается на ASSERTе
|
|||
|---|---|---|---|
|
#18+
Добрый день всем! В VC 2005 я создал MFC приложение на базе диалогового окна, в него поместил Custom Control, для которог есть класс MECGraphCtrl. Класс регистрируется так: BOOL MECGraphCtrl::RegisterWndClass(HINSTANCE hInstance) { WNDCLASS wc; wc.lpszClassName = _T("GRAPH_CUSTOM"); // matches class name in client wc.hInstance = hInstance; wc.lpfnWndProc = ::DefWindowProc;//ControlWndProc; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hIcon = 0; wc.lpszMenuName = NULL; wc.hbrBackground = (HBRUSH) ::GetStockObject(LTGRAY_BRUSH); wc.style = CS_GLOBALCLASS; // To be modified wc.cbClsExtra = 0; wc.cbWndExtra = 0; return (::RegisterClass(&wc) != 0); } Также в классе есть переопределенная функция Create: BOOL MECGraphCtrl::Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID) { BOOL result ; static CString className = AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW) ; //m_hWnd =NULL; //_T("GRAPH_CUSTOM") result = CWnd::CreateEx(WS_EX_CLIENTEDGE | WS_EX_STATICEDGE, _T("GRAPH_CUSTOM") , NULL, dwStyle, rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top, pParentWnd->GetSafeHwnd(), (HMENU)nID) ; //result=CWnd::Create(_T("GRAPH_CUSTOM"), NULL, dwStyle, rect, pParentWnd, nID); if (result != 0) InvalidateCtrl() ; return result ; } дак вот в ней при вызове CWnd::CreateEx и останавливается программа на ASSERT(pWnd->m_hWnd == NULL) в функции AfxHookWindowCreate в строке 624 файла wincore.cpp. Я пытался обойти этот ASSERT так m_hWnd =NULL; но возникает какая-то Runtime ошибка. В релизной версии всё работает! Что делать? Заранее большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 09:27 |
|
||
|
при создании Custom Control останавливается на ASSERTе
|
|||
|---|---|---|---|
|
#18+
По моему проще использовать MapDialogRect для преобразования координат шаблона в экранные. И не надо мучаться с тупым и "глюканутым" custom control и регистрацией классов для него. BOOL wDialog::OnInitDialog(){ CDialog::OnInitDialog(); CRect RectC(0, 250, 0+158, 250+70); MapDialogRect(&RectC); cEdit.Create(WS_CHILD | WS_VISIBLE, RectC, this, IDCEdit); return TRUE; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2013, 11:36 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2020195]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
125ms |
get topic data: |
9ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 284ms |
| total: | 504ms |

| 0 / 0 |
