こんばんは!いつもお世話になっています。
今、ペイントの曲線描画のようなプログラムを作りたいのですが、
POINT構造体にマウスの座標を格納するにはどうしたらいいのでしょうか?
MAKEPOINTS()のようなマクロでPOINT構造体に使えるものはあるのでしょうか?
ご存知のかたいたらよろしくお願いします。
>MAKEPOINTS()のようなマクロ
そのまま入れるのはダメなの?それはどうして?
POINT pos;
pos.x = XXXX;
pos.y = YYYY;
>マウスの座標
はどのようにして取得しているのでしょうかね?
APIだともとからPOINT構造体に取得するようなものしかないと思うのですけど。
(GetCursorPosとか)
開発環境も書いてないし、何がしたいのかよくわかりません。
VC++ であれば、
POINT pt;
::GetCursorPos( &pt );
でいけますし、マウスの座標( x, y ) ってのが分かっているなら、普通に
POINT pt = { x, y };
とか、
POINT pt;
pt.x = x;
pt.y = y;
とか書けます。
# あれま、Blue さんと丸被り・・・
いまいち質問の心がわかりませんが。
WM_MOUSEMOVE等のLPARAMからとるのなら
p.x = GET_X_LPARAM( lparam);
p.y = GET_Y_LPARAM( lparam);
ってぇマクロがwindowsx.hにありますが・・・。
すいません。
質問しておいて仕事が忙しくてなかなかこれませんでした。
質問の仕方に問題がありましたね。失礼しました。。
POINT ps;宣言して、
ps=MAKEPOINTS(LPARAM);
とした時にpsが
POINTS構造体ではないためエラーがでるようなのですが、
POINTSにではなくPOINT構造体にMAKEPOINTS()で得られる情報を取得したいんです。
Blueさん。
返信ありがとうございます。
そのままいれるというのはどうゆう事でしょうか?申し訳ないですが、詳しく教えてください。
RAPTさん。
返信ありがとうございます。すいません。VS2005です。
仲澤@失業者さん。
返信ありがとうございます。windowsx.h調べてみます。
POINT構造体とPOINTS構造体の違いは理解できていますか?
サイズがまったく違いますので一発で入れるのは不可能です。
(sizeof(POINT)≠sizeof(POINTS)=sizeof(LPARAM))
仲澤@失業者さんのおっしゃる
>GET_X_LPARAM
>GET_Y_LPARAM
で取得してください。
言われてよく見てみたら、ロングとショートでした!!
GET_X_LPARAM
などを使用してみたいと思います。
ありがとうございました!!
解決しました。
ツイート | ![]() |