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

解決


スクイズ  2007-06-22 06:23:29  No: 65438

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

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

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


Blue  2007-06-22 08:01:33  No: 65439

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

POINT pos;

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

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


RAPT  URL  2007-06-22 08:04:30  No: 65440

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


RAPT  2007-06-22 08:05:54  No: 65441

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


仲澤@失業者  2007-06-22 21:54:36  No: 65442

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


スクイズ  2007-06-24 05:48:22  No: 65443

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

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

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

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


Blue  2007-06-24 09:40:24  No: 65444

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

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


スクイズ  2007-06-24 20:09:01  No: 65445

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


スクイズ  2007-06-26 04:43:37  No: 65446

解決しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加