カーソル変化の禁止方法:OnNotifyを使用する

このQ&Aのポイント
  • リストコントロールにおいて、カラムの幅変更やダブルクリックを禁止する処理をOnNotify関数で行っています。
  • しかし、カラムの区切り線にマウスを持っていくとカーソルが変化してしまう問題が発生しています。
  • カーソルの変化を禁止するためのメッセージ(HDN_BEGINTRACKやHDN_DIVIDERDBLCLICKなど)について知っている方はいらっしゃいませんか?
回答を見る
  • ベストアンサー

OnNotifyでカーソル変化を禁止するために…

リストコントロールを作成しています。 OnNotify関数でカラムのドラッグ開始メッセージ(HDN_BEGINTRACK)を取得し、 trueを返してカラム幅の変更を禁止する処理をしました。 同様にダブルクリックも禁止するように処理しましたが、 カラムの区切り線にマウスを持っていくと、マウスカーソルが変化してしまいます。 ドラッグ等を禁止しているのでカーソルの変化も禁止したいんですが、 カラムの区切り線にカーソルをもってきたときのメッセージ (HDN_BEGINTRACK や HDN_DIVIDERDBLCLICK のようなメッセージ) をご存じの方はいらっしゃらないでしょうか? 本、Web上でメッセージを探し出せずに困っています。 助力をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

WM_SETCURSOR でしょうか。 リストビューのヘッダコントロールをサブクラス化して、 WM_SETCURSOR を握りつぶすと、マウスカーソルが変わらなくなるようです。

-Kororon-
質問者

お礼

お返事がおそくなりましてすみません。 アドバイスありがとうございます! 教えて頂いたメッセージで、 無事カーソル変化を禁止することができました。

関連するQ&A

  • ダイアログのテキストにマウスカーソルが乗ったときの処理

    MFC(VC++6.0)のダイアログベースでプログラムを製作していますが、 そのテキストにマウスカーソルが乗ったときに処理をさせたいです。 そして、マウスカーソルがテキストから離れたときにも処理をさせたいです。 どういうメッセージが送られてくるのかが知りたいので、 ご存知の方、ご教授お願いします。 わかりやすく言うと、ダイナミックHTMLの OnMouseOverとOnMouseOutみたいな処理をさせたいのです。

  • エクセルでマウスカーソルの形が十字のままになってしまう

    エクセルのシート上でセルを選択し、セルの枠にマウスカーソルを合わせると、カーソルが矢印に変化して、そのままドラッグすることによりセルの移動ができるはずだと思うのですが、カーソルの形が矢印にならずに(十字のまま)、ドラッグすることができません。 どのように設定すれば良いでしょうか。 よろしくお願いいたします。 環境:Windows XP Home Excel 2003

  • マウスカーソル+軌跡を遅らせて表示

    VisualBasic(6.0)で,Form上のマウスの軌跡(実線)を実際より時間的に遅れて表示させるプログラムを作成しています. 方法としては,Timer で数ステップ前の座標を記録し実線を表示+ マウスカーソルをロードしたImageをその位置に移動させる,という処理を行ってみたのですが, その方法ですと,カーソルが既に描かれた軌跡の上を通過すると,前の軌跡が消えてしまいます. そこでFormのAutoRedrawをTrueにすると,カーソルがちらついてしまいます. (TimerのIntervalは10msです.) このような現象を回避するための良い方法はありませんでしょうか? 宜しくお願いします.

  • ウインドウの移動禁止

    最大化したウインドウをタイトルバーでドラッグして移動させるのを禁止したいのですが、うまくいきません!どなたかご教授下さい。 現在 1.OnInitDialog()内  ・ウインドウを最大化   this->ShowWindow(SW_SHOWMAXIMIZED);  ・最大化,最小化ボタン消去、サイズ変更禁止   lStyle = GetWindowLong( this->m_hWnd, GWL_STYLE );   lStyle &= ~WS_MINIMIZEBOX;   lStyle &= ~WS_MAXIMIZEBOX;   lStyle &= ~WS_SIZEBOX;   SetWindowLong( this->m_hWnd, GWL_STYLE, lStyle ); 2.WindowProc()内  ・タイトルバーでのダブルクリックを無視   if( message == WM_NCLBUTTONDBLCLK ){     return TRUE;   } しかし、ウインドウをタイトルバーでドラッグして移動を禁止する事が出来ません。 何か方法は無いのでしょうか? 環境 WindowsXP Pro SP3 VC++6.0 SP6 以上、よろしくお願いします。

  • フォルダナビゲーションの虫眼鏡型カーソルの機能について

    OS9までの従来のMacOSのフォルダナビゲーションにはダブルクリックしたままマウスを押さえたままにしているとマウスカーソルが矢印の形から虫眼鏡の形に変わり、フォルダが1秒後くらいに自動で展開して、マウスを押さえたまま展開したフォルダの中のフォルダに虫眼鏡型カーソルを重ねると次から次に自動展開する機能がありました。 OSXのスプリングフォルダではフォルダの上にファイルをドラッグして重ねないとフォルダが自動で展開されません。 ファイルなしでもフォルダをダブルクリックしたままマウスを押さえたままにしているとフォルダが自動で展開されるツールは何かありませんか?

    • 締切済み
    • Mac
  • VC++でカーソルを固定する

    VC++のver6.0を使用している者です. 今回「カーソルがウィンドウの中心に固定されていて,左ボタンをクリックすると自由に動かすことができ,もう一度クリックするとカーソルは初期位置に戻り,再び固定されて動かすことが出来ない」というアプリを作成しようと思っています. コンセプトとして, ・ウィンドウズメッセージハンドラのWM_LBUTTONDOWNを用いる ・BOOL型の変数を用意し,左ボタンが押される度に真偽を入れ替える ・TRUEの状態ならば自由にカーソルを動かせる ・FALSEの状態だとウィンドウの中心に固定される(マウスを動かしてもカーソルは動かない) という感じにしたいと考えています. しかし,カーソルを固定,およびその解除の方法が分かりません.どのようにやればよいのでしょうか…よい方法がありましたら,ご教授ください. よろしくお願いします.

  • jQueryで、カラム幅を変更できるプラグイン

    jQueryで、次のDataTableを使用していました。 http://datatables.net/examples/ これはとても便利なプラグインだと思うんですが、カラム幅をマウスのドラッグで変更できないんです。 Excelのカラム幅を変更するような事ができるとありがたいんですが、どなたかそういうプラグインをご存じ無いでしょうか・・・。

  • Excel VBA トグルボタンのコントロール

    お世話になります。 現在、ユーザーフォームにて管理アプリもどきを作成しているのですが、 以下の様な動作を行うことが可能かどうか、 また可能であればどのような方法があるのかをご教授ください。 ////////////////////////////////////////////////////////// フォーム上に、トグルボタンを複数個配置します。 例として、下図をトグルボタンを5つ配置したものと仮定します。 Valueプロパティは全てFalseを初期値とします。  □□□□□ 左から2つ目のトグルボタン上でマウスクリックし、 そのままクリックを押し込んだままの状態にします。 この時点で、2つ目のボタンのValueプロパティをTrueに変更します。  □■□□□    ↑クリック(押し込んだまま) クリックを押し込んだまま、マウスを右に移動させます。 左から3つ目、4つ目のボタン上にカーソルがきた時点で 3つ目、4つ目のValueプロパティをTrueに変更します。  □■■■□       ↑クリック(押し込んだまま) 左から4つ目のトグルボタン上でクリックを離します。 クリックされていない状態でマウスカーソルが上に乗っても Valueの変更は行われません。 ////////////////////////////////////////////////////////// MouseMoveを試してみましたが、ドラッグ中は処理が発生しないようなので どうしたものか困ってしまいました。 ご助力、よろしくお願い致します。

  • カーソルが勝手動く。

    質問内容がASPのカテゴリーではないかもしれませんが よろしくお願いします。 下記項目を複数配置して、金額を入力する項目を 作成しております。 <input name="k1" onBlur="kChk()" size="12" value="<%= SESSION("Kingaku1") %>" style="text-align: right" Maxlength="9"> 各項目にカーソルをマウスでセットすると、カーソルが勝手に 入力項目に入力された値の先頭にカーソルが移動します。 各項目へ、カーソルをセットした時にカーソルを マウスでクリックした位置のままにしたいのですが このような現象になった方、いらっしゃらないでしょうか? またいらっしゃいましたら解決策を、教えて下さい。 -- onBlur="kChk()"では、項目へ入力した値をチェックをして、 入力値エラーだと、エラーのメッセージボックスを表示した後に、 入力項目にfocusセットする。 入力値が正常な場合は複数配置した入力項目から値を取得して 金額の合計を表示する。 処理をしております。 開発環境は、Win2000、IIS5.0、IE5.5です。 WEBの開発は初めてなのですので、よろしくお願い致します。

  • ポインタ(カーソル)が勝手に変化して、コピー・ペーストができなくなりました

    同種の質問は禁止とのことですので、質問内容を詳細にしてみます。 ○ネット初心者です。個人でノート型PC(Windows XP)を使用。  マウスは有線です。 ○パソコンではメールを開かないようにしていました。 ○これまでポインタの形を変えたことはありません。 先日、壁紙サイトを検索して以降、 インターネットに接続すると、“カーソルの形がこれまでと変化(下記詳細)”しており、 “文章のコピー・ペーストが正常にできなくなりました” ポインタの形状は、通常の矢印が表示されていながら、突然、上下(あるいは左右)に黒三角が表示され変化します。 高速スクロールできるようになりましたが、文章のコピー・ペーストが正常にできなくなりました(禁止マークが途中で出る)。 これに対し、 ○ポインタの変更で元に戻す設定でも× ○オンラインのウイルススキャン(異なる会社)を2回実行しても、何も検出されず ○“システムの復元”を試みましたが、「復元は未完了」との表示が出て復元できません。 ポインタの形状は、あいかわらず上記のとおりです。 ポインタを元(通常の矢印)に戻したいのです! 困っています。 これまでこういった経験がある方、 ご面倒でも回答をしていただければありがたいです。よろしくお願いします。

専門家に質問してみよう