2010-08-13 5 views
1

현재 기존 .NET/C#/WinForms 프로젝트를 플랫폼 중립적 솔루션으로 마이그레이션하는 것을 설계하고 있으며 가장 매력적인 대안은 wxWidgets인데 특히 고려해야 할 것 같습니다 내 친숙 C + +와 함께 MFC는 많은 공통점이 나타납니다.Cx 사용자 컨트롤에 해당하는 wxWidgets은 무엇입니까

그것이 WX 환경에서 (C#을 용어에 의해) 사용자 정의 컨트롤을 개발하는 방법을 도출하는 것입니다 유효한 가정이다 :

문서 및 I는 다음 문제를 명확히 할 필요가 샘플 코드 불구하고가는 후 wxPanel 클래스를 사용자 정의하고 wxFrame에 배치 하시겠습니까? 이 경우 wxPanel 객체를 추가하는 데 사용할 wxFrame 메서드는 무엇입니까?

찾을 수있는 상대적인 방법은 wxWindow :: AddChild 뿐이지 만 대부분 문서의 상태는 wxWidgets에 내부적이며 사용자 코드에 의해 호출되어서는 안됩니다. 혼란을 방지하기 위해

내 질문은 당신이 당신의 wxPanel의 생성자에서 부모 창을 설정하는 생각 사용자 정의 컨트롤이 아닌 (분명히 설명서에 나와 있습니다) 사용자 정의 컨트롤

답변

2

에 관한주의하시기 바랍니다 (wxPanel constructor)

더 나은 해결책은 레이아웃을 위해 sizer (wx Sizers 참조)를 사용하는 것입니다.

네, 맞아요. wxPanel은 (대략) C# UserControl과 같습니다.

+0

wxSizer :: Add에 대해 약간 혼란 스럽습니다. 먼저 만들어야합니다, wxSizerItem이 * 추가 ​​(wxWindow * 창, const를 wxSizerFlags 및 플래그) 그래서 선별기에 창을 추가 : 나는 다음과 같다 즉 서명입니다 볼 수 있습니다. ... 부모 윈도우가 제공되어야한다는 것을 의미한다 (... .. wxWindow * 부모) wxPanel 어떤 아이디어 : 는하지만, wxPanel의 생성자는 다음과 같다? – JohnP

+0

항상 생성자에서 부모 창을 제공해야합니다. sizer 메커니즘은 병렬로 작동합니다 : (sizer-> Add를 사용하여) 모든 자식 컨트롤을 sizer에 추가하고 (parent-> SetSizer를 사용하여) 부모 sizer 속성을 나중에 설정합니다. (두 번째) 링크를 보시면 짧은 예제가 있습니다. – MartinStettner

+0

알았어 ... 나는 프레임 워크를 다운로드하고 시도해 볼 것이다! – JohnP

관련 문제