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

Перемещение по множеству 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
2655 / 1882 / 275
Регистрация: 08.06.2007
Сообщений: 7,220
Записей в блоге: 4
06.03.2008, 23:02
Мой первый ответ, похоже, был из другой оперы. Не разобрался сразу.

Вам надо подменить оконную функцию стандартного контрола своей, в ней написать нужную обработку сообщений от клавиатуры и закончить ее обращением к стандартной функцией. Вот фрагмент работающего проекта:

typedef LRESULT (CALLBACK *PFNWP)(HWND, UINT, WPARAM, LPARAM);
PFNWP pWinProc;

LRESULT CALLBACK EditWindowProc(HWND hWnd, UINT Message,
WPARAM wParam, LPARAM lParam) { // Оконная функция для EDIT
switch(Message) {
case WM_KEYDOWN:
MessageBox(0,'Нажато','',0);
}
return 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=(PFNWP)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