2006年8月8日火曜日

SIP表示・非表示でのダイアログサイズ変更

またまたWindows Mobile 5.0の開発メモ。
今度は、SIP(Software Input Panel)の表示・非表示切替に合わせて、ダイアログのサイズを変更する方法です。
SDKのサンプルを見ながら実装してみたら、案外簡単にできました。
ちなみに、サンプルの位置はデフォルトのインストール位置であれば
"C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Samples\CPP\Win32\Handlesip"
にあります。

実際、MFCのダイアログに実装する場合はWM_SETTINGCHANGEイベントハンドラを作成し、


if ( SPI_SETSIPINFO == uFlags )
{
    SHACTIVATEINFO sai;
    memset( &sai, 0, sizeof( SHACTIVATEINFO ) );
    SHHandleWMSettingChange( m_hWnd, -1, 0, &sai );

    // ここでダイアログの再描画処理
}


というコードを入れてあげればOKそうです。
SHHandleWMSettingChangeのwParamに-1、lParamに0を渡すのが大事っぽい。
サンプル見ないと、絶対わからないよなぁ…(´・ω・`)

0 件のコメント:

コメントを投稿