Страница: 1 |
Пробую сделать ocx в С++ (в которой я ноль) на базе EDIT Подскажите как в С++ 1. Добавить свойсво LineCount (Пробовал с ClassWizard Set/Get и метод Set потом удалял - только чтение) 2. Оброботать Edit1.TextChange (реакция на WM_????). В обработке: NewLineCount=SendMessage(hWnd,EM_GETLINECOUNT,0,0) // Где взять hWnd контрола? IF NewLineCount<>Edit1.LineCount 3.сгенерировать событие (Fire) LineCountIsGanged. Edit1.LineCount=NewLineCount ENDIF Главная загвоздка в п. 2: Где взять hWnd контрола? Или где почитать как єто всё сделать. шаг за шагом
Неужели никто не ответит? В VB мы пишем UserControl.hdc - просто А как в С++? hWnd контрола возвращается при CreateWindowEx HDC - не HWND При создании окна (твой контрол, 'Edit' и т.д.) функция CreateWindow или CreateWindowEx возвращяет его HWND. hWnd = CreateWindow(---//---); hWnd = CreateWindowEx(---//---); Просто запиши в глобальную переменную, и используй из любой части программы. > HDC - не HWND HDC = GetDC(HWND) Опечатка, извените В том то и дело, что в коде сгенерированом сишкой нет CreateWindowEx(или я не нашел, или ...) Для обычного окна (..., EDIT, STATIC...) нет проблем, а как в OCX? Описание класа нашел, а где он создается (где его CreateWindow) не имею понятия. Вот кусок кода: ///////////////////////////////////////////////////////////////////////////// // CAaaaCtrl::PreCreateWindow - Modify parameters for CreateWindowEx- Где она? BOOL CAaaaCtrl::PreCreateWindow(CREATESTRUCT& cs) { cs.lpszClass = _T("EDIT"); cs.style = WS_VISIBLE + WS_CHILD +ES_MULTILINE+ES_AUTOVSCROLL; return COleControl::PreCreateWindow(cs); } Страница: 1 |
Вопрос: Где взять hWnd контрола?
Добавлено: 12.12.03 16:41
Автор вопроса: lnu
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
lnu
Вопросов: 8
Ответов: 14
Профиль | | #1
Добавлено: 12.12.03 17:43
Номер ответа: 2
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #2
Добавлено: 12.12.03 17:53
Номер ответа: 3
Автор ответа:
&&&&M
Вопросов: 8
Ответов: 68
Профиль | | #3
Добавлено: 12.12.03 17:59
Номер ответа: 4
Автор ответа:
lnu
Вопросов: 8
Ответов: 14
Профиль | | #4
Добавлено: 12.12.03 18:11
Номер ответа: 5
Автор ответа:
lnu
Вопросов: 8
Ответов: 14
Профиль | | #5
Добавлено: 12.12.03 18:15