Q&A

  • 바보감자님..죄송하지만 다시한번 부탁드릴께요..핸들문제요
핸들을 얻는 부분만 다시 물어볼께요

부모 폼의 캡션도 어떤 캡션이 될지 알수가 없습니다.

그런 상태에서 자기를 부른 부모의 핸들을 알수 있는 방법을 부탁드립니다

거듭 귀찮게 해서 죄송합니다

아래 내용은 지난번 감자님께서 답변해 주신 내용입니다.

안녕하세요 언제나 초보 바보감자입니다..
^^ 자 이부분을 보십시오..
Wnd := FindWindow(nil, PChar('form1'));
실행되고있는 윈도우 중에서
caption ... 그 윈도우 상단 파란곳에 쓰여있는 글 있죠.?
그게 form1인것을 찾으라는 뜻입니다..
그럼 저 위에부분은 그 프로그램에 나와있는것을 넣어 주면 되겠지요

처음 부분의 인자는 클래스명을 넣어주는곳이구요..
실행시킬 프로그램의 클래스 이름을 얻을려면, 양병규님의 스파이를 사용하세요 ^^ 다른 프로그램도 많구요..

델파이의 클래스 이름은 "TAppBuilder"  입니다..

그리고에디트에 특정 내용을 입력하시려면...
검색하면 많은데......
SendMessage(wnd, WM_SETTEXT, 0, LongInt(PChar('akaka')));
이렇게 실핼해보시면 될듯..
에디트에 값을 쳐 넣을려면 에디트의 핸들을 찾아야겠지요.?
제가 스트링 그리드 찾았던거처럼 그 핸들 가지고 다시 한번 찾아야합니다.
^^
도움이 좀 되셨는지...?
^^ 수고하세요 !!

>안녕하세요 바보감자님
>근데 form1으로 FindWindow를 하셨는데
>form1인지 알수 없는 상황에서 자기를 부른 부모윈도우(어떤 윈도우인지는 모름)의 핸들을 찾아서 제어를 할수는 없나요?
>그리고 에디트에 값을 넣으려고 하는건데요..
>예를 들면 우편번호 찾기 같은경우에 우편번호 찾기 버튼을 누르면
>새로 다이얼로그 박스가 떠서 그것을 띄운 윈도우의 화면에
>값을 뿌려주는 것 같은 식으로 말입니다
>도움주셔서 감사합니다.
>한번만 더 도와주세요
>
>>안녕하세요 언제나 초보 바보감자입니다
>>제어가능합니다..
>>함수만 이용하실꺼면
>>핸들을 찾아서 메세지를 날려주시는게 제일 편하실듯 싶습니다....
>>예를들어.. 다른폼의 스트링 그리드를 스크롤 할려면
>>
>>procedure TForm2.Button1Click(Sender: TObject);
>>var
>>  wnd: HWND;
>>begin
>>  Wnd := FindWindow(nil, PChar('form1'));
>>  if Wnd <> 0 then begin
>>    Wnd := Findwindowex(wnd, 0, 'TStringGrid', '');
>>    if Wnd <> 0 then begin
>>      begin
>>        SendMessage(wnd, WM_VSCROLL, 1, 0);
>>      end;
>>    end;
>>  end;
>>end;
>>
>>이렇게 메세지를 넣어줍니다.
>>그럼 저 form1에있는 스트링그리드가 스크롤이 되지요..밑으로..
>>그럼 만약 그 스크롤되었을때 처리하는 이벤트가 있다면
>>처리가 되겠지요..
>>
>>즐푸하세요 ^^
>>
>>
>>
>>>A라는 폼에서 B라는 폼을 모달할때
>>>
>>>B라는 폼은 A라는 폼이 어떤 폼인지 알수가 없는 상태 입니다.
>>>
>>>즉 uses 를 사용할수 없는 상황인데
>>>
>>>B.Parent 나 B.Owner 를 사용해도 정상적으로
>>>
>>>부모 윈도우를 찾지 못하고 있습니다.
>>>
>>>핸들로 제어를 하려고 하는데
>>>
>>>폼의 핸들에서 부터 폼에서 제공되는 함수를 사용하는데 까지만
>>>
>>>사용하면 될거 같습니다.
>>>
>>>핸들로 폼을 제어하는 방법 좀 부탁드립니다.
>>
>

1  COMMENTS
  • Profile
    바보감자 2003.07.17 23:15
    안녕하세요 언제나 초보 바보감자입니다. 꾸벅..
    아따다 휴일인데 한번 들어왔더니 이런글이 있네요 ㅇㅅㅇ;;;
    특정 아이디를 대고 질문하는건 질답게시판에 안맞는거같아요..
    차라리 메일로 하시던지 하시지..ㅡㅡ;;;
    다른 응용프로그램이 아마 만드신 프로그램을 호출 하나봐요.?
    자기가 만든건데
    캡션이나 그런게 머올지 몰른다는건 좀 이상하지요..
    한번 이 함수들을 써보세요
    GetParent
    GetParentHandle
    자신의 부보 윈도우의 핸들을 파라메터에 입력시켜주는
    함수들입니다..
    그럼 꼭 성공 하시길 빌며..
    수고하세요 꾸벅..