はじめまして,質問よろしくお願いいたします.
DirectInputのお勉強をしていまして,例外が投げられたらメッセージボックスを表示するような
デバッグをしていました.
キーボードの方は特に問題なくできていたのですが,マウスのテストを描いた後にデバッグを
いたしますと,初期化の例外が発生しました.そこで発覚したのですが,
肝心のデバッグ用のメッセージボックスが,メッセージボックスが作成はされるもののALTを押すなどして
メッセージボックスを操作しないと,そのメッセージボックス(ウィンドウだかダイアログボックス)が
非表示のままになっているようでした.
コメントアウトで表示されるようになるまでコードを削ってみますと,
ヘッダdinput_test.hをインクルードすると再現するということが判明しました.
http://codepad.org/VM5gnv3C
さらに絞り込むとヘッダ内のwindow procedure(dinputProc / dinputProcAny)にあることが
判明し,wm_paintメッセージをユーザ定義で処理すると発生することが分かりましたが,
wm_paintをカスタマイズしつつmessageboxを表示させるようにする(共存させる)方法が
分かりません.
デバッグにメッセージボックスを使わない方法しかありませんか?
MessageBoxが表示されない
Re: MessageBoxが表示されない
コンパイル環境が示されていないので使えるかは分かりませんが。
Visual Studioを使ってるなら以下が有効でしょう
http://www.nitoyon.com/vc/tutorial/debug/win32.htm
そもそも個人的にはMessageBox関数を使ってデバッグするのはおすすめしません。
いちいちストップするし、あなたの言われた現象ようにZオーダー問題(非表示になってるのではありません)で隠れてしまうことが多々あるからです。
Visual Studioを使ってるなら以下が有効でしょう
http://www.nitoyon.com/vc/tutorial/debug/win32.htm
そもそも個人的にはMessageBox関数を使ってデバッグするのはおすすめしません。
いちいちストップするし、あなたの言われた現象ようにZオーダー問題(非表示になってるのではありません)で隠れてしまうことが多々あるからです。
written by へにっくす
-
- 記事: 3
- 登録日時: 8年前
Re: MessageBoxが表示されない
DebugOutputStringというのがあるんですね.
ですが今回の場合は例外が発生しているということから,やはりメッセージボックスを表示し,
okボタンを押したらプログラムが終了することの方が好ましい気がします.
(なので処理が止まっても問題ないです)
Zオーダー問題ということから,背面に存在しているようなのでその辺の文献をあさってみたいと思います.
ですが今回の場合は例外が発生しているということから,やはりメッセージボックスを表示し,
okボタンを押したらプログラムが終了することの方が好ましい気がします.
(なので処理が止まっても問題ないです)
Zオーダー問題ということから,背面に存在しているようなのでその辺の文献をあさってみたいと思います.