C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 2.4.2 - Сокрытие каретки / Каретки / Win32 API

2.4.2 - Сокрытие каретки

Всякий раз, когда ваша прикладная программа перерисовывает экран при обработке сообщения другого, чем WM_PAINT, она должна сделать каретку невидимой, используя функцию HideCaret. Когда ваша прикладная программа заканчивает прорисовку, она восстанавливает изображение каретки, используя функцию ShowCaret. Если Ваша программа обрабатывает сообщение WM_PAINT, то ей нет необходимости скрывать и восстанавливать изображение каретки, потому что эта функция делает это автоматически.

Следующий пример кода показывает, как вашей прикладной программе скрыть каретку при прорисовке символа на экране и при обработке сообщения WM_CHAR.

HWND hwnd,   // дескриптор окна
HDC hdc;     // контекст устройства

case WM_CHAR: 
switch (wParam) 
{ 
case 0x08: 
	// Обработка клавиши "Backspace" 
	break; 
case 0x09: 
	// Обработка табуляции
	break; 
case 0x0D: 
	// Обработка возврата каретки
	break; 
case 0x1B: 
	// Обработка клавиши "Esc"
	break; 
case 0x0A: 
	// Обработка перевода строки
	break; 
default: 
	// Сокрытие каретки
	HideCaret(hwnd); 
	// Прорисовка символа на экране
	hdc = GetDC(hwnd); 
	SelectObject(hdc, GetStockObject(SYSTEM_FIXED_FONT)); 
	TextOut(hdc, x, y, lpszChar, 1); 
	ReleaseDC(hwnd, hdc); 
	// Изображение каретки
	ShowCaret(hwnd); 
} 

Если ваша прикладная программа вызывает функцию HideCaret несколько раз без вызова ShowCaret, каретка не будет отображаться на экране до тех пор, пока прикладная программа также не вызовет функцию ShowCaret то же самое число раз.


| |
Автор Владимир Соковиков.
[AD]