プロが教える店舗&オフィスのセキュリティ対策術

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

あと、この1から4の数字がdefine定義されているのならばそれも教えてください。

A 回答 (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 で使うかどうかは質問者さま自身の判断でお願いします。
    • good
    • 0
この回答へのお礼

>・・・指定は8までできました。
すみません自分も調べてました。

書いておいた方がよかったですね・・・

>使うかどうかは質問者さま自身の判断でお願いします。

値が変わることがないと思うので使おうと思います。

ありがとうございます。

お礼日時:2006/04/21 15:09

#define SC_SIZE 0xF000


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

この回答への補足

さっそくありがとうございます。

>・・・そのように定義されているからです。
すいません。私が言いたかったことは
「これって使いづらくないか?
なぜこんな風になったの?」
ってことです。

それにこの数字なのですが、
左が1、右が2、上が4、下が8
にしたほうがよかったのでは・・・とか思っています。
そうしたら左上が1 or 4といったかんじに指定しやすくなるのでは・・・

とか思っているのです。
今更、こんなこと言っても意味がないのでしょうけど・・・

補足日時:2006/04/21 14:35
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!