nyurka: (Default)
[personal profile] nyurka
Есть аппликация на WinForm managed C++ (VS2010)
Нужно добавить туда диалог а-ля MFC-шный child, приклеенный к родителю
КАК это сделать???
Не слишком криво???
И вообще можно ли??? Потому что в гугле я ничего путного не нашла по этому поводу
И - заодно посоветуйте что можно почитать по этому поводу учитывая, что я на нем не пишу и не собираюсь, исключительно для сделать не слишком корявый UI?? Что-нибудь типо спрашивают-отвечаем.

on 2011-03-07 03:35 pm (UTC)
Posted by [identity profile] cynicanonimus.livejournal.com
Задаешь диалог, указываешь ему в качестве родителя хендлер окна-родителя, или я не понял? В С плюс плюс и в С с решеткой именно так.

on 2011-03-07 03:36 pm (UTC)
Posted by [identity profile] nyurka.livejournal.com
Не двигается с папашей, скотина :((((

on 2011-03-07 03:38 pm (UTC)
Posted by [identity profile] cynicanonimus.livejournal.com
Стоп. А ты шо хочешь, чтобы двигая папу, ты при этом еще и чадо двигала? Так надо преопределить свойство OnWindowMove для родительского окна, и двигать и чадо вместе с ним, ежели тебе это надо.

on 2011-03-07 03:40 pm (UTC)
Posted by [identity profile] nyurka.livejournal.com
А чо, нет никакого свойства диалога чтобы не настолько криво???
Он же и по Z-order в разных слоях.
Нет чего-то просто объявить его сыном и шоб сидел на месте как положено???

on 2011-03-07 03:49 pm (UTC)
Posted by [identity profile] cynicanonimus.livejournal.com
Есть понятие MDI-приложения, когда унутренее окно всегда будет сидеть внутри основного окна (как много документов, открытых в Ворде "сидят" внутри основного окна самого Ворда). Если, конечно, тебе именно это надо.

on 2011-03-07 03:50 pm (UTC)
Posted by [identity profile] cynicanonimus.livejournal.com
Но это - не то, что ты описала, т.е. это не диалоговое окно, а суть несколько другая штука, диалогом (модальным или не модальным) не являющаяся. Конечно, туда можно вставить элементы управления, но именно диалоговым окном от этого оно не станет.

on 2011-03-07 03:52 pm (UTC)
Posted by [identity profile] nyurka.livejournal.com
Не, мне такое не надо.
Сне надо окно камеры открыть - чтобы оно было привязано к осносной аппликации, как нажмут на capture - закрыть.
Поэтому мне надо именно чтобы оно временно приклеевалось, потом уничтожалось, а потом снова приклеевалось

on 2011-03-07 03:54 pm (UTC)
Posted by [identity profile] cynicanonimus.livejournal.com
Чем тебе модальный диалог не люб? Тем, что он не двигается с основным окном? Сформулировать исчерпывающие требования к окну, которые тебе нужны - можешь?

on 2011-03-07 03:56 pm (UTC)
Posted by [identity profile] nyurka.livejournal.com
А как на capture нажимать с модальным окном????
Смысл такой - есть аппликация, есть кнопка, нажимаешь на нее - начинает работать камера на том дочерне-сыноснем окне, нажимаешь еще раз - камера берет фрэйм и обрабатывает.
Модальный диалог никак не подходит :((

on 2011-03-07 03:58 pm (UTC)
Posted by [identity profile] cynicanonimus.livejournal.com
ОК, сделай немодальный диалог, в котором будет работать камера, а в главной форме сделай кнопку, которая будет запускать и останавливать камеру. окно с камерой у тебя будет всегда поверх главного приложения ,если тебе это надо. Тебе так надо?

on 2011-03-07 04:00 pm (UTC)
Posted by [identity profile] nyurka.livejournal.com
Ну так я так и сделала.
ОНО НЕ КЛЕЕТСЯ!!!!
Оно не двинается с родителем, остается наружу если родителя чем-то закрыть - в общем издевательство над здравым смыслом

on 2011-03-07 04:05 pm (UTC)
Posted by [identity profile] cynicanonimus.livejournal.com
ОК, ты хочешь:
1. Немодальное окно.
2. Окно, которое не является MDI-окном.
3. Окно, которое прячется под что-либо, если это "что-либо" закрывает родительское окно.
4. Окно, которое двигается при движении родителя.

так? Тогда создавай независимое окно, сама отслеживай, кто над кем и в какой последовательности висит, и отслеживай движение родительского окна, передавая дочернему смещение по икс и игрек. Ничего более путного я тебе посоветовать не могу.

Если ты имеешь ввиду docking под "клеется", то это еще три строчки кода.

on 2011-03-07 04:06 pm (UTC)
Posted by [identity profile] nyurka.livejournal.com
Не, не докинг
Именно то что ты написал.
В общем придется отслеживать

on 2011-03-07 03:39 pm (UTC)
Posted by [identity profile] cynicanonimus.livejournal.com
Да, и комменты в этом сраном ЖЖ перестали на почту ходить окончательно, я буду проверять личку, но лучше в скайп или в почту.

on 2011-03-07 04:12 pm (UTC)
Posted by [identity profile] cynicanonimus.livejournal.com
О.
Я вспомнил.
Не надо никого отслеживать, есть куда как более изящный способ, смотри сюда (я так делал в одном проекте):

1. Описываешь два полигона: один полигон - окно приложения без изысков.
2. Второй полигон - окно приложения, которое разделено зрительно на два "окна" (на самом деле оно остается одним окном) и во второй части окна выводишь свою камеру. зрительно будет два окна, на самом деле - одно окно.

on 2011-03-07 04:13 pm (UTC)
Posted by [identity profile] cynicanonimus.livejournal.com
Все, что тебе надо - это на бумажке нарисовать полигон, написать, какими кривыми он отсекается, и получишь полный шоколад за недорого.

on 2011-03-07 04:15 pm (UTC)
Posted by [identity profile] nyurka.livejournal.com
Ни хрена не поняла.
Ты имеешь ввиду что-то типа сплиттера???

on 2011-03-07 04:46 pm (UTC)
Posted by [identity profile] cynicanonimus.livejournal.com
Нет.
У тебя есть скайп, а? А то у меня руки отваливаются писать. Стукнись ко мне, мой в профайле прописан, я тебе усе расскажу.

on 2011-03-07 05:20 pm (UTC)
Posted by [identity profile] nyurka.livejournal.com
dogovorilis
tolko do doma doedu :)

on 2011-03-07 04:49 pm (UTC)
Posted by [identity profile] cynicanonimus.livejournal.com
я нашел картинку из старого проекта, стучись в скайп, я ее тебе перешлю и расскажу, чего и как работает, и даже код дам. :)

on 2011-03-07 09:21 pm (UTC)
Posted by [identity profile] aamonster.livejournal.com
Я, конечно, чайник в win forms, но гугл говорит, что у формы есть свойство IsMdiContainer (для родительской) и MdiParent (для чилда).

Form2 f = new Form2();
f.MdiParent = this;
f.Show();
вроде работает.

on 2011-03-07 09:23 pm (UTC)
Posted by [identity profile] aamonster.livejournal.com
Или надо совсем приклееный, чтоб не таскался и не закрыть было? Тогда он делается не Form, а UserControl.

on 2011-03-07 10:49 pm (UTC)
Posted by [identity profile] nyurka.livejournal.com
Спасибо, завтра с утра проверю

on 2011-03-08 09:23 am (UTC)
Posted by [identity profile] nyurka.livejournal.com
Не, не получается - у меня родитель - панель
Как бы это двусмысленно не звучало :))))

on 2011-03-08 11:19 am (UTC)
Posted by [identity profile] aamonster.livejournal.com
А форме (внутренней) заголовок-то нужен? И таскаться она должна? Почему не сделать её UserControl (точно так же внутрь накидываются контролы - только заголовка окна нет и парента можно произвольного выставлять)

on 2011-03-08 11:22 am (UTC)
Posted by [identity profile] nyurka.livejournal.com
Потому что у меня на этой панели хренова туча других юзерконтролей
Еще один дополнительный который будет постоянно появляться-исчезать мне там не нужен

Profile

nyurka: (Default)
nyurka

January 2013

S M T W T F S
   1 2345
6789101112
13141516171819
20212223242526
2728293031  

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 22nd, 2026 07:36 pm
Powered by Dreamwidth Studios