• 締切済み

コントロールのイベントについて

はじめまして。 質問させて下さい。 VC++ 2005 MFC で開発しております。 ソースレベルでコントロールの押下を実装できるでしょうか? なかなか説明が難しいのですが、 OnBnClick...()のような イベントハンドラを呼び出すのではなく、 実際にボタンが押下された時と同等のトリガー的な動作を 擬似的にさせたいと考えております。 どなたかお詳しい方がおりましたら、 ご教授のほど宜しくお願いいたします。

みんなの回答

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★BM_SETSTATEかな? ・『BM_CLICK』は WM_LBUTTONDOWN、WM_LBUTTONUP メッセージを送信します。  『BM_SETSTATE』は見た目だけボタンの『押した状態』『離された状態』を表示します。  下の『参考URL』をどうぞ。 ・以上。

参考URL:
http://wisdom.sakura.ne.jp/system/winapi/win32/win53.html
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

メッセージ処理を確認したいということでしょうか? ボタンのクリックイベントなら BN_CLICKEDメッセージですので WindowsのWM_COMMANDを介して送信されます SendMessage(hWnd, MAKELONG(コマンドボタンのID,BN_CLICKED),(LPARAM)コマンドボタンのハンドル); といった具合でしょう … 的外れならご容赦ください

関連するQ&A

  • 【VC++6.0】イベントハンドラ関数を流用したいのですが、、、

    VC++超初心者です。 既出の質問(http://okwave.jp/qa2658942.html)と同様ですが、VC2005(CLR)でなく、VC++6.0の時 どのようにコーディングすればよいか教えていただけませんでしょうか。 よろしくお願いします。 ********************************** 以下の2つのボタンのイベントハンドラ関数があった場合 //ボタン1のイベントハンドラ関数 void CAAAADlg::OnOK() { 処理内容 } //ボタン2のイベントハンドラ関数 void CBBBBDlg::OnOK() { } ボタン2をクリックしたときの動作とボタン1の動作を同じにしたいと思っています。 **********************************

  • ダイアログ上コントロールの動作について

    MFCでダイアログにて動作するアプリケーションを作成しています。 表示されたダイアログの枠をドラッグすると、ダイアログの大きさが変わりますが、 中にあるコントロールの大きさ・位置は変わりません。 ダイアログの大きさ変更に伴い、コントロールの大きさも変更するには、 どのような実装の仕方をすれば良いのでしょうか? 解決法をご存知の方おられましたら、ご教授お願い致します。 開発環境はVC++2005です。

  • 別コントロールのサーバ側イベントに来てしまう

    ASP.NET4.0で、WEBシステムを開発しています。 デスクトップアプリの経験はありますが、WEBの経験はあまりないです。 TextBoxのTextChangedイベントハンドラを作成し、AutoPostBack=trueにして、 サーバ側で処理するようにしているのですが、その際、なぜかその近くに配置している ボタンのClickイベントハンドラにも来てしまっています。 VisualStudio2010でデバックして発覚しました。 それぞれ、別々のUpdatePanelで囲っています(UpdateMode=Conditional)。 PostBack時、押してもいないボタンのClickイベントに来てしまうようなことがあるのでしょうか。 (Enterキー押下で何か発生している?) UpdatePanelを使ってページを作成する際、注意点などはありますでしょうか。 よろしくお願いします。

  • コントロールのイベントの透過

    VB.net/C# .NET Framework 2.0で開発しております。 いま、Panel等コンテナコントロールの上に子コントロールが乗っているとして、この時子コントロールの指定したイベントが発生した際に、親コンテナの同じイベントを発生させたいと思っていますが、なかなかスマートなやり方が見つからずに悩んでおります。 子配置の際にAddHandler等でごりごりイベントハンドラを指定しまくれば、出来ることはできるのですが…それ以外のやり方としてどんなものがあるのか、知りたくなって質問させていただきました。 GUIの開発においてこういった要望はそれなりにあると思うのですが、皆様はどのようにして解決してらっしゃるのでしょうか? ご教示下さい。

  • .NETでのイベントハンドラを自由に操作したい

    .NETでコントロールのイベントハンドラを 自由に取得・設定したいのですが そのようなことはできないのでしょうか? 例えばフォーム上に通常のボタンを貼り付けたのちに 自作のボタンをソースコード内で作成し、通常のボタンにセットされているイベントハンドラを自作ボタンのイベントハンドラに追加する、というようなことが したいのですが。。。 どういうふうにやっても、 「イベント 'System.Windows.Forms.Control.Click' は += または -= の左側にのみ表示されます。」 で、できません。 何か分かる方いらっしゃいましたらお願いいたします。

  • ボタン(コントロール)を丸くしたい

    VC++.NET2005にて、コントロールのカスタマイズをしています。 そこで、四角いボタンを丸く実装したいのですが、どなたかご存知の方いらっしゃいましたら、ご教授の程宜しくお願い致します。 また、最終的にはスライダーバー、スクロールバーのつまみ部分を丸くしたいです。

  • イベントハンドラ関数について

    現在VC++/CLR 2005 でプログラミングをしています。 基本的な事柄かもしれませんが、質問させてください  以下の2つのボタンのイベントハンドラ関数があった場合 //ボタン1のイベントハンドラ関数 private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) String^ str = textBox1->Text } //ボタン2のイベントハンドラ関数 private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { } ボタン2をクリックしたときの動作とボタン1の動作を同じにしたいと思っています。 その場合は private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) String^ str = textBox1->Text } //ボタン2のイベントハンドラ関数 private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { String^ str = textBox1->Text } のようにボタン2のイベントハンドラ関数をボタン1と同じように書けばいいのですが イベントハンドラ関数の処理が膨大になった場合を考えて省略する 書き方は無いのでしょうか?(以下の場合ですとエラーが起こってしまいます。) private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { button1_Click(); } 宜しくお願いします

  • IEの最大化ボタン押下時のイベント

    お世話になっております。 現在ページ内にdivタグを使用し擬似フレームを作成しているのですが、IEの最大化ボタンを押下した場合それに合わせてdivのサイズを広げたいと思っています。IEの最大化ボタンを押下した際のイベントを取得する方法がありましたらご教授願います。

  • イベントハンドラが取得できない VC++ MFC

    おはようございます(><) VC++.NETで開発を行っています。 MFCを使って開発をしています。 CDialogを継承したCmyDialogでOnLButtonDownのイベントがとれません。 OnLButtonDownのイベントを使いたかったのですが 自動でイベントを設定するプロパティのメニュー(雷のマークみたいなもの)にイベントがなかったので 自分でCmyDialog::と書いたらリストの中に OnLButtonDown( UINT nFlags,CPoint point)がでたので 定義に追加、イベントの記述を追加しました。 雷マークで作ったイベントのコードには // TODO : ここにコントロール通知ハンドラ コードを追加します。 と自動で記述され、ブレイクポイントを設定するとそこで止まるのですが 私が記述したLButtonDownのイベントでは実行してもブレイクポイントで止まりません。 他のイベントと比べて違うのは BEGIN_MESSAGE_MAP(CmyDialog, CDialog)の中に ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST1, OnLvnColumnclickList1) のように イベントハンドラ名、リソース名?、イベント名 と自動で記述があります。 ここを追加すればいいのかなと思いましたが 左クリックに対応するイベントハンドラ名が分かりません。 問題解決に有効な情報をお持ちの方 お力をお貸しください。 よろしくお願いします(><)

  • コントロールのフォーカスが横取りされた場合の対応

    VC++(6.0)/MFCにてアプリを開発しています。 メイン画面上にリストボックス・リストビュー・ボタンの各コントロールを配置し、 ユーザがいつでも操作できるようになっています。 そこで、ユーザがリストボックス等をマウスにてスクロール中に、バックグラウンド 処理でモーダルダイアログを表示すると、マウスダウン中に突然フォーカスが失われ るため操作中のコントロールに対しマウスアップメッセージが送信されずモーダルダ イアログ側へフォーカスが強制的に移動してしまいます。 操作中のコントロールは、マウスアップイベントが送信されていないため、奇妙な動 きをするようになります。 この場合、画面上の全てのコントロールに適応可能な「フォーカスが失われたよ」的 な処理を実装したいのですが、どのようにすればよいのでしょうか。 現在は、コントロール単位でオーバーライドしてLostFocus等で処理しています。 よろしくお願いします。

専門家に質問してみよう