Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Где взять hWnd контрола? Добавлено: 12.12.03 16:41  

Автор вопроса:  lnu

Пробую сделать 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 контрола?

Или где почитать как єто всё сделать. шаг за шагом

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 lnu



Вопросов: 8
Ответов: 14
 Профиль | | #1 Добавлено: 12.12.03 17:43

Неужели никто не ответит? :(

В VB мы пишем UserControl.hdc - просто

А как в С++?

Ответить

Номер ответа: 2
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #2
Добавлено: 12.12.03 17:53

hWnd контрола возвращается при CreateWindowEx

Ответить

Номер ответа: 3
Автор ответа:
 &&&&M



Вопросов: 8
Ответов: 68
 Профиль | | #3 Добавлено: 12.12.03 17:59

HDC - не HWND

При создании окна (твой контрол, 'Edit' и т.д.) функция

CreateWindow или CreateWindowEx возвращяет его HWND.

hWnd = CreateWindow(---//---);

hWnd = CreateWindowEx(---//---);

Просто запиши в глобальную переменную, и используй из любой части программы.

Ответить

Номер ответа: 4
Автор ответа:
 lnu



Вопросов: 8
Ответов: 14
 Профиль | | #4 Добавлено: 12.12.03 18:11

> HDC - не HWND

HDC = GetDC(HWND)

Опечатка, извените :)

В том то и дело, что в коде сгенерированом сишкой нет CreateWindowEx(или я не нашел, или ...)

Для обычного окна (..., EDIT, STATIC...) нет проблем, а как в OCX? Описание класа нашел, а где он создается (где его CreateWindow) не имею понятия.

Ответить

Номер ответа: 5
Автор ответа:
 lnu



Вопросов: 8
Ответов: 14
 Профиль | | #5 Добавлено: 12.12.03 18:15

Вот кусок кода:

/////////////////////////////////////////////////////////////////////////////

// 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 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам