同じフォームに 2 つの IconListView が必要です。2 番目のリストビューを表示するための 2 番目のクラスを作成しましたが、2 番目のクラスで AddControl() を使用すると、「宣言されていない識別子エラー AddControl」が表示されます。AddControl() が Form クラスで使用されている場合、同じコードが機能しますが、私のアプリケーションでは、2 番目のクラス自体で AddControl() を使用する必要があります。使用できるようにするには、どのような変更を加える必要がありますか。
__pIconListView = new IconListView();
result r=__pIconListView->Construct(Rectangle(0,300, 600, 300),Dimension(200,200), ICON_LIST_VIEW_STYLE_NORMAL, ICON_LIST_VIEW_SCROLL_DIRECTION_HORIZONTAL);
__pIconListView->SetItemProvider(*this);
__pIconListView->AddIconListViewItemEventListener(*this);
r=AddControl(__pIconListView);
コードにいくつかの変更を加えました。
上記のコードは 2 番目のクラスで指定され、AddControl() は有効であることを意味する赤い色になっています。しかし、コードを実行した直後に、実行が AddControl(__pIconListView) に達すると、プログラムがクラッシュします。ログには、「使用前にコンストラクトを呼び出す必要があります」と書かれています。しかし、上記の Construct() はエラーを発生させず、正常に動作します。ログを確認しました。では、このバグはどこから来ているのでしょうか。GetClientAreaBounds() もエラーになります。