Windows10のVS2019のMFCに関する質問です。 下記のコードはアサーションエラーになります。 Q1)正しいコードお教え頂けますと大変有難いです。

Windows10のVS2019のMFCに関する質問です。 下記のコードはアサーションエラーになります。 Q1)正しいコードお教え頂けますと大変有難いです。 =================== //グローバル変数 typedef CEdit* peBox2[11][3]; peBox2 ulDataF2; void CTtimerView::OnBnClickedButton3(){ str = _T("A"); ulDataF2[0][0]->SetWindowTextW(str); } ==================== 以上、よろしくお願いします。

C言語関連23閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

0

これだけではなんとも言えませんが、コードを見る限りは特段の問題点はないように思います。 前提条件として ulDataF2[0][0] は CEdit へのポインタですが、正しく CEdit 型のオブジェクトを指している必要があります。また、ポイント先の CEdit でエディットコントールが作成されている必要があります。 アサーションエラーは SetWindowTextW() の内部で出ているものと思われますが、CEdit が保持しているウィンドウハンドル (m_hWnd) が正しいエディットコントロールでない可能性があります。 どのようにエディットコントロールを作成して、どのようにそれを ulDataF2 に割り当てているのかは分かりませんが、その部分に問題があるのではないでしょうか。

毎度お世話になります。 丁寧な回答有難う御座いました。 このプログラムの原型は約10位前に作ったもので、 Editボックスが多数あるものです。 例えば11x3で33個有ますが、 この実体を配列でアクセスできる様にする為に、個々の実体と配列の関係を下記の様に規定する必要がありました。 [0][0]--->IDC_EDIT1 [0][1]--->IDC_EDIT2 [0][2]--->IDC_EDIT3 [1][0]--->IDC_EDITB1 [1][1]--->IDC_EDITB2 [1][2]--->IDC_EDITB3 回答ありがとう、御座いました。

ThanksImg質問者からのお礼コメント

下記の回答ありがとうございました。 void CTtimerView::DoDataExchange(CData.... for (int i = 0; i < 11; ++i) { for (int j = 0; j < 3; ++j) { DDX_Control(pDX, IDC_EDIT1 + i * 3 + j, ulDataF2[i][j]); } } 感謝!!!!

お礼日時:9/20 15:49