2013-08-17 2 views
0

C++에서 directx 용 GUI를 개발 중입니다. 내 컨트롤 클래스를 가지고 : 내 창문고정 데이터가있는 클래스에서 상속 된 클래스

class cControl; 

클래스 :

class cWindow : public cControl 

와 제가하고 싶은 것은 윈도우의 특별한 종류의 클래스를 작성하다 (색상 이쑤시개).

class cColorPicker : public cWindow 

colorpicker 클래스의 생성자는 cControl 함수 만 호출합니다. 는이 코드이를 사용하는 모든 윈도우 GUI를 루틴에서 물건을 설정하려면 :

for each(cWindow* pWindow in m_vWindows) 
    // stuff 

은 내가 디버깅을 발견하는 것은 그 위치, 폭, 높이 나는 ColorPicker의 생성자에서 설정 한 모든 일이 널 (null) 결과.

편집 : 내가하고 싶은 일은 창의 너비, 높이 등을 설정하는 생성자가있는 특별한 창을 갖는 것입니다. 이것이 효과가 있습니까?

cColorPicker::cColorPicker(int x, int y) 
{ 
    cWindow::cWIndow(x, y, ...) 
} 

EDIT2 : 두 번째 문제 : 나는 cWindow 클래스 (윈도우에 컨트롤을 추가하는 기능)에서 함수를 호출해야하지만, 너무 문제를 제공하는 것, 그리고 내가 그것을 할 수 있다고 생각 cColorPicker의 생성자 내부.

답변

1

귀하의 매개 변수를 사용하여 기본 오브젝트를 초기화 할 member initializer list를 사용해야합니다

cColorPicker::cColorPicker(int x, int y) 
: cWIndow(x, y, ...), width(42),height(42) 
{ 
} 

편집 :

cColorPicker::cColorPicker(int x, int y, cControl* pControl) 
: cWIndow(x, y, pControl, ...), width(42),height(42) 
{ 
} 

// edit or create a new cWindow constructor to accept CControl* parameter 
cWIndow::cWIndow(int x, int y, cControl* pControl) 
:width(x), height(y), m_vControls(pControl) 
{ 
} 
: 당신이 기본 생성자에 추가 매개 변수를 추가하려면 는, 그것의 기초에 cColorPick 생성자에서 그것을 통과해야
+0

나는 cWindow :: 함수를 호출해야하지만 너무 문제를 일으키는 것처럼 보이지만 그 트릭을 수행 한 pas 문제의 경우. 감사! – caccolona

+0

생성자에서 객체를 초기화하고, cWidow 생성자에서 cWindow :: function을 호출하여 cWidnow를 초기화해야합니다. – billz

+0

EDIT2에서 문제 설명 – caccolona

관련 문제