• ベストアンサー

SC_SIZEがわからない

理由がわかりません。 教えてください。 SendMessage(hWnd,WM_SYSCOMMAND,SC_SIZE+1,0); としたらウィンドウサイズを左向きを伸ばし、変更が出来るみたいです。 SC_SIZE+2で右、 SC_SIZE+3で上、 SC_SIZE+4で下・・・、ではなくなぜ左上にサイズ変更になるのでしょうか? あと、この1から4の数字がdefine定義されているのならばそれも教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.2

面白そうなので調べてみましたところ +n の指定は8までできました。 SC_SIZE+1 左 SC_SIZE+2 右 SC_SIZE+3 上 SC_SIZE+4 左上 SC_SIZE+5 右上 SC_SIZE+6 下 SC_SIZE+7 左下 SC_SIZE+8 右下 これを見るば +4 で左上になるのもおかしくはないでしょう。 で、defineですが、マニュアル見てもわからなかったので、winuser.h を直に見たらこんなのがありました。 #define WMSZ_LEFT 1 #define WMSZ_RIGHT 2 #define WMSZ_TOP 3 #define WMSZ_TOPLEFT 4 #define WMSZ_TOPRIGHT 5 #define WMSZ_BOTTOM 6 #define WMSZ_BOTTOMLEFT 7 #define WMSZ_BOTTOMRIGHT 8 これを基にマニュアルを調べたところ WM_SIZING メッセージで使用するようです(マニュアル参照してください)。 WM_SYSCOMMAND で使うかどうかは質問者さま自身の判断でお願いします。

Missing0001
質問者

お礼

>・・・指定は8までできました。 すみません自分も調べてました。 書いておいた方がよかったですね・・・ >使うかどうかは質問者さま自身の判断でお願いします。 値が変わることがないと思うので使おうと思います。 ありがとうございます。

その他の回答 (1)

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.1

#define SC_SIZE 0xF000 がWINUSER.Hにあります。 なぜ左上に…って、そのように定義されているからです。 下位4ビット(+2,+3…)はWindowsの内部に渡されるようです。

Missing0001
質問者

補足

さっそくありがとうございます。 >・・・そのように定義されているからです。 すいません。私が言いたかったことは 「これって使いづらくないか? なぜこんな風になったの?」 ってことです。 それにこの数字なのですが、 左が1、右が2、上が4、下が8 にしたほうがよかったのでは・・・とか思っています。 そうしたら左上が1 or 4といったかんじに指定しやすくなるのでは・・・ とか思っているのです。 今更、こんなこと言っても意味がないのでしょうけど・・・

関連するQ&A