У меня есть основная форма, созданная с помощью OwlNext, которая вызывает диалог, созданный в vcl.TForm скрывается за Главным окном
MyOtherFormClass Form2=new Form2();
void MyMainForm::ShowForm2(void) {
Form2->ShowDialog(this);
}
class MyOtherFormClass {
[...]
TForm *myForm;
void ShowDialog(TWindow* parent){
TForm* tf = new TForm((HWND)NULL);
tf->ParentWindow=parent->Handle;
myForm= new TForm(tf);
myForm->Parent=tf->Parent;
myForm->Caption = "Form2";
myForm->Height = 950;
myForm->Width = 1350;
myForm->BorderIcons << biMinimize << biMaximize << biSystemMenu;
myForm->BorderStyle = bsSizeable;
myForm->Show();
}
}
Теперь у меня есть оба окна с новой панелью задач.
Когда я нажимаю Main-WIndow, он появляется перед Form2.
Но когда я нажимаю Form2, он остается за Главным.
Также, когда Form2 делает предупреждение, закрытие предупреждения будет фокусировать Main вместо Form2.
MessageBox(NULL, "An Alert!", "!", MB_OKCANCEL)
Можете ли вы сказать мне, что я сделал не так?
в основном это работает, но я предполагаю, что MainWindow существо МДИ-окно может быть проблема ... теперь "ребенок" -window является в главном окне ... Я также попробовал parent-> Parent-> Handle, но теперь он все еще находится в этом окне, но над панелью инструментов ... есть ли какое-либо свойство, чтобы сказать myForm не MDI-Child? ^^ – Julian
Если вы хотите, чтобы 'myForm' был свободно плавающим, не назначайте никакого родительского окна вообще. –
Ну, если я даю (HWND) NULL как параметр, форма остается за основной формой, когда я нажимаю на нее в панели задач ... – Julian