0

Windowsプログラムの作成にMFCを使用しています。プロジェクトの作成時にこれらの設定を使用しました。
File -> New Project -> MFC applicatioin
と選択した MFC アプリケーション ウィザード:
アプリケーション タイプ: ダイアログ ベース
リソース言語: 英語 (米国)
Unicode ライブラリを使用
プロジェクト スタイル: MFC 標準
MFC の使用: 静的ライブラリで MFC を使用
メイン フレーム スタイル: シック フレーム、システム メニュー、および [バージョン情報] ボックスにチェックマークが付いてい
ます 高度な機能: ActiveX コントロール、コモン コントロール マニフェスト、および再起動マネージャーのサポートにチェックマークが付いています
ダイアログ タイトル: P2
生成されたクラス: Cp2App および Cp2Dlg
まだプロジェクトにコードを追加していません. そして、フォームにコントロールを追加しました:

ここに画像の説明を入力
しかし、プロジェクトを実行しようとすると、次の
エラーが表示され
ます。エラー
を回避するために新しいプロジェクトを開始できることはわかっています。しかし、この問題の原因を知り、解決したいですか?

注: 最初のエラーは P2Dlg.obj で発生し、2 番目のエラーは P2.exe ファイルで発生します。

編集部分: 実はこのエラーは、不用意に Button2 をダブルクリックし、イベントハンドラ BnClickedButton2 を作成して削除したためだと思います。このイベント ハンドラをもう一度作成しようとしましたが、できません。button2 を右クリックして、イベント ハンドラ ウィザードで [イベント ハンドラの追加] を選択すると、オプションBN_CLICKEDが非アクティブになるためです。
この種の問題を一般的に解決する方法を知りたいのですが、助けてください。

セクション 2 を編集: この関数を P2.cpp ファイルに追加しましたAdd EventHandlerが、問題は解決しませんでした:

void CP2App::OnBnClickedButton2()
{
    // TODO: Add your control notification handler code here
}  

機能を追加するCP2Dlg::OnBnClickedButton2必要がありますが、追加できません。非アクティブです???????

4

1 に答える 1

0

ダイアログのメッセージ マップに、削除した関数を呼び出そうとする行があります。今後、メッセージ ハンドラー関数を削除する場合は、メッセージ マップ内の対応するエントリも削除します。

メッセージ ハンドラーは、ダイアログ クラスにある必要があります。(そこにメッセージが送信されます。) メッセージ マップと関数を一掃し、すべてを再構築します。その後、イベントの追加ウィザードを再び機能させることができます。

于 2013-07-18T21:46:41.917 に答える