|
안녕하세요.heartsim(박경원)입니다.
음...
두개의 폼이 있습니다.
하나는 메인폼이고 다른 하나는 동적폼입니다.
두개의 폼에 방향키를 입력받아서 위,아래,좌,우를 나타내는 방향버튼을 제어를 하고 있습니다.
가령,
메인폼과 동적폼에 아래의 방향키 메세지 함수를 똑같이 이용했습니다.
프로그램을 실행하면, 첨에 메인폼에서 방향키가 제어가 되고
그리고 동적폼을 쇼우모달폼으로 띄운 후 역시 방향키 제어가 됩니다.
그런데, 동적폼을 close시킨 다음 다시 메인폼에서 방향키를 제어할려고 하면
에러가 나더군요.
에러 메세지는 다음과 같습니다.cannot focus invisible or disable form
메인폼 경우,
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Application->OnMessage=AppMessage;<--------------이 부분이 ??
}
void __fastcall TForm1::AppMessage(tagMSG &Msg,bool &Handled)//OSD 방향키 기능
{
if(Msg.message==WM_KEYDOWN)
{
switch(Msg.wParam)
{
case VK_LEFT:
if(FlatButton1->Focused())//
{
FlatButton2->SetFocus();
Msg.wParam = 0;
}
..........
}
}
void __fastcall TForm1::Osd1Click(TObject *Sender)
{
OsdForm3=new TOsdForm3(Application);
OsdForm3->ShowModal();
}
동적 하위폼
void __fastcall TOsdForm3::FormCreate(TObject *Sender)
{
Application->OnMessage=AppMessage;<-----------이 부분???
}
void __fastcall TOsdForm3::AppMessage(tagMSG &Msg,bool &Handled)//OSD 방향키 기능
{
if(Msg.message==WM_KEYDOWN)
{
switch(Msg.wParam)
{
case VK_LEFT:
if(OsdFlatButton3->Focused())//
{
OsdFlatButton2->SetFocus();
Msg.wParam = 0;
}
..........
}
}
void __fastcall TOsdForm3::OsdFlatButton1Click(TObject *Sender)//동적폼 close
{
ModalResult=mrOk;
}
|