ページ 11

DestoryWindowでのエラー

Posted: 2009年3月12日(木) 15:09
by ざこ
ダイアログを閉じたいときにAfxGetApp->m_pMainWnd->DestroyWindow()を使ってますが
Debug Assersion Failed!とたびたびでます。でないときもあります。どういうときにでているのでしょうか?
原因と解決策を教えてください

Re:DestoryWindowでのエラー

Posted: 2009年3月12日(木) 15:15
by Blue
なぜこの記述が必要なんでしょうか?
ダイアログクラスであれば、EndDialogとかOnCancelとか使ったほうが良いのでは?

>Debug Assersion Failed!
が出れば、「再試行」からどこでASSERTIONがおこっているか特定できます。
大概、ウィンドウがもう閉じているとかそういうことでしょうけど。

Re:DestoryWindowでのエラー

Posted: 2009年3月12日(木) 15:27
by ざこ
ダイアログがどうしても起動してしまのでMoveWindow(0,0,0,0)とかして閉じたいと思いました。EndDialogというのは始めてみましたが・・これをInitDialogのファイル移動直後に使ったら実質起動しない感じになり、前質問の問題
も解決しました。ありがとうございました。それにしても知らないメンバ関数が多すぎますね・・新VisualC++6.0入門(林晴比古)のビギナとシニアもってるんですが不十分な気もしますね。
何かメンバ関数が詳しくたくさんのってるサイトか参考書ないですか?ヘルプはメンバ関数の内容とかわかるんですけど逆がわからなくてプログラム組むときには苦労してます。

Re:DestoryWindowでのエラー

Posted: 2009年3月12日(木) 15:34
by Blue
>ダイアログがどうしても起動してしまので
なぜに?

http://www.play21.jp/board/formz.cgi?ac ... tree#30518
でも回答が付いているように
DoModalで表示しているのであればあたりまえです。

Re:DestoryWindowでのエラー

Posted: 2009年3月12日(木) 15:43
by バグ
MSDNを見れば全てのメンバが解説されてますよ。
VC++6.0ならば、F1キーでMSDNライブラリというウインドウが開くと思います。
そこでキーワードタブをクリックし、CDialogと打ち込めば、CDialogクラスに関するインデックスが表示されると思います。その中に「CDialog クラスメンバ」というのがあるので、それをクリックすればメンバが表示されます。

私も「新VisualC++6.0入門」を持ってますが、これとMSDN、それにネット検索を利用すれば特に困ったことはないんですけどねぇ。入社した当時はプログラムのことを全然知らなかったんですが、それでもなんとかなってましたし…

効率のよい調べ方、デバッグの仕方なんかはどうしても経験を積まないとなかなか身につかないのは良く理解できます。

MFCでオススメサイトを載せておきますね。

http://athomejp.com/goldfish/

Re:DestoryWindowでのエラー

Posted: 2009年3月13日(金) 09:19
by ざこ
>>ダイアログがどうしても起動してしまので
なぜに?

全質問スレッド参照です。当然ですね。


>私も「新VisualC++6.0入門」を持ってますが、これとMSDN、それにネット検索を利用すれば特に困ったことはないんですけどねぇ。入社した当時はプログラムのことを全然知らなかったんですが、それでもなんとかなってましたし…

私も同じ方法です。どのクラスを使うかわからないと話にならないんですかね。クラスがわかればヘルプで調べています。