Страница 1 из 1
Окно на clarion (com object) внутри родительского окна
Добавлено: 27 Январь 2012, 12:45
seawolf
Коллеги, пытаюсь сделать com объект внутри которого окно (два варианта MDI Frame и просто Window), вернее сделал такой объект. Регистрируется и дергается даже из C++ и из Clarion через CoCreateInstance или обычный ?OLE control . Делал на 6.3. Хочу чтобы это окно выплывало не как отдельное а могло активизироваться по месту (внутри другого которое его вызвало). Cоздал OLE control, вызвал Prop:Create и далее вызвал метод с вызовом окна из контейнера, но оно запускается как отдельное приложение, а не внутри моего поля OLE control. Вопрос как добиться чтобы оно активизировалось по месту в моем контроле?
Re: Окно на clarion (com object) внутри родительского окна
Добавлено: 27 Январь 2012, 18:45
Дед Пахом
А сделать метод OLE.SetParent(HWND, HWND), где окну из OLE сказать "смени родителя", не пробовал?
Re: Окно на clarion (com object) внутри родительского окна
Добавлено: 27 Январь 2012, 22:13
seawolf
если я правильно понял надо вызвать окно из com передав туда handle родителя и сказать этому окну что вот твой родитель?
Re: Окно на clarion (com object) внутри родительского окна
Добавлено: 28 Январь 2012, 10:20
Дед Пахом
seawolf писал(а):если я правильно понял надо вызвать окно из com передав туда handle родителя и сказать этому окну что вот твой родитель?
Именно это я имел в виду.
Re: Окно на clarion (com object) внутри родительского окна
Добавлено: 30 Январь 2012, 11:39
seawolf
Выяснилось что окно вызываемое из Com уже имеет в качестве родителя того, кто его вызвал из OLE control окна (GetParent это четко показало). При этом поведение вызванного окна аналогчино модальному окну - оно блокирует доступ в родителю пока не будет закрыто. А хотелось "плавать" в OLE control окна родителя и продолжать работать в родителе. Копать стили GWL_STYLE и SetWindowLong ?