C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[65947] Re:Re:FindWindow 관련 문의 여쭙니다.
빌더초보 [] 2233 읽음    2012-01-13 02:36
정말 감사합니다.(_ _)

덕분에 해결 되었습니다.

그런데 두가지 궁금한게 있는데요..

_D("Ca. Test")에 앞에 _D 나,

FindWindowW(L"Ca. Test",NULL); 보면 FindWindow가 아니라 뒤에 W가 하나 더 붙어 있고 함수 안에도 L 이 붙어 있는데..

제가 빌더를 6.0을 사용하고 있는데 그래서 Help에서도 안나오는건지.. ㅎㅎ

이건 그냥 궁금해서 여쭤본 것이구요..

혹시 이렇게 WinClassName을 변경해 주면 종료할 때 에러가 발생하나요?

실행파일 상태에서는 상관이 없는데 디버깅 상태에서 종료하면

application-defined exception이 뜨더라구요..

아무튼 정말 정말 정말 감사합니다.


장성호 님이 쓰신 글 :
: @ 사족
: 보이는 Caption을 어떻게 해달라고 요청은 있어도
: classname을 어떻게 해달라고 요청도 하는군요
:
: Classname이나 Caption이 아니더라도
: Window를 찾는 방법은 여러가지가 있을것 입니다.
:
: @ Form의 ClassName변경하는 방법
:    Form의 ClassName을 변경하는 방법은?
:
:   Form의 CreateParams를 override하여서
:   TCreateParams 구조체의   WinClassName을 변경해주시면 됩니다.
:
:   다음과 같이...
:
:
:
: void __fastcall TForm1::CreateParams(Controls::TCreateParams &Params)
: {
: 	TCustomForm::CreateParams(Params);
: 	StrLCopy(Params.WinClassName, _D("Ca. Test"), (sizeof(Params.WinClassName) / sizeof(Char)) - 1);
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: 	HWND hWnd=FindWindowW(L"Ca. Test",NULL);
: 	if(hWnd==this->Handle)
: 	{
: 		ShowMessage("TForm1의 ClassName은 Ca. Test 입니다.");
: 	}
: }
: //---------------------------------------------------------------------------
: 
: 

:
: 그럼..
:
:
: 빌더초보 님이 쓰신 글 :
: : 안녕하세요.
: :
: : 밑에도 글을 남겼었는데 제가 초보라 질문을 정확하게 올리지 못한거 같습니다.
: :
: : 다시 한번 요약해서 질문해 보겠습니다.
: :
: : 지금 상대 업체와 제가 서로 프로그램을 맞춰야 하는 부분이 있어서요..
: :
: : FindWindow 함수를 보면 FindWindow(class name, caption)이런식으로 되어 있는걸로 알고 있습니다.
: :
: : 상대 업체에서 class name으로 프로그램 조회를 하자고 하였습니다.
: :
: : 상대 업체의 class name 은 "ca.Traking" 이어서
: :
: : Q&A를 찾아서
: :
: : FindWindow("ca.Traking", 0); 이런 식으로 했더니 핸들값이 잘 넘어 오더라구요.
: :
: : 문제는 저인데..
: :
: : 제 프로그램의 class name을 "ca.Test"로 해달라고 하드라구요.
: :
: : 제가 실행할 폼을 만들어서 폼 이름을 Test로 했더니
: :
: : 헤더파일에 class TTest : public TForm 이런식으로 클래스가 만들어져더라구요.
: :
: : 제 생각엔 TTest를 "ca.Test"로 변경해 줘야 할꺼 같은데
: :
: : 그냥 이름을 바꾸려고 하면 에러가나고.. 어떻게 변경해야 하는건지...
: :
: : 제가 혹시 잘못 생각하고 있는것인지 어떻게 class name을 "ca.Test"로 바꿔줘야 하는지 정확히 모르겠네요.
: :
: : 고수님들의 답변 부탁 드립니다.

+ -

관련 글 리스트
65945 FindWindow 관련 문의 여쭙니다. 빌더초보 2445 2012/01/12
65946     Re:FindWindow 관련 문의 여쭙니다. 장성호 2664 2012/01/13
65947         Re:Re:FindWindow 관련 문의 여쭙니다. 빌더초보 2233 2012/01/13
65971             Re:Re:Re:다른 에러였던거 같습니다. 답변 감사했습니다.(냉무) 빌더초보 1672 2012/01/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.