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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2008, 22:40   #1
Jack Torrance
 
Регистрация: 16.12.2007
Сообщений: 4
По умолчанию Обновление заданной области экрана при нажатии клавиши

создаем некий прямоугольник длиной e-a пикселей и шириной b-f пикселей
требуется убрать этот прямоугольник с экрана, если мышь внутри прямоугольника, и нажат F5
написал два варианта, однако нужный прямоугольник так и не хочет удалятся, хотя для case WM_RBUTTONDOWN все прекрасно работает

первый:
Код:
	case WM_KEYDOWN:                              
				 
				 if(LOWORD(wParam)==VK_F5) 
			{
					 if ((LOWORD(lParam)>a) & (LOWORD(lParam)<e) & (HIWORD(lParam)>b) & (HIWORD(lParam)<f)) //проверяем, попал ли курсор внутрь прямоугольника
					 { //убираем прямоугольник
				hbrush = GetStockObject (LTGRAY_BRUSH);
  			SelectObject (memdc, hbrush);
  			
			PatBlt (memdc, a,b,c,d,PATCOPY);
  			InvalidateRect(hwnd, NULL, FALSE);
					 }
				}	
			break;
второй:
Код:
case WM_KEYDOWN:
            switch (wParam)
            {
                case VK_F5:
if ((LOWORD(lParam)>a) & (LOWORD(lParam)<e) & (HIWORD(lParam)>b) & (HIWORD(lParam)<f))
					 {
				hbrush = GetStockObject (LTGRAY_BRUSH);
  			SelectObject (memdc, hbrush);
  			
			PatBlt (memdc, a,b,c,d,PATCOPY);
  			InvalidateRect(hwnd, NULL, FALSE);
					 }

                    break;
			}
				break;
Jack Torrance вне форума Ответить с цитированием
Старый 25.05.2008, 23:03   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

А зачем же Вы для WM_KEYDOWN lParam-проверяете, если он к координатам никакого отношения не имеет...
B_N вне форума Ответить с цитированием
Старый 26.05.2008, 10:54   #3
Jack Torrance
 
Регистрация: 16.12.2007
Сообщений: 4
По умолчанию

это я уже понял..
интересно как можно в этом случае получить координаты курсора
Jack Torrance вне форума Ответить с цитированием
Старый 26.05.2008, 10:57   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

GetCursorPos, GetMessagePos. Смотрите, что больше подходит.
B_N вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фокус на заданной строке в DBGrid Zver БД в Delphi 6 08.11.2014 12:51
Открытие файлов из заданной папки anutiks Microsoft Office Excel 7 14.04.2008 04:19
Открытие браузера с заданной страничкой! Adamant Общие вопросы C/C++ 1 31.10.2007 11:04
Событие при нажатии клавиши Enter Inbox Общие вопросы Delphi 4 12.06.2007 14:18