같은 양식으로 두 개의 IconListView가 있어야합니다. 두 번째 클래스를 만들 때 두 번째 클래스를 만들었지 만 두 번째 클래스에서 AddControl()을 사용하는 동안 '알 수없는 식별자 오류 AddControl'이 표시됩니다. AddControl()이 Form 클래스에서 사용되지만 동일한 응용 프로그램에서 두 번째 클래스에서 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);
일부 코드가 변경되었습니다.
위의 코드는 두 번째 클래스에서 제공되며 AddControl()은 유효 함을 나타내는 빨간색으로 표시됩니다. 그러나 코드를 실행 한 직후 실행이 AddControl (__ pIconListView)에 도달하면 프로그램이 중단됩니다. Log는 '사용하기 전에 Construct가 호출되어야한다'고 말합니다. 하지만 위의 Construct()는 오류를 발생시키지 않고 로그를 검사했습니다. 그렇다면이 버그는 어디에서 왔습니까! GetClientAreaBounds()도 오류가 발생합니다.
안녕하세요. 두 번째 클래스를 선언 한 헤더 파일의 코드를 게시 할 수 있습니까? 그것은 상속에 문제가있는 것처럼 보입니다. – Wert1go
네, Form 클래스를 상속받지 못했습니다. 감사합니다 :) –
@ Wert1go 나는 질문을 편집하고 더 많은 정보를 추가했습니다. 희망 당신은 두 번째 클래스에서 AddControl()의 충돌 문제와 함께 나를 도울 수 있기를 바랍니다. Form, IHttpTransactionEventListener, IIconListViewItemProvider, IIconListViewItemEventListener 및 IImageDecodeUrlEventListener 클래스를 두 번째 클래스에 상속했습니다. –