• 締切済み

スレッドでのモードレスダイアログ表示について

こんにちは。 スレッドでモードレスダイアログを開いて、そのダイアログにマウスを移動 させるとずっと砂時計のままで操作できずに困ってます。でもメインダイアログは操作できます。 別にスレッドの外から開けばうまくいくのですが、どんな原因でそういうことになるのか知りたくて質問しました。誰か知っている人がいたら教えていただけないでしょうか?よろしくお願いします。

みんなの回答

noname#30727
noname#30727
回答No.1

どのようなプログラム環境なのかわかりませんが、 Win32APIのGetMessageは、自身のスレッドのメッセージしか取得できませんから、スレッドごとに、GetMessageとDispatchMessageなどのループが必要になります。

関連するQ&A

  • WPFでのモーダル/モードレスダイアログの同時操作

    WPFでメインウインドウからモードレスダイアログとモーダルダイアログを表示し、 それぞれのダイアログに対して操作をしたいと思っています。 1.メインウインドウのボタンをクリックしてモードレスダイアログを表示 2.メインウインドウのボタンをクリックしてモーダルダイアログを表示 上記2の処理を行うと、上記1で表示したモードレスダイアログが一切操作を受け付けなく なるのですが、対応方法はありますでしょうか? 仕様上、片方のダイアログは必ずモーダル表示にします。 ソースコードは以下のような感じです。 private Window2 window2; private void button1_Click(object sender, RoutedEventArgs e) { window2 = new Window2(); window2.Show(); } private void button2_Click(object sender, RoutedEventArgs e) { Window window3 = new Window3(); window3.ShowDialog(); } よろしくお願いいたします。

  • 別スレッドからメインダイアログのコントロールにアクセスする方法

    VC++2005 MFC WindowsXPを使用しています。 メインダイアログに作成したエディットボックスに フォーカスをセットしたいのですが、 別スレッドから行うにはどのようにすればよいのでしょうか? メインダイアログにあるボタンを押すと別スレッドの処理に入り、 その中でメインダイアログのコントロールを操作しようとしています。 //フォーカスをセット CWnd* MyEdit = ( CWnd* )this->GetDlgItem( IDC_EDIT1 ); MyEdit->SetFocus(); 宜しくお願い致します。

  • メインダイアログが最背面に表示されてしまいます。

    お世話になります、fujitomoです。 C++のダイアログベースのプログラムを作成しているのですが、ご質問 させていただきたい件がありまして、こちらへ書かせて頂きました。 質問させて頂きたい内容は、メインダイアログにて、他ダイアログをAfxBeginThread()を用いて別スレッドでモーダル表示させた時、その他ダイアログを他ダイアログ内でEndDialog(IDOK)で閉じた際に、メインダイアログが最背面になってしまうのですが、この原因として考えられることはありませんでしょうか? ちなみに、他ダイアログを別スレッドではなく、メインダイアログ内にてモーダル表示をし、EndDialog(IDOK)で閉じた際には、メインダイアログが最背面になることはありませんでした。 参考となるご意見がありましたら、よろしくお願い致します。 開発環境は Visual Studio 2005です。

  • ウィルスセキュリティの通知ダイアログ

    ウィルスセキュリティZEROの通知ダイアログが表示されたまま マウスをダイアログの上に移動すると砂時計になっていて閉じることができません。 環境:WindowsXP Home

  • メインスレッドのPostMessageとマルチスレッドでの処理

    お世話になります、fujicafeと申します。 現在Visual Studio 2005にてVC++のプログラムの作成をしており、 お聞きしたいことがありまして、こちらにて投稿させていただきました。 質問したい内容はPostMessageによる非同期呼び出しによるメインスレッド関数の処理と、別スレッドからのメインスレッド関数呼び出しによる処理の違いについてです。 現在、メインスレッドにマルチメディアタイマーを使って、ある時間間隔毎にメインスレッドの関数を呼び出しています。その関数の呼び出しにはPostMessageを使用しています。 その関数の呼び出しをAfxBeginThreadを使用して、メインスレッドから別スレッドを作成し、その別スレッド内にてメインスレッドのオブジェクトを作成して、実行したいメインスレッドの関数を呼び出すと、もともとのPostMessageを使用して関数を呼び出すのとでは処理としてどのような違いがあるのでしょうか? スレッドを別にするということで、メインスレッド側に負荷をかけないといったことが違うのでしょうか? だいぶ検討はずれの質問かとは思いますが、ご教授よろしくお願いいたします。

  • USBマウスが操作できなくなることがあります

    よろしくお願いします。 Win98SEで、USBマウスを使っていますが、最近、マウスが操作できなくなる ことが多くなりました。(砂時計ではなく、ポインタは変わりません) 操作は、移動、クリックともに使えません。 ただ、10秒前後待つと少し動かすことができる時がありますが、少し動いただけで、 再び操作できなくなり、10秒ほど待つことを繰り返します。 待っている間もポインタは砂時計に変わらず、同じ形のままです。 マウス不動時でもキーボード操作はできます。 再起動をかけるとだいたい元に戻り、マウスを使える様になりますが、 しばらくすると、またマウスが動かなくなります。 しばらくの時間的な規則性は無いと思います。 2時間ぐらい機嫌良くしてくれている時もあります。 また、特定のソフト使用時に限る現象ではありません。 以前は、この様な状態にはなりませんでした。

  • イベントとスレッド

    Java初心者です。 イベントとスレッドに関する質問です。 Swingを使ったアプリケーションを作成しているのですが、 以下のような現象が起きています。 1. ボタンが配置されているダイアログ(A)で、そのボタンを押下する。 2. ボタンを押下したときに実行されるメソッドで、スレッドを作成する。 3. その作成されたスレッドで、JOptionPane#showOptionDialogを実行して、ダイアログ(B)を表示する。 4.(B)が表示されている状態で、別のウィンドウで隠し、再度表示させると、(B)に配置されているボタンが押せなくなる。 4.で(B)のボタンを押せるようにしたいのですが、 うまくいきません。 スレッドとかイベントが関係していると思うのですが、 何しろ初心者なもので、よく理解していません。 実際のプログラムをお見せすることが出来ないので分かりずらいかもしれませんが、何かお気づきのことがあれば 教えて頂けないでしょうか? よろしくお願い致します。

    • ベストアンサー
    • Java
  • ネット中にマウスポインタが点滅

    ネット中に時々あることなのですが 何も操作していないのにマウスポインタが 砂時計になったり矢印に戻ったり チカチカと点滅します。 何か別のソフトを起動しているわけではなく、 ネットに繋いでいるだけなのですが・・・。 この点滅状態ではとても操作がしにくく、困っています。 原因や対処法があれば教えていただきたいです。

  • マウスポインタが頻繁に砂時計に

    最近新しくパソコンを買いました。 中に入っているOSはWinXPHomeですが、買ってそうそうおかしい部分があります。 マウスポインタが頻繁に砂時計になってしまうのです。 だからといって、長時間砂時計になっているのでなく、 一瞬、砂時計に変わったと思ったら1秒のみで、また普通のマウスポインタに 変わってしまいます。なので、別に使っていて処理が思いたい事はないのですが、 すごく気になります。 このような現象というのは、何が原因で起きているのでしょうか?

  • マウスを動かすと砂時計が出ます。

    ご質問致します。 ●インターネットに接続。HPを閲覧中にマウスを移動すると砂時計が1秒か2秒か出現します。(ただマウスを動かしているだけ) ●HPによって砂時計が出る時と出ない時があります。例えばGoogleの http://www.google.co.jp/webhp?hl=ja&lr=lang_ja ←このページだと上部のサッカーボールの所にカーソルすると指のマーク。そこから下にマウスを動かすと「おすすめ」「いろいろな検索」「便利なツール」「もっと楽しく」の辺で1秒ほど砂時計が出ます。そして「おすすめ」から右に「もっと楽しく」までマウスを移動すると砂時計が「もっと楽しく」まで出現しています。このページの場合、他の場所(マウスを移動しても)では砂時計は出ません。 http://www.justsystems.com/jp/products/hpbart/feature2.html このページの上部メニュー「製品・サービス」「導入事例」「購入」「サポートセンター」を左から右にマウスを移動すると同じ現象になります。何か非常に気になりこの砂時計を出さない方法ありませんでしょうか。 この質問前にリカバリもし スパイウェアの検索もしての状態です。 DELL inspiron 6400 ウィンドウズXP 1GB です。 非常にわかりにくい質問の仕方と思いますが、どなたかご教授して頂ける方おられませんでしょうか。ご回答よろしくお願いいたします。