Экранная клавиатура

Средства разработки, технические вопросы, отвечает (по мере сил) Отдел Разработок
Закрыто
Аватара пользователя
KAjFASH
Кандидат (3 lvl)
Сообщения: 117
Зарегистрирован: Чт авг 19, 2004 16:40

Re: Экранная клавиатура

Сообщение KAjFASH » Вт фев 08, 2005 13:29

Gary Newhouse писал(а):1. Как ее программно спрятать / показать?
В OnInitDialog вызвать функцию SHFullScreen в которой в параметрах dwState указать SHFS_HIDESIPBUTTON
Gary Newhouse писал(а):2. Как ее программно разворачивать и сворачивать?
Используя такой код:

Код: Выделить всё

SHSipPreference(m_hWnd, SIP_FORCEDOWN); // Hide SIP
SHSipPreference(m_hWnd, SIP_UP);  // Show SIP
Gary Newhouse писал(а):3. "Умные" программы при развороте экранной клавиатуры подстраивают свой размер. Где и что надо в своей программе перехватить, чтобы сделать аналогично?
Нужно поискать на http://www.pocketpcdn.com/ и http://www.codeproject.com/ce/ .
РегардЗ...
iPAQ, FS LOOX, Versija, Palm, Symbol... SD: 64,128,512
www.salesworks.com.ua

Det
Студент (1 lvl)
Сообщения: 46
Зарегистрирован: Пт дек 24, 2004 14:00

Re: Экранная клавиатура

Сообщение Det » Вт фев 08, 2005 14:23

Gary Newhouse писал(а): 3. "Умные" программы при развороте экранной клавиатуры подстраивают свой размер. Где и что надо в своей программе перехватить, чтобы сделать аналогично?

Если кто знает - подскажите, pls...
Перехватывай WM_SETTINGCHANGE в нужном окне верхнего уровня. Subject - SPI_SETSIPINFO. Код (mfc) приблизительно такой (здесь ActiveView - активный поддиалог):

Код: Выделить всё

LRESULT CSomeWndClass::OnSettingChange(WPARAM wprSubject, LPARAM)
{
  if( wprSubject != SPI_SETSIPINFO )
    return 0;

  CRect Rect;
  GetClientRect(&Rect);

  SIPINFO si;
  memset(&si, 0, sizeof (si));
  si.cbSize = sizeof (si);
  if( ::SHSipInfo(SPI_GETSIPINFO, 0, &si, 0) && (si.fdwFlags & SIPF_ON) )
  {
    CRect rcSip(si.rcVisibleDesktop);
    ScreenToClient(rcSip);
    Rect &= rcSip;
  }

  m_ActiveView.MoveWindow(Rect);
  return 0;
}
[/code]

Аватара пользователя
KAjFASH
Кандидат (3 lvl)
Сообщения: 117
Зарегистрирован: Чт авг 19, 2004 16:40

Сообщение KAjFASH » Пт фев 11, 2005 13:45

Gary Newhouse писал(а):Мало того, чтобы в хелпах нет ничего :(
так еще и некоторых функций нет (типа SHSip...)
В хелпах для 4-ой сишки должно все быть. В индексе ввести нужную функцию и всё. В МСДН начиная от October 2001 входит хелп по покетах.
Gary Newhouse писал(а):А те, которые есть (SipGetInfo и пр.), так не могу найти библотеку...
Все функцейки находятся в "Aygshell.h", если я не ошибаюсь то МФЦ включает эту библиотеку.
РегардЗ...
iPAQ, FS LOOX, Versija, Palm, Symbol... SD: 64,128,512
www.salesworks.com.ua

Закрыто

Вернуться в «Программирование для КПК»