CEで全画面表示 WM5.0編
[id:machi_pon:20060619:1150717551]にPDAでMFCの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()はちゃんとサイズを取得して行ってくださいな(´ω`)