アドエスキーボード作成課題 3(画面縦横切替) | objective-cをちょい研究!ブログ

objective-cをちょい研究!ブログ

WILLCOMを卒業してiOS開発者に転身しました。。
コメント&トラックバック大歓迎です。

アドエスメロディキーボードバージョンアップの課題です。


課題1 画像表示
画面が寂しいので画像を表示できるようにする。
画面にピクチャーボックスコントロールを配置して、ファイルを読み込む。

Dim Bitmap1 As Bitmap
Bitmap1 = New Bitmap("\Program Files\1.gif") //画像ファイル読込み
PictureBox1.Image = Bitmap1           //PictureBoxに画像設定

課題2 縦横切替
縦横切替の専用イベントがある訳ではなくて、Resize(WM_SIZE)イベントで判断するらしい。
ただ、起動時に4回、切替時に2回Resizeイベントが降ってくるので、サイズが変わったことを判定する変数を1つ用意しておく。
起動時は、Visible(画面表示フラグ)チェックをしてResize処理しないようにする。


起動時のイベント順
Resize(Visible=False)
Resize(Visible=False)
Form_Load
Resize(Visible=False)
Resize(Visible=True)


切替時のイベント
Resize(Width=新サイズ)
Resize(Width=新サイズ)


Dim lngBefSize As Long //画面幅を保存しておく変数


Private Sub Form1_Load(…) Handles MyBase.Load
  If Me.Width < Me.Height Then
  //縦の処理
  Else
  //横の処理
  End If

  lngBefSize = Me.Width //画面幅を退避
End Sub


Private Sub Form1_Resize(…) Handles MyBase.Resize
  //画面幅が変わった場合
  If lngBefSize <> Me.Width And Me.Visible = True Then
    If Me.Width < Me.Height Then
     //縦の処理
    Else
     //横の処理
    End If

    lngBefSize = Me.Width //画面幅を退避
  End If
End Sub


http://www.microsoft.com/japan/msdn/mobility/windowsmobile2003/screen_orientation_awareness.aspx
画面方向の切替えに対応したアプリケーションの開発(MSDN)


課題3 キー入力とIMEのON/OFF
IMEはImmSetOpenStatusでON/OFF切替できるそうです。
これを使って初期状態で半角入力モードに切替。


http://d.hatena.ne.jp/annin102/20071122/1195753333
入力モードを _1 に変更する方法(闇忍日記さん)
http://blog.goo.ne.jp/mypda/e/bd2e6a36e011e986ab907ea64f5778c7
ソース公開企画第3弾 TextCopy(w-zero3日和さん)


あとは、どのキーにどの音を割り当てるか。
実質3段しかないので、A段に白鍵盤、Q段に黒鍵盤を割り当て。
結局1オクターブしか入らないなぁ。仕様を考えるのが一番悩ましい…(^^;