Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 02.12.2012, 21:09   #11
Nuklon
Форумчанин
 
Аватар для Nuklon
 
Регистрация: 05.04.2012
Адрес: Россия, г. Абакан
Сообщений: 134
Репутация: 40
По умолчанию

Код:
LRESULT CALLBACK  EditProc(HWND edit, UINT msg, WPARAM wParam, LPARAM lParam);
WNDPROC   edit_proc  = NULL;

// в инициализации диалога
WM_INITDIALOG:
HWND wnd = GetDlgItem(hDlg, IDC_EDIT3);
#ifdef _WIN64
edit_proc = (WNDPROC) SetWindowLongPtr(wnd, GWLP_WNDPROC, (LONG_PTR)EditProc);
#else 
edit_proc = (WNDPROC) SetWindowLong(wnd, GWL_WNDPROC, (LONG)EditProc);
#endif
//


LRESULT CALLBACK EditProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){
    switch(msg){
	case WM_CHAR:
        if(LOWORD(wParam) == VK_RETURN){
               
              // вот здесь обработка 

              PeekMessage(NULL, hwnd, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE);
              return 0;
        }
        break;
    }
    return CallWindowProc(edit_proc, hwnd, msg, wParam, lParam);
}
Nuklon вне форума   Ответить с цитированием
Старый 03.12.2012, 11:21   #12
enjo
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 47
Репутация: 10
По умолчанию

Я так понимаю, что в EditProc передаем дескриптор еллемента, то есть едита, а как теперь обратиться к дескриптору окна.
Потому как не работтает следующее:
Код:
LRESULT CALLBACK EditProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){
    switch(msg){
	case WM_CHAR:
        if(LOWORD(wParam) == VK_RETURN){
               
              int sl1max = GetDlgItemInt(hwnd, IDC_EDIT3, NULL, FALSE);
	      SendDlgItemMessage(hwnd,IDC_SLIDER1,TBM_SETRANGE,1,MAKELONG(1,sl1max));

              PeekMessage(NULL, hwnd, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE);
              return 0;
        }
        break;
    }
    return CallWindowProc(edit_proc, hwnd, msg, wParam, lParam);
}

Последний раз редактировалось enjo; 03.12.2012 в 11:48.
enjo вне форума   Ответить с цитированием
Старый 03.12.2012, 12:26   #13
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,873
Репутация: 1915
По умолчанию

Ответьте себе на вопрос каков первый аргумент у WNDPROC функций.
waleri вне форума   Ответить с цитированием
Старый 03.12.2012, 12:37   #14
enjo
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 47
Репутация: 10
По умолчанию

дескриптор едита... а десриптор окна с помощью чего можно передать?

Последний раз редактировалось enjo; 03.12.2012 в 12:46.
enjo вне форума   Ответить с цитированием
Старый 03.12.2012, 13:25   #15
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,873
Репутация: 1915
По умолчанию

GetParent() вам нужен. Только я не понял, зачем вы меняли WNDPROC у edit а не у диалога?
waleri вне форума   Ответить с цитированием
Старый 04.12.2012, 16:37   #16
enjo
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 47
Репутация: 10
По умолчанию

А разве есть разница для текущей задачи?

Извините, я недавно работаю с win api.
enjo вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
считка массива из файла aank10 C++ Builder 0 10.10.2011 18:43
Получить адрес ячейки до нажатия Enter Sergey112233 Microsoft Office Excel 6 23.08.2011 20:02
Проверка нажатия Enter и переход на метку не работает gefest58 Assembler 4 01.04.2011 22:03
обработка нажатия ENTER(#13): что-то странное... D][mon Помощь студентам 0 13.10.2010 19:12
отловить нажатие клавиши в ячейке (до нажатия enter) loginrl103 Microsoft Office Excel 3 07.08.2009 15:10


17:07.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.