• 締切済み
  • 暇なときにでも

2秒間のメッセージウィンドウ

よろしくおねがいします。 SDKで、メッセージボックスを2秒間ほど表示の後、自動的に消去し、 次の処理に移りたいのですが、MessageBox とかで実現しようとすると、 自分で、OKボタンやら、キャンセルやらを押さなくてはなりません。 どのようにすると可能でしょうか。

共感・応援の気持ちを伝えよう!

みんなの回答

  • 回答No.3
  • ag1
  • ベストアンサー率66% (2/3)

アスキー出版局から 「ワンポイント・レッスン 最新Winodowsプログラミングテクニック」 という本が出ています。 MSJの記事をまとめたもので、9000円もする電話帳よりも分厚い本ですが、 その中に 「メッセージボックスに応答が無い場合、自動的に閉じてスレッドの実行を継続させるには」 というそのもののQ&Aがあります。 要約するとタイマーコールバック関数を用意しておいて(SetTimer) それからメッセージボックスを出します(MessageBox)。 コールバックの処理(タイムアウト時に実行される)はメッセージボックスに対して EndDialogするだけです。 ここでどうやってメッセージボックスのHWNDを取得するのかと言うと この本ではGetActiveWindowを使ってます。 これが気持ち悪いようでしたら(私はあまり気持ちよくないです)、 EnumWindowsで列挙してタイトル文字列で探すとかしてください。 タイムアウトするメッセージボックスについてのアイデアはあちこちで見られる ようですが、大きく分けると 1.別スレッドでメッセージボックスを出す 2.メッセージボックスのリソースとメッセージハンドラを自前で用意する の2つのように思われます。私の知識不足かも知れませんが。 そんな中で若干気持ち悪いですが(私だけ?)これが一番シンプルです。

共感・感謝の気持ちを伝えよう!

  • 回答No.2
  • ARC
  • ベストアンサー率46% (643/1383)

メッセージボックスをサブクラス化して、ショートカットキーを送信するとか… このあたりについての知識はあまり持ち合わせていないので、詳しいことは書けませんが…

共感・感謝の気持ちを伝えよう!

質問者からの補足

少なからず私にとっては貴重な情報です。 ありがとうございました。

  • 回答No.1
noname#25358
noname#25358

 メッセージボックスと同じフォームを自分で組み、そこにタイマーオブジェクトを仕込むのが一番だと思います。

共感・感謝の気持ちを伝えよう!

質問者からの補足

さっそくの回答ありがとうございます。 つまり、リソースエディターでダイアログをつくる、という解釈でよろしい のでしょうか? やはり、それしかないのですね・・・ VCの『 あの 』余計なコードを発生させたくないので、あえてSDKで 取り組んでいる次第ですが、もっと手軽な方法をご存知の方がいましたら、 ぜひともお教え願いたいです。

