2010年7月7日水曜日

氷河期の災厄の象徴

 たまには技術的なことでも……。


 WindowsMobileは画面の向きが縦・横の2パターンで変化します(厳密にはもう2パターンありますが)。今作成中の、7/6記念のアプリケーションにて、画面向きを横で固定させたかったために以下の方法で画面向きを固定させる処理を書いています。

'グローバル変数として以下を定義(画面回転の検知用)
Private dispStatus As Microsoft.WindowsMobile.Status.SystemState

'ロード時に画面向き変更と、回転イベント検知用のイベントハンドルを追加
Private Sub frmStartUp_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Microsoft.WindowsCE.Forms.SystemSettings.ScreenOrientation = Microsoft.WindowsCE.Forms.ScreenOrientation.Angle270
  '画面回転イベントを登録
  dispStatus = New Microsoft.WindowsMobile.Status.SystemState(Microsoft.WindowsMobile.Status.SystemProperty.DisplayRotation)
  AddHandler dispStatus.Changed, AddressOf Me.dispStatus_Changed
End Sub

'画面回転時の処理
Private Sub dispStatus_Changed(ByVal sender As Object, ByVal args As Microsoft.WindowsMobile.Status.ChangeEventArgs)
  '上記、Loadイベント内での宣言により、画面回転発生時に呼び出されるイベント
  If Microsoft.WindowsCE.Forms.SystemSettings.ScreenOrientation = Microsoft.WindowsCE.Forms.ScreenOrientation.Angle270 Then Return
  Microsoft.WindowsCE.Forms.SystemSettings.ScreenOrientation = Microsoft.WindowsCE.Forms.ScreenOrientation.Angle270
End Sub


T-01B実機だと上記赤色の※の部分で、エラー落ちします。(エミュ上でも変な動きになるんですが……)
キーボード出し入れでの画面回転しか試してないんですが、キーボードをしまったとき(縦になるタイミング)で落ちています。
しかし不思議なことに、※部分を
  MsgBox("画面回転は出来ません")
みたいにメッセージボックス表示処理を挟むと、何故か落ちなくなったりする……。
メッセージボックス表示中は画面が一時的に縦の状態で描画されるんですが、少し待たせたほうがいいのかなと思ってスリープを入れてみても、結果はエラー。
何が原因なのかイマイチわかりませんが、もうちょっと調べてみて解決したら、ここに載せようと思います。

ちなみにこれが解決すれば、β版レベルではありますが、ようやく1つ目のアプリ公開が出来そうです。
(MTG補助アプリですが)


というか気がつけばこんな時間に……明日大丈夫かな……。

2 件のコメント:

  1. 前回返信ありがとうございました。

    エミュそのものはWMエミュを使うのはわかってますw
    環境ももうできています。

    ただ、VS内のデザイン時や実行時のエミュの見た目(スキン)を
    IS02と同じにしたいなーということです
    (ボタンの位置とか全然違いますし)

    というのも、W-ZERO3とかはスキンがあって、エミュやVSデザイン画面で
    W-ZERO3と同じ見た目にできているからです
    コチラ → ttp://blogs.shintak.info/archive/2006/04/20/25427.aspx

    まぁ、IS02は出て間もないので、スキンがない可能性は大ですけどね(´ω`)

    返信削除
  2. これは失礼しました。
    あのエミュ、スキンあったんですね。デフォルトで表示されてるやつは邪魔だなと思っていつも非表示にしちゃってるので、そういうスキンが出回っているとは思いませんでした。
    (画面回転させるときに表示させるくらいです)

    軽く調べてみましたが、特になにも引っかかりませんね……>IS02スキン
    でもこの機種も結構売れているみたいですし、T-01Bとあわせるとそこそこのユーザ人口になると思うので、そのうち出てくるのをゆっくりと待ちますかね。

    返信削除