CEで全画面表示 WM5.0編

[id:machi_pon:20060619:1150717551]にPDAMFCのCDialogを使って全画面表示のやり方を書いていますけど。
[id:pieq:20060810:1155189691]によると、Windows Mobile 5.0(W-ZERO3とか)だと駄目なようで。


Windows Mobile 5.0時代になってから殆どPDAプログラミングをしていないので、気がついてなかったんですが。
とりあえずエミュレータ上で試してみたら、確かにWindows Mobile 5.0だとSIPとかが残りますね(´・ω・`)


で、ちょっとCDialogのソースを読んだりしながら考えてみました。
こんな感じの処理ではどうでしょう(・∀・)?

CSampleDlg::CSampleDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CSampleDlg::IDD, pParent)
{
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    m_bFullScreen = FALSE;
}

BOOL CSampleDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

...

    MoveWindow( 0, 0, 480, 640, TRUE );
    ::SetForegroundWindow( m_hWnd );
    ::SHFullScreen( m_hWnd, SHFS_HIDETASKBAR|SHFS_HIDESIPBUTTON|SHFS_HIDESTARTICON );
    
    return TRUE;  // フォーカスをコントロールに設定した場合を除き、TRUE を返します。
}

ポイントはm_bFullScreen = FALSEですかね。


一応、添付画像みたいに最大化表示は出来ていますけど。
ちなみにWM_ACTIVATEとか、その他副作用の調査とかまではしてないです。


後、MoveWindow()はちゃんとサイズを取得して行ってくださいな(´ω`)