背景スキン機能実装の影響で、今までの処理のままだと不都合が生じる点が出てきたので、ちょっと対策してみました。
以下自分用の覚え書きを兼ねて、技術的なメモ。
一つはCPU個別表示時のリサイズ処理。
今まではほぼ長方形のウィンドウだったため、四隅だけでリサイズカーソル化すれば良かったのが、スキン形状によってはそれだとリサイズできなくなってしまうという事態になるので、枠の4辺上全体で補足するようにした。
それだけだと(リージョンの)枠の周り全体に余白が付いていた場合とか、やっぱり補足できないということになるので、GetRgnBox()で得られる範囲をウィンドウ枠として判断するように補正をかけてみた。
(文章で書くと非常に分かりにくいな ^^;)
もう一つ、以前発生していたチラつき現象(フリップ)が再発してしまったので修正した。
これって、要はマウスオーバーによるウィンドウリサイズの処理中に、マウスカーソルが(動いてないにも関わらず)途中で一瞬ウィンドウ外に出ることになってしまって、そのせいでマウスオーバー&リーブのイベントが頻繁に繰り返されるという現象だったんだけど、今回変形ウィンドウを考慮するとさらにややこしいことになって少々悩みました。
マウスオーバー後ウィンドウ外に出る時のタイミング補足は、今までTrackMouseEvent()を利用していたのだが、これだと処理の流れの関係でどうにも上手くいかないようなので、この関数の代わりにタイマーを使用した自前の処理に置き換えることにして解決した。(多分 ^^;)
まぁそれでもウィンドウ形状とマウスカーソル位置によっては、どうしてもフリップが起こる可能性は消えないが、それはもう今のところどうしようもないです。(^^;)