POINT構造体に座標をいれるには?

解決


スクイズ  2007-06-21 21:23:29  No: 65438  IP: 192.*.*.*

こんばんは!いつもお世話になっています。
今、ペイントの曲線描画のようなプログラムを作りたいのですが、
POINT構造体にマウスの座標を格納するにはどうしたらいいのでしょうか?

MAKEPOINTS()のようなマクロでPOINT構造体に使えるものはあるのでしょうか?

ご存知のかたいたらよろしくお願いします。

編集 削除
Blue  2007-06-21 23:01:33  No: 65439  IP: 192.*.*.*

>MAKEPOINTS()のようなマクロ
そのまま入れるのはダメなの?それはどうして?

POINT pos;

pos.x = XXXX;
pos.y = YYYY;

>マウスの座標
はどのようにして取得しているのでしょうかね?
APIだともとからPOINT構造体に取得するようなものしかないと思うのですけど。
(GetCursorPosとか)

編集 削除
RAPT  URL  2007-06-21 23:04:30  No: 65440  IP: 192.*.*.*

開発環境も書いてないし、何がしたいのかよくわかりません。
VC++ であれば、
POINT pt;
::GetCursorPos( &pt );
でいけますし、マウスの座標( x, y ) ってのが分かっているなら、普通に
POINT pt = { x, y };
とか、
POINT pt;
pt.x = x;
pt.y = y;
とか書けます。

編集 削除
RAPT  2007-06-21 23:05:54  No: 65441  IP: 192.*.*.*

# あれま、Blue さんと丸被り・・・

編集 削除
仲澤@失業者  2007-06-22 12:54:36  No: 65442  IP: 192.*.*.*

いまいち質問の心がわかりませんが。
WM_MOUSEMOVE等のLPARAMからとるのなら
  p.x = GET_X_LPARAM( lparam);
  p.y = GET_Y_LPARAM( lparam);
ってぇマクロがwindowsx.hにありますが・・・。

編集 削除
スクイズ  2007-06-23 20:48:22  No: 65443  IP: 192.*.*.*

すいません。
質問しておいて仕事が忙しくてなかなかこれませんでした。
質問の仕方に問題がありましたね。失礼しました。。

POINT  ps;宣言して、
ps=MAKEPOINTS(LPARAM);
とした時にpsが
POINTS構造体ではないためエラーがでるようなのですが、
POINTSにではなくPOINT構造体にMAKEPOINTS()で得られる情報を取得したいんです。
Blueさん。
返信ありがとうございます。
そのままいれるというのはどうゆう事でしょうか?申し訳ないですが、詳しく教えてください。

RAPTさん。
返信ありがとうございます。すいません。VS2005です。

仲澤@失業者さん。
返信ありがとうございます。windowsx.h調べてみます。

編集 削除
Blue  2007-06-24 00:40:24  No: 65444  IP: 192.*.*.*

POINT構造体とPOINTS構造体の違いは理解できていますか?
サイズがまったく違いますので一発で入れるのは不可能です。
(sizeof(POINT)≠sizeof(POINTS)=sizeof(LPARAM))

仲澤@失業者さんのおっしゃる
>GET_X_LPARAM
>GET_Y_LPARAM
で取得してください。

編集 削除
スクイズ  2007-06-24 11:09:01  No: 65445  IP: 192.*.*.*

言われてよく見てみたら、ロングとショートでした!!
GET_X_LPARAM
などを使用してみたいと思います。
ありがとうございました!!

編集 削除
スクイズ  2007-06-25 19:43:37  No: 65446  IP: 192.*.*.*

解決しました。

編集 削除