2013-11-22 6 views
0

같은 양식으로 두 개의 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()도 오류가 발생합니다.

+0

안녕하세요. 두 번째 클래스를 선언 한 헤더 파일의 코드를 게시 할 수 있습니까? 그것은 상속에 문제가있는 것처럼 보입니다. – Wert1go

+0

네, Form 클래스를 상속받지 못했습니다. 감사합니다 :) –

+0

@ Wert1go 나는 질문을 편집하고 더 많은 정보를 추가했습니다. 희망 당신은 두 번째 클래스에서 AddControl()의 충돌 문제와 함께 나를 도울 수 있기를 바랍니다. Form, IHttpTransactionEventListener, IIconListViewItemProvider, IIconListViewItemEventListener 및 IImageDecodeUrlEventListener 클래스를 두 번째 클래스에 상속했습니다. –

답변

0

FirstClass 자체에서 AddControl (secondclassObject)을 사용하여 다른 해결책을 찾았습니다. 그러나 iconlistview에 필요한 이미지가 완전히 가져온 지 여부를 확인하는 오버 헤드가 있습니다!

하지만 여전히 두 번째 클래스에서 AddControl()을 사용하는 방법이 있습니까?