0
후 키 누르기를 허용하지 않습니다. 내 목표는 다른 응용 프로그램에서 브라우저 창을 도킹하여 내 응용 프로그램에 넣는 것입니다.ShowWindow (browserPtr, 3)
부모가 될 패널 hwnd와 브라우저 창의 hwnd가 있습니다. 아이가되고, 제대로 배치
ShowWindow(browserPtr, 3);
SetParent(browserPtr, browserContainerPanel.Handle);
MoveWindow(browserPtr, 0, 0, browserContainerPanel.Width, browserContainerPanel.Height, true);
이 경우 브라우저 창에서 다음은
는 코드입니다. 그러나 키보드 입력을 중지하고 포커스를 수집 할 수 없습니다.ShowWindow를 호출하지 않으면 창 위치와 크기를 제외한 모든 항목이 올바르게 작동합니다. Wihout ShowWindow 크기와 위치를 설정할 수 없습니다. MoveWindow는 무시했습니다.
도킹 된 윈도우가 사용자 입력을 허용하지 않는 이유는 무엇입니까? 내가 뭘 잘못하고 있니?
UPDATE
현재 내 코드 :
/// Attach container app input thread to the running app input thread, so that
/// the running app receives user input.
FAppThreadID = GetWindowThreadProcessId(window, new IntPtr());
AttachThreadInput(GetCurrentThreadId(), FAppThreadID, true);
/// Changing parent of the running app to our provided container control
SetParent(window, container);
SendMessage(container, WM_UPDATEUISTATE, UIS_INITIALIZE, 0);
UpdateWindow(window);
/// Make the running app to fill all the client area of the container
SetWindowPos(window, 0, 0, 0, 1000, 1000, SWP_NOZORDER);
SetForegroundWindow(window);
그러나이 경우 창 크기에
어떤 이유로 무시됩니다. 그러나 모든 것이 초점과 입력으로 괜찮습니다. 크기를 수정하는 방법?
3이란 무엇입니까? SW_ 상수를 사용하지 않는 이유는 무엇입니까? – Paul
.net에서 사용했는데 거기에 그런 상수를 모르겠습니다. 3은 SW_SHOWMAXIMIZED 및 SW_MAXIMIZE 상수 값입니다. 그래서 여기에는 아무런 차이가 없습니다. – pro100sanya
부모 및 자식 창에는 입력을 관리하는 일종의 방법이 있어야합니다. 브라우저 창에서 적절한 호스팅 인터페이스를 사용해야하지만 사용하고있는 브라우저가 무엇인지 말하지 않았으므로 말할 수있는 것만 큼 많지 않습니다. –