Disabled 된 컨트롤 살리기

From YYpBD's MediaWiki

Jump to: navigation, search


안녕하세요 병부잡이 입니다.

아는 친구가 disabled 된 컨트롤을 살리는 프로그램을 보냈길래 흉내 내서 해보다가 적습니다.

disabled 된 컨트롤은

일반적으로 사용하는 마우스 위치의 핸들가져오는 방법
var
  Hnd : THandle;
begin
  GetCursorPos(S);
  Hnd := WindowFromPoint(S);

으로는 안됩니다.

위와 같이 하면 disabled된 컨트롤은 무시 당하고 부모 컨트롤이 구해지죠.

그래서

부모 핸들을 구해서 현재 마우스 영역의 자식 핸들이 있는지 검사해서 가져오시면 됩니다.
타이머 하나 올려 놓구

procedure TForm1.Timer1Timer(Sender: TObject);
var
  PHnd : THandle;
  S : TPoint;
  buff : array [0..255]of char;
begin
  GetCursorPos(S);
  PHnd := WindowFromPoint(S);
  Windows.ScreenToClient(PHnd, S);
  PHnd := ChildWindowFromPoint(PHnd,S );
  if PHnd <> 0 then  
    GetWindowText(PHnd,buff,sizeof(buff))
  else
    buff := '없어';
  Caption := buff;
end;

하면 되는 군요..



맞춤검색