C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[5963] ㅠ ㅠ AllocateHWnd()라는 함수가 있는 줄 몰라따.. 난 삽질하고 이써따..
김상구.패패루 [peperu] 2168 읽음    2002-10-16 22:03
보통 소켓 컴포넌트를 작성할 때 비동기로 동작시키려면 내부에 메시지를 받아줄
윈도우를 하나 만들기 마련입니다. (TComponent상속)
물론 보이지 않게 띄우죠.
그동안 이런 부분은 전부 Win32API를 직접 이용해서 윈도우를 생성했습니다.
윈도우 프로시져 선언하고.. 그 프로시져로 윈도우 클래스 선언하고..
윈도우 생성하고.. 얻어진 핸들을 이용해서 SetProp이었던가.. 아무튼 그 함수로
윈도우에 컴포넌트의 포인터를 집어 넣어 놓고 윈도우 프로시져에서는 그 포인터
를 dynamic_cast로 TComponent*로 캐스팅하고 Dispatch() 함수를 콜 하게끔..
만들어서 썼죠. 이렇게 하면 매번 컴포넌트마다 새로운 윈도우 프로시져를 선언해
야 하는 번거로움도 없고 그냥 메시지맵으로 메시지를 잡아낼 수 있으니까요.
나름대로 머리를 굴렸던거죠.



근데 오늘 우연히..

VCL의 TClientSocket의 소스를 살펴봤슴다..
거기에도 HWnd라는 맴버가 있는데.. 그걸 초기화 하는 루틴이.. 원래는 당연히 API
를 썼으려니.. 했는데.. 요상한 함수가 있었슴다..

AllocateHWnd...
DeallocateHWnd...

Help를 봤슴다. 너무나 단순했슴다.
위의 번잡한 코드를 단 한줄로 끝내버리고 있었슴다..
가심이 아팠슴다..
원래 100줄 가까이 되던 코드가 전부 코맨트 처리되고
딸랑 한 줄 남았슴다..

ㅠ ㅠ

진작좀 볼껄..
속에서 울화통이 터지고 있었슴다..


ㅠ ㅠ 쭐쭐쭐...
박지훈.임프 [cbuilder]   2002-10-17 01:52 X
그게 그 목적의 함수였구먼요.. 소스 뒤적거리다가 본 기억은 나는데 무심코 지나쳤었죠..
미르노바 [kermi]   2002-10-17 09:41 X
얼.... 저의 소켓 강좌(Socket Class의 구조)에 비록 1줄이지만... 설명했었는뎅... --;;
머슴.한석복 [han8783]   2002-10-18 09:18 X
zpfzpfzpf
김상구.패패루 [peperu]   2002-10-18 16:27 X
zpfzpfzpf = 켈켈켈    어흑~

+ -

관련 글 리스트
5963 ㅠ ㅠ AllocateHWnd()라는 함수가 있는 줄 몰라따.. 난 삽질하고 이써따.. 김상구.패패루 2168 2002/10/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.