Google

2007年10月7日日曜日

久しぶりにコーディングできたぜぃ

会社の新しい部署に移ってから、えらく忙しくなってしまって
仕事外のプログラムに手をつける余裕がまるで無かった今日この頃。
とりあえず、環境を自宅に移して休日にちまちまやることに決定。
環境移すっていっても、ノートPC持ち帰ってくるだけなんですけどね♪
うーん、まさに日曜プログラマーだ・・・。

さて、久しぶりにソース触ったから感覚忘れそうになってましたが、続きの方を。
常駐状態で、時計のON・OFFを・・・ON/OFF処理はソースの記述整頓で抜き出しておいたので
関数呼び出すだけでOKとして、軽く大変だったのがウィンドウの表示非表示が
何気にうまくいっていなかった・・・てか、ちょっと抜けてたというか
そもそも表示・非表示はShowWindow関数で十分いけた感じ。
MoveWindowでサイズ変えることも無かったみたい。

とりあえず、時計表示のON・OFFは任意に出来るようになったので、次の段階へ・・・といきたいところですが、ちょっと前々から気がかりだった不具合が合ったので修正を試み。

ふつーの最初からあるdefault.txt起動で時計表示したまま画面回転させると、表示がえらいことになるという・・・。
これは表示背景の問題でして、画面表示を毎フレーム更新かけてるわけですが、
最初の画面クリア処理をどうしてるかというと、
起動時の画面画像をまんま一画像として保持しておいて、
それを背景画像として毎フレーム書いていたわけです。

透明ウィンドウってのがWindowsMobileで存在しないのでとっている手段なわけですが、
これがアドエスの画面回転が起こったときにチト問題。
だってねぇ・・・最初に作った背景用画像を変えてないから・・・縦横とかそもそもサイズあってないし・・・。

てなわけで対策としては、画面回転が起こったときに背景用画像を作り直し、なわけですが
背景だから、それまでの時計表示を非表示にした状態で縦横変わった画像を取得しないと
・・・てなことで、色々試したけど結局表示OFF→表示ONの手順を踏むことに。
これ動作フレーム1Fからになるんだよな・・・つまり最初から起動しなおししてるのと同じ。
あと、画面回転を判断するイベントがよくわからんというか、WM_SIZEってウィンドウサイズが変わったことで判断するみたいなんですが、
このイベント、画面回転時以外でも発生するときあるんだよな・・・色々調節したけど、うん・・・コレは試行錯誤まだいるな・・・。

てなわけで、少しだけ進められたよ・・・。
こうしてみると結構大変になってきたな・・・特に画面回転ってうまく取る方法ないのかねぇ?

0 件のコメント: