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를 클릭하면 Main 뒤에 유지됩니다.
또한 Form2가 경고를 표시하면 경고를 닫으면 Form2 대신 Main이 포커스를받습니다.
MessageBox(NULL, "An Alert!", "!", MB_OKCANCEL)
여기 내가 뭘 잘못했는지 말해 줄 수 있습니까?
대부분 작동,하지만 지금은 "아이"-window은 ... 문제가 될 수있는 MDI 창을되는 MainWindow를 추측 :
대신 시도 메인 윈도우 내에서 ... 또한 부모 -> 부모 -> 핸들을 시도했지만, 이제는 여전히 그 윈도우 내에 있지만 툴바 위에 있습니다 ... myForm에 MDI-Child가 아님을 알리는 속성이 있습니까? ^^ – Julian
'myForm'을 free-floating으로하고 싶다면 부모 창을 전혀 할당하지 마십시오. –
글쎄, 매개 변수로 (HWND) NULL을 지정하면, 폼은 태스크 바에서 클릭 할 때 메인 폼 뒤에 머물러 있습니다 ... – Julian