> > > プログラムのコンテンツ

プログラムのコンテンツ

  • Posted by:
  • old_blog

そういえば、そんなコンテンツを考えてたり、書いてたりしたけど、うやむや化している。

友達に「見てた」といわれて初めて思い出したわけですが、前に書いた内容には実は問題があった。

でも放置してた。

だめだなぁ・・・まぁいいか。



問題ってのは、位置検出の実装部分なんだけど、タスクバーのサイズを使って位置を検出していた。

でも、実はXPのタスクバーは +2だとか-2だとかのWindowサイズとのズレが存在しないらしい。

開発は2000でやってたから、気づきませんでした。

ってことで、修正しようと思って直し方を悩んでたら、とてつもなく簡単な方法があった。

というよりも、見落としてた。

SHAppBarMessageという関数で、APPBARDATA構造体にタスクバーの座標位置情報をセットさせていたわけだが、その際に上下左右の位置情報までセットされていたというのだ。

Ω ΩΩ<な、なんだってー!?

リファレンスが英語だったので、微妙に流し読みしてたのがまずかった。

APPBARDATA構造体にはuEdgeというメンバがあって、そいつの説明が。

Value that specifies an edge of the screen. This member can be one of the following values:

ABE_BOTTOM Bottom edge.

ABE_LEFT Left edge.

ABE_RIGHT Right edge.

ABE_TOP Top edge.

ということだったのです!!!ってコピペしたけど読めてねぇよ。

えーと、要するに画面の端を保持するもんで、下の4つのどれかの値を持ってます。ってことらしい。

だから、これを使えば位置情報の取得なんてお茶の子さいさいへのカッパ(古い)です。

無理やり、変なルゴリズムで実装しようとせずに、機能が提供されていないかしっかり調べるべきなようです。

まぁ、マイナーな機能の場合、提供されてるAPIがバグってたりして怖いんだけど。

Comments:0

コメントする

Trackbacks:0

Home > BLOG運営 > old_blog > プログラムのコンテンツ

Search

Return to page top