1

私はCViewを持っていて、それにうまくペイントしています。その後、テキスト ボックスやコンボ ボックスなどのコントロールを CView に追加する必要があることに気付きました。したがって、CView をデフォルトのコンストラクターを持たない CFormView に変換しようとしています。しかし、この行にはデフォルトのコンストラクターが必要なIMPLEMENT_DYNCREATE(CMyView, CFormView)ので、このようなデフォルトのコンストラクターを作成しましたCMyView::CMyView():CFormView( ( UINT )666 ) { ... }。その 666 は、どの引数をそこに渡すべきかわからないためです。CMyView クラスの ID を渡す必要があると推測しています。Visual Studio プロジェクト ウィザードによって自動的に作成された CMyView クラスの ID が見つかりません。どこで探せばいいですか?プログラムを実行すると、次のエラーが表示されます。First-chance exception at 0x75AEC41F in myapp.exe: Microsoft C++ exception: CInvalidArgException at memory location 0x003CF134. Critical error detected c0000374 myapp.exe has triggered a breakpoint. そして、free.c の 51 行目で停止します。私の質問は、どうすればこれを修正できますか? また、以前の CView (現在は CFormView) で以前にペイントしたものを保持したいと考えています。CFormView は CView のように描画できますか? そうでない場合、CMainFrame で分割ペインを使用し、CView と CFormView を使用する必要がありますか? Javaスイングに固有の用語を使用した可能性がありますが、それについてはお詫び申し上げます。MFC と C++ は初めてです。事前にありがとう、コーネリュー

4

2 に答える 2

0

チェックアウトしてくださいResources.rc

次のようなものを追加してみてください。

IDD_DIALOG1 DIALOG  0, 0, 400, 400
STYLE DS_SETFONT | WS_CHILD
FONT 8, "MS Sans Serif"
BEGIN
END
于 2016-04-07T13:24:20.710 に答える