VC++のver6.0を使用している者です.
今回「カーソルがウィンドウの中心に固定されていて,左ボタンをクリックすると自由に動かすことができ,もう一度クリックするとカーソルは初期位置に戻り,再び固定されて動かすことが出来ない」というアプリを作成しようと思っています.
コンセプトとして,
・ウィンドウズメッセージハンドラのWM_LBUTTONDOWNを用いる
・BOOL型の変数を用意し,左ボタンが押される度に真偽を入れ替える
・TRUEの状態ならば自由にカーソルを動かせる
・FALSEの状態だとウィンドウの中心に固定される(マウスを動かしてもカーソルは動かない)
という感じにしたいと考えています.
しかし,カーソルを固定,およびその解除の方法が分かりません.どのようにやればよいのでしょうか…よい方法がありましたら,ご教授ください.
よろしくお願いします.
No.2ベストアンサー
- 回答日時:
> カーソルはマウスカーソルを使おうと思ってます.
不具合があったり、使い方を知らない人が使うと終了の操作が出来なかったり、問題が多いですが…。
ジョークソフトなんかで作った記憶はあります。
その場合は、カーソルの描画はWindowsがやってくれますので、特別な処理は不要です。
マウスが移動したOnMouseMoveのイベント時、固定するモードだったら、::SetCursorPosで位置を固定して、CWnd::OnMouseMoveのオーバーライドを行わせないとかで良かったかと。
再び回答ありがとうございます.
そうですね,再度調べてみたらWindowsの機能でSetCursorPosや,あとClipCursorで点固定,というものがあるみたいです.どのようにするかはまた考え直さなければならないと思いますが,それらを活用してみようと思います.
No.3
- 回答日時:
Win32APIの
ClipCursorも参考までに。
カーソルの移動範囲を指定矩形内に限定させます。
お手軽ですよ。
No.1
- 回答日時:
> カーソルを固定,およびその解除の方法が分かりません.
固定するカーソルと言うのは、Windowsの操作にも使用するマウスカーソルですか?アプリケーション独自のカーソル?
後者だとして、OnPaintなどで、基本的に常にカーソルの位置は常に描画します。
固定、解除に関しては、描画するXY位置を変更します。
TRUEの状態になった瞬間に、現在のマウスカーソルの位置を取得しておきます。マウスが動くたびに元の位置からの変化量を計算し、XYに格納。再描画。
FALSEの際には、XYには中心の位置を格納。
とかかなあ。
回答ありがとうございます.
OnPaint関数を用いる方法は参考になりました.
ただ…申し訳ないのですが,カーソルはマウスカーソルを使おうと思ってます.「カーソルの位置のをx,y座標で予め指定→固定」の流れでいきたいのですが,マウスカーソルだとしんどいでしょうか。いろいろ調べてみたのですが,分かりませんでした。
後者の方が書きやすいのなら,そちらで検討してみようと思います.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Minecraft 統合版(PC)の描画距...
-
エクセルでガンチャートを作成...
-
MFCでOnPaintのタイミング
-
NVIDIAのシェーダーキャッシュ
-
InvalidateRectの使い方について
-
PCで「使用可能な場合はグラフ...
-
google Colabでmatplotlibの描...
-
ドローソフトのダブルバッファ...
-
Androidのスマホについての質問...
-
word
-
OpenCV処理画像をpictureBoxへ。
-
ボタン形のラベル
-
OpenGLのテクスチャマッピング
-
TextBoxに文字を書いても表示さ...
-
Wave波形の描画について
-
OneNote 2010 文字と描画がずれる
-
うまく表示されない。(API・C言...
-
グラフの交点の求め方(Excel)
-
エクセルで作った新しいウイン...
-
コントロールの書式設定で、“コ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6,リストボックスの特定行の...
-
Minecraft 統合版(PC)の描画距...
-
[VB.net] DataGridViewの列ヘッ...
-
MFCでOnPaintのタイミング
-
TextBoxに文字を書いても表示さ...
-
word
-
NVIDIAのシェーダーキャッシュ
-
InvalidateRectの使い方について
-
UpdateData( FALSE); による文...
-
CStaticコントロールの静的イメ...
-
CScrollViewの使用方法について
-
VB.netでのライン描画方法がわ...
-
VBAにGDI+を参照させる方法
-
この二つの違いは・・・?
-
Form1 Load で実行されない。
-
OneNote 2010 文字と描画がずれる
-
OnDrawが呼び出されません
-
C# ラバーバンドの描画を快適に...
-
コンボボックスの高さを変えたい
-
panelのスクロール表示について
おすすめ情報