関連するQ&A

  • Accessでエラーメッセージの表示を消したい

    いつもお世話になります。 また知恵をお貸し願えませんか。  テーブルのデータをキーを指定して呼び出し修正して更新するフォームを作成しました。 修正をしたあとの処理のため「更新」ボタンと「キャンセル」ボタンを設定しました。  修正を入力したあとに「キャンセル」ボタンをクリックした場合は正常に処理されるのですが、 何も修正入力せずに「キャンセル」ボタンをクリックすると(内容を確認したいだけ、違うレコードを 呼び出した等)   コマンドまたはアクション’元に戻す’は無効です というエラーメッセージが表示されます。 OKをクリックすれば処理は進められるのですが、できればエラーメッセージは表示させたくないと 思います。  「キャンセル」ボタンのプロパティでクリック時の[埋め込みマクロ]で下記のように指定しています。    条件        アクション        引数 エラー時        次、            コマンドの実行    元に戻す [MacroError]<>0 メッセージボックス  =[MacroError],[Description],はい,なし            閉じる         ,,確認 元に戻すがエラーになっているので 閉じる 以外を消去してところ エラーメッセージは表示されませんでしたが、修正を行ったあとに「キャンセル」ボタンを クリックしてもレコードの内容が変更されていたため元に戻しました。 どのように指定すればよいでしょうか

  • メッセージボックスについて教えてください

    urizakaです。 さて、javascriptのメッセージボックスというと警告のメッセージボックスを 表示するalertと「OK」と「キャンセル」のボタンが表示される「confirm」がありますが、これ以外で3つ以上のボタンを表示するJavascriptってありませんでしょうか?  確かVisualBasicにはあったと思うのですが…  すみませんが、教えてください

  • メッセージボックスを大きくする方法

    こんにちは。 MessageBox.Showで表示するメッセージボックスを 全体的に大きくしたいのですが、できるのでしょうか? アイコン、メッセージ、ボタンを大きくしたいです。 よろしくおねがいいたします。

  • C# メッセージボックスのOKボタンを自動クリック

    C#のwebBrowserでメッセージボックス(OKとかキャンセルとかのボタンがついたフォーム)のOKボタンを自動で押したいです。 メッセージボックスはhtmlのjavascriptで発生しており、何をどうすれば良いか分かりません。 拙い説明で伝わったのかどうか不安ですが、ご教授下さい。

  • メッセージウィンドウ(?)の戻し方

    こんにちは。 初心者に近いので、何て呼ぶものかわからないのですが、 例えば、サイト移動しようとすると 「~~~~~しますか? OK キャンセル」と書いてあって、 下に「以後このメッセージを表示しない」というチェックする部分がある 小さいウィンドウが開きますよね。 あのボックスに間違ってチェックしたので、 それをまた出るようにしたいのですが、どうやったらよいでしょうか? わかりにくくてすみません。よろしくお願いします。

  • ExcelVBA2000でOKとCancelのメッセージボックス

    こんにちは メッセージボックスで表示されるボタンをOKとCancelにしたいのですが、vbOKCancel指定ではOKとキャンセル(カタカナ)になります。OKとCancelにする方法をお教えください。 無理でしたら、ユーザーフォームを使って独自に作りたいのですが、この場合は閉じるボタン(X)が表示されてしまいます。これを消す方法をお教えください。

  • VB.NETで数秒間msgboxのようなものを出すには

    VB.NETなのですが、処理が完了した後で 2秒くらいボタンのないメッセージボックスを表示させたいのですが、 どのような方法があるでしょうか? 出来れば一番簡単な方法を教えて頂けると助かります。 よろしくおねがいします。

  • Perlでメッセージボックス

    現在、Perl+HTMLでWebページを作成しているのですが、submitボタンを押したらメッセージBOXがでて次のページへいけるようにさせたいと思っております。 メッセージBOXは出せるようになりましたが、「OK」「キャンセル」ボタンの「キャンセル」を押しても次のページに移動してしまいます。 submitボタンの文は以下のように書いております。 print qq(<input onClick="confirm('検索を行います。よろしいですか?')" type="submit" value="検索開始">\n); if(confirm("文字列")) { 処理 } を使えば、制御が可能であるとネットにかいてあったのですが、うまくできません。 なにか良い方法があれば回答をお願い致します。 ちなみに、業務の都合上、Javaスクリプトは使用禁止となっております。

    • ベストアンサー
    • Perl
  • メッセージボックスのボタンのフォーカスを設定したい

    ご質問させて頂きます。 Javascriptにてメッセージボックス表示時に、OKボタンとキャンセルボタンを設定した場合に、デフォルトでキャンセルボタンにフォーカスを当てたいと思っています。 設定方法をご存知の方がみえましたらご教授下さい。

  • メッセージボックスの表示

    エクセル2000のVBAでメッセージボックスを表示させたいのですが、OKボタンを押して閉じるのではなく、VBAの記述でメッセージをオープン、クローズがしたいのですが、方法がわかりません。 何がしたいかというと、 FOR~NEXTなどの処理で今何件処理しているかをリアルタイムで表示させたいのです。 どなたか知っている方がいれば教えてください。