이상한 문제가 발생하여 도움이 필요합니다. MFC MDI 응용 프로그램이 있고 열린 CView의 자식으로 WPF 창을 만들려고합니다.CView의 자식 WPF 창 크기 조정
CView에서 OnCreate 메시지를 처리하고 WPF 창을 만들어 성공적으로 수행 할 수있었습니다. 또한 CView를 WPF 창의 부모로 설정하여 자식으로 동작합니다. 여기
내가 무슨 짓을 예상대로
int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
m_windowWrapper.Create(this->GetSafeHwnd());
return 0;
}
void CMyWindowWrapper::Create(HWND hParent)
{
m_myWindow = gcnew MyWindow();
m_myWindow->Show();
IntPtr^ hChildWnd = m_myWindow->GetHwnd();
::SetParent((HWND)hChildWnd->ToPointer(), hParent);
}
public partial class MyWindow : Window
{
public MyWindow()
{
InitializeComponent();
MouseLeftButtonDown += (o, e) => DragMove();
}
public IntPtr GetHwnd()
{
return (new System.Windows.Interop.WindowInteropHelper(this)).Handle;
}
}
WPF 창이 나타납니다. 이제 WPF 창의 크기를 조정하려고 할 때 문제가 발생합니다. 갑자기 창의 내부 컨트롤이 늘어나고 WPF 창의 크기가 상위 CView의 크기와 같은 것처럼 다시 배치됩니다! SizeChanged 이벤트를 처리하려고했는데 NewSize가 WPF 창의 크기보다 훨씬 더 크고 포함 된 CView의 크기가 가장 큰 것으로 나타났습니다.
SetParent 호출을 제거하려고했는데 크기 조정이 올바르게 작동했습니다. 부모님이 CView 인 WPF 창과 크기 조정에서 무엇이 잘못 될지 궁금합니다. http://cid-a059807de2e23c43.office.live.com/self.aspx/.Public/ResizeProblem.zip
이 제발 도와주세요 :
나는 문제를 설명하는 샘플 응용 프로그램을 업로드했습니다.감사합니다.
이 문제가 두 개 있습니다. 나는':: OnSize'를 구부리고 심지어 정확하게 크기를 재조정하지도 않는다. 끔찍한데. – Jordan