ダイアログでのドロップ処理の仕方について – 固定ページ 2 – プログラミング – Home

ダイアログでのドロップ処理の仕方につい...
 
通知
すべてクリア

[解決済] ダイアログでのドロップ処理の仕方について

固定ページ 2 / 3

薫
 薫
(@薫)
ゲスト
結合: 21年前
投稿: 19
Topic starter  

MSDNを見ていますが 解りません。それから下記の行を生かすとエラーが出ます。
メンバー変数 m_edit は int型でいいのでしょうか?

if ( pMsg->hwnd == m_edit.GetSafeHwnd() )


返信引用
ひろぴー
 ひろぴー
(@ひろぴー)
ゲスト
結合: 22年前
投稿: 182
 

> MSDNを見ていますが 解りません。
何がわからないか明確にしないと、誰も答えられないと思います。

m_editはWM_DROPFILESメッセージが送られたコントロールを判別する為に使用しています。
GetSafeHwnd()を調べればint型ではない事がわかると思います。


返信引用
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

薫さん、ウィンドウメッセージ(WM_***)は、WPARAM、LPARAMという
2つのパラメータを携えているというのをご存知でしょうか?
これらは、メッセージによって内容は様々で、
何メッセージにはどんな情報がセットされているかはMSDNをみれば解説されてます。

そして、WM_DROPFILESというメッセージのパラメータには、
どんな情報がセットされているでしょうか??


返信引用
薫
 薫
(@薫)
ゲスト
結合: 21年前
投稿: 19
Topic starter  

m_editは解りました。WM_DROPFILESにはwParamだと解りましたが?この後どうコーディングす
るかが解らないのです。よろしくお願いします。


返信引用
ひろぴー
 ひろぴー
(@ひろぴー)
ゲスト
結合: 22年前
投稿: 182
 

> WM_DROPFILESにはwParamだと解りましたが
正確にはWM_DROPFILES時にDragQueryFile関数を使用するにはhDropにはwParamです。
省略して書かれていると思うのですが、これでこの後どうコーディングすればよいか解ったでし
ょうか?

これで解らないと、答えをズバリ書くしかないんですが....。

因みに、みなさん意地悪で教えないのではなくて、薫さんに調べて理解して貰いたいのです。
今、動作すれば良いという考えでは、いつまでもスキルアップしないですから。


返信引用
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

薫さん、WPARAMをキャストすればいいんですよ、キャスト。


返信引用
薫
 薫
(@薫)
ゲスト
結合: 21年前
投稿: 19
Topic starter  

すみません!答えをずばりお願いします。


返信引用
ひろぴー
 ひろぴー
(@ひろぴー)
ゲスト
結合: 22年前
投稿: 182
 

> すみません!答えをずばりお願いします。
sugarさんの書き込みがズバリな答えなのですが...(ToT)

出来れば、いまの段階でのソースの提示をお願いします。
ドコでキャストすればよいかとか、言えますので。


返信引用
薫
 薫
(@薫)
ゲスト
結合: 21年前
投稿: 19
Topic starter  

薫 2004/01/28(水) 15:43:05 の ページで書かせて頂いたとおりですが宜しく願いします。


返信引用
ひろぴー
 ひろぴー
(@ひろぴー)
ゲスト
結合: 22年前
投稿: 182
 

エディットの判定は?2004/01/29(木) 12:02:06で、エラーが出ていて、そのあとわかったと
の事ですが。

DragQueryFile関数の第1引数が初期化されていない。
WM_DROPFILESにはwParamだと解った。
wParamはキャストして使う。

これで2004/01/28(水) 15:43:05から1ステップも進めないという事は解っていないという事
だと思います。

何が解ってなくて1ステップもコーディング出来ないのでしょうか?


返信引用
島
 島
(@島)
ゲスト
結合: 23年前
投稿: 238
 

以前にした質問に答えて戴けていませんが、出来ればお答え戴けないでしょうか
(勿論、答えたくないならそれでいいのですが、答えたく無いとだけでもお知らせ下さい)
----どの程度デバッガーの使い方がお判りなのかが知りたいだけなのです----
>>更に、実行するとだけでなく、何をしたらそのエラーがおきたのか判るように示して下さい
>>
>>ところで、デバッグバージョンで実行してみたのですか、リリースバージョンで実行して
>>みたのですか?
>>エラーが出たことはどこに何が出たのでわかったのですか?


返信引用
薫
 薫
(@薫)
ゲスト
結合: 21年前
投稿: 19
Topic starter  

すみません。デバッガーの使い方は殆ど解りません。いちおう、デバッグモードでコンパイルし
ています。ファイルをドラッグドロップするとエラーになります。
>>エラーが出たことはどこに何が出たのでわかったのですか?は
バンドルされていない例外はDrag_Drop.exe(SHELL32.DLL)・・」が出ます。


返信引用
島
 島
(@島)
ゲスト
結合: 23年前
投稿: 238
 

どこに出たかについては答えられていないようですが、おそらく(VC++6.0 だとして)
メッセージウィンドー(で合ってたかな?)のデバッグタブが示す領域に出たのでしょう

で、エラーで中断したのでデバッグを終了(中止)したのですか?
ブレークポイントはわかりますか?
ステップ実行はわかりますか?
ステップインは判りますか?
ステップアウトはわかりますか?
コールスタックはわかりますか?


返信引用
薫
 薫
(@薫)
ゲスト
結合: 21年前
投稿: 19
Topic starter  

最初のコーディングのままでコンパイルは出来ます。
エラーはドロップした後にダイアログボックスが出て
混合モードとかの画面が出て最初の行が下記のよう
7FC16DE8 cmp word ptr [eax],8

>>コールスタックはわかりますか?
はいまいち解りません。


返信引用
島
 島
(@島)
ゲスト
結合: 23年前
投稿: 238
 

意地悪く尋ねますが、いまいち判らないという事は幾らか判る、もしくはかなり判ると
解釈していいのかな?
こういう言葉(文字を用いた)だけが頼りの場では相手にきちんとはっきり伝わる様に
心がける事が大切だと思います(自戒を込めて言っています)し、あなたがはやる気持ちも
わかりますが、相手からの問い(質問)にも答えるようにしましょう。それは、あなたの
困っている問題について判ろうとしているからこそ尋ねているので、あなたを困らせたい
からではないからだし、問題解決への糸口が見つかる確率が上がる(両者の認識のずれが
少なくなるから)と思うからです

さて、ブレークポイントについてはお分かりのようなので
switch ( pMsg->message )

Count = DragQueryFile( hDrop, 0xFFFFFFFF, NULL, 0 );
かの行にブレークポイントを置いて実行してください
ブレークでとまったらシングルステップで一行づつ実行してみましょう
おそらく
Count = DragQueryFile( hDrop, 0xFFFFFFFF, NULL, 0 );
の行を実行したところでエラーが出るでしょう。ですからこの行の実行をする前に
hDrop の値を確認してみてください(マウスカーソルをこの変数のある位置におく
だけでもいい)。これで何がわかったか教えてください


返信引用
固定ページ 2 / 3

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました