아래 답변 정말 감사합니다.
덕분에 막혔던 부분이 풀렸군요.
API함수중에 GetParent같은 함수가 있을 거란걸 왜 생각을 못했을까...
히히... 잔머리의 한계가...
근데...
소스를 보니 좀 비효율적으로 되어있군요...
그래서 제가 좀 고쳐봤습니다.
참고로 저는 씨빌더를 쓰기땜에 씨 소스로 고쳤습니다.
#include <string.h>
HWND __fastcall GetOwner(HWND hWnd)
{
// 넘어온 핸들이 폼의 핸들이면 Parent가 Application이고, 그 Parent는 NULL이 된다.
if (GetParent(GetParent(hWnd)) == NULL)
return hWnd;
return GetOwner(GetParent(hWnd));
}
훨씬 간단해졌지요?
좀더 장난을 치면...
#include <string.h>
HWND __fastcall GetOwner(HWND hWnd)
{
return GetParent(GetParent(hWnd)) == NULL ? hWnd : GetOwner(GetParent(hWnd));
}
히히히...
참고로 델파이용 소스는 아래와 같습니다.
function GetOwner(hWnd : THandle) : THandle;
begin
if (GetParent(GetParent(pParent)) == 0) then
result := hWnd;
else result := GetOwner(GetParent(hWnd))
end;
맞나요? 히히히...
코딩은 즐거워...
부산에서 무식의 동굴에서 빛을 찾아헤메는 임펠리테리였습니다.
|