|
Windows API에서는 윈두우핸들이라는 넘을 두어 생성된 윈도우(동적, 정적)를 관리하도록 하고 있습니다. 그러나, 빌더에서는 동적으로 생성된 윈도우에 대해서는 자체적으로 관리해 주지를 않습니다. 그렇다고 전혀 접근하는 방법이 존재하지 않는 것은 아닙니다. 빌더에서는 Screen이라는 global class가 존재합니다. 이 클래스는 현재 화면과 관련된 정보를 가지고 있습니다. 자세한 내용은 Screen의 도움말을 참조하시고, 폼에 관련된 것만 말씀 드리면,
Screen->Forms [] : 이것이 바로 현재 화면상에 떠 있는 모든 폼을 나타냅니다.
예를 드는 것이 설명하는데, 가장 빠를 것 같군요.
[예1] 캡션을 이용하여 폼을 찾고 싶다면,
Form *SearchForm (String caption)
{
for (short i = 0; i < Screen->FormCount; i++ )
{
if ( String (Screen->Forms[i]->Caption) == caption )
return Screen->Forms [i];
}
return NULL;
}
[예2] 특정폼이 몇개 떠 있는지 확인하고 싶다면,
int CountForm (String formName)
{
int formCount = 0;
for (short i = 0; i < Screen->FormCount; i++ )
{
if ( String (Screen->Forms[i]->ClassName ()) == formName )
formCount++;
}
return formCount;
}
이렇게 하시면 됩니다.
그래도 이해않되면 리플을 달아 주세요.
C처럼 간결하게 님이 쓰신 글 :
: 동적으로 생성된 폼이 여러개가 있을 경우 그것을 어떻게 구분하는지...
: 내가 얘기하고도 넘 질문이 막연하네여....
:
: 그러니까 윈도우가 어떻게 그걸 구분해서 메시지를 전달하는지등등
: 헉 너무 질문이 어렵군여... 죄송합니다.
:
|