Форум программистов, компьютерный форум, киберфорум
Наши страницы

Перемещение по множеству EDITов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как работать с ГРИДОМ в VC++ http://www.cyberforum.ru/cpp-beginners/thread465647.html
Подскажите основные функции Grid
C++ Недопустимая операция при выполнении оператора delete[] Проблема у меня такая. Есть функция. Кусок ее кода выглядит примерно так: //... получам M и N float *pArr1 = new float ; int *pArr2 = new int ; int *pArr3 = new int ; int *pArr4 = new int ;... http://www.cyberforum.ru/cpp-beginners/thread465635.html
Как убрать запуск консоли (conagent-а)? C++
Подскажите пжлста - как убрать запуск консоли если, например, в визарде vc++ создается консольное приложение и пишется opengl программка - запускается и желаемое окно и этот текстовый довесок?......
C++ Где взять библиотеки к метафайлам?
Где взять библиотеки по сабжу? Запарился я писать свою. Эта векторная, чтоб ее черти побрали. В Кореле делаешь метафайл, экспортируешь, потом, скажем, во FreeHand-е импортируешь - мама мия, совсем...
C++ Как поместить строки в .dll ?? http://www.cyberforum.ru/cpp-beginners/thread465567.html
Как туда поместить функции я разобрался ... А вот строки и другие ресурсы - никак.
C++ Как динамически обьявить многомерный массив (ptr = new int[5][5])? как обявить вот такую вот штуку: int * ptr = new int; заранее благодарен Роман. подробнее

Показать сообщение отдельно
palva
2648 / 1875 / 274
Регистрация: 08.06.2007
Сообщений: 7,193
Записей в блоге: 4
13.03.2008, 19:08
Я опять не вполне разобрался в вопросе. Оказывается, этот метод называется сабклассинг. Имеется специальный стандартный
тип WNDPROC для оконной функции, а для вызова оконной функции предназначена функция CallWindowProc.

С учетом всего этого пример выглядит уже не таким самодельным:

WNDPROC pWinProc;

LRESULT CALLBACK EditWindowProc(HWND hWnd, UINT Message,
WPARAM wParam, LPARAM lParam) {
switch(Message) {
case WM_KEYDOWN:
MessageBox(0,'Íàæàòî','',0);
}
return CallWindowProc(pWinProc, hWnd, Message, wParam, lParam);
}

LRESULT CALLBACK MainWindowProc(HWND hWnd, UINT Message,
WPARAM wParam, LPARAM lParam) {
HWND ed1;
switch(Message) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_CREATE:
ed1=CreateWindow('EDIT','',
ES_LEFT|WS_CHILD|WS_VISIBLE|WS_BORDER|WS_TABSTOP,
24,40,122,24,hWnd, (HMENU)101,hInstance,NULL);
pWinProc=(WNDPROC)SetWindowLong(ed1, GWL_WNDPROC,
(long)EditWindowProc);
break;
}
return DefWindowProc(hWnd, Message, wParam, lParam);
}

Век живи - век учись (дураком помрешь)
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru