Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2010, 17:46   #1
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию Win32 Api

Создал программу win api в delphi...
но нужна помощь....
программа должна показывать окно и при нажитии клавиши на клаве или мыши выдавать сообщение какая клавиша была нажата...
вот исходник
Код:
Program Api;
uses
  windows,
  messages;

var
window:TWndClassEx;
Mwindow: HWND;
Mmsg: MSG;

// Процедура обработки сообщений
function WindowProc (wnd: HWND; msg: integer; wparam: WPARAM; lparam: LPARAM):LRESULT;STDCALL;
begin
case msg of
WM_Destroy:
begin
PostQuitMessage (0);
Result := 0;
Exit;
end;
else
Result := DefWindowProc(wnd,msg,wparam,lparam);
end;
end;

// Ристрация класса окна
begin
window.cbSize := sizeof (window);
window.style := CS_HREDRAW or CS_VREDRAW;
window.lpfnWndProc := @WindowProc;
window.cbClsExtra := 0;
window.cbWndExtra := 0;
window.hInstance := HInstance;
window.hIcon := LoadIcon (0,IDI_APPLICATION);
window.hCursor := LoadCursor (0,IDC_ARROW);
window.hbrBackground:=Color_BtnFace+12;
window.lpszMenuName := nil;
window.lpszClassName := 'Main_Window';
RegisterClassEx (window);
// Создание окна на основе созданного класса
Mwindow := CreateWindowEx(0,'Main_Window','by_revaldo666', WS_OVERLAPPEDWINDOW,100,100,300,300,0,0,Hinstance,nil);
// Показать созданное окно
SHOWWINDOW (Mwindow,SW_Show);
// Цикл обработки сообщений
while GetMessage (Mmsg,0,0,0) do
begin
TranslateMessage (Mmsg);
DispatchMessage (Mmsg);
end;
end.
подскажите что не так...что пропустил?
revaldo666 вне форума Ответить с цитированием
Старый 05.07.2010, 18:27   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а собственно где обработка нажатия клавиш то?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.07.2010, 18:30   #3
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

я просто новичёк...можеш подсказать хотябы как это сделать?
revaldo666 вне форума Ответить с цитированием
Старый 05.07.2010, 18:47   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

обрабатывайте сообщение WM_KEYDOWN/WM_KEYUP(нажатие/отпускание клавиши соответственно) в своей оконной процедуре.(коли взялись за окна это знать должны)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.07.2010, 18:51   #5
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

та это не я взялся...это задание такое дали))
revaldo666 вне форума Ответить с цитированием
Старый 05.07.2010, 18:53   #6
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
обрабатывайте сообщение WM_KEYDOWN/WM_KEYUP(нажатие/отпускание клавиши соответственно) в своей оконной процедуре.(коли взялись за окна это знать должны)

Можеш плиз на примере показать как это сделать?
revaldo666 вне форума Ответить с цитированием
Старый 05.07.2010, 23:29   #7
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

подскажите плиз ктонибудь как в этой проге применить WM_keyup/keydown.
Сижу уже 2 часа в инете никак разобратся немогу((
revaldo666 вне форума Ответить с цитированием
Старый 05.07.2010, 23:59   #8
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Код:
uses
  windows,
  messages,
  SysUtils;
......................................
function WindowProc (wnd: HWND; msg: integer; wparam: WPARAM; lparam: LPARAM):LRESULT;STDCALL;
begin
case msg of
WM_KEYDOWN:
MessageBox(0, Pchar(IntToStr(wparam)), 'msg', MB_OK);
..................................
profi вне форума Ответить с цитированием
Старый 06.07.2010, 00:15   #9
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

Спасибо...
А для мышки не подскажеш?
revaldo666 вне форума Ответить с цитированием
Старый 06.07.2010, 00:45   #10
TGrey[WoLf]
Пользователь
 
Регистрация: 21.06.2010
Сообщений: 27
По умолчанию

WM_LBUTTONDOWN
прогугли, получишь остальные.
TGrey[WoLf] вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простые числа в Win32 APi asd874 Помощь студентам 0 23.05.2010 00:02
Простейшее приложение на базе Win32 API nevidimka Помощь студентам 2 24.09.2009 10:35
Win32 Api! alexov Общие вопросы C/C++ 7 09.02.2009 22:25
Что такое Win32 API Slovinsky Свободное общение 10 29.10.2007 10:46