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
[2092] OCX제작에 관하여...
김정모 [] 3516 읽음    1999-10-11 00:00
안녕하세요..
OCX제작에 대하여 질문할께 있어서 글을 씁니다.
제가 만든 vcl을 ocx로 바꿔서 배포를 하려고 하는데
문제는 vcl의 method중에 HWND형태를 함수인자로 하는 경우가
있습니다. WINDOW HANDLE을 받아야 하는 경우가 있기 때문이죠..
그런데 문제는 VCL을 그냥 사용하면 잘 돌던것이
OCX로 만들면 안된다는 겁니다.
우선 __property HWND MyWindowHandle = { read=FHandle, write=SetHandle };
뭐 위와 같이 사용해서 핸들을 넘겨 받으려 해봤지만
위의 경우는 아얘 컴파일조차 되지 않더군요..
HWND는 사용할 수 없다는 메세지가 나오구요..
그래서 아래의 소스처럼 해봤습니다..

class PACKAGE TNetMeeting : public TCustomControl
{
private:
    AnsiString  FAddress;
    int         FLeft;
    int         FTop;
    int         FLeft1;
    int         FTop1;
    int         FWindowSize;
    void __fastcall SetAddress(AnsiString addr);
    void __fastcall SetLeft(int left);
    void __fastcall SetTop(int top);
    void __fastcall SetLeft1(int left);
    void __fastcall SetTop1(int top);
    void __fastcall SetWindowSize(int size);

protected:
public:
    __fastcall TNetMeeting(TComponent* Owner);
    bool __fastcall Init(HWND handle);
    void __fastcall UnInit(void);
    bool __fastcall Connect(void);
    void __fastcall Disconnect(void);
__published:

    __property AnsiString Address = {read=FAddress, write=SetAddress };
    __property int Left         = { read=FLeft, write=SetLeft, default=0 };
    __property int Top          = { read=FTop, write=SetTop, default=0 };
    __property int Left1        = { read=FLeft1, write=SetLeft1, default=160};
    __property int Top1         = { read=FTop1, write=SetTop1, default=0};
    __property int WindowSize   = { read=FWindowSize, write=SetWindowSize, default=160 };

};

위에서 보신것처럼 Init함수에 HWND형식의 HANDLE을 넘겨줬는데.
문제는 이상없이 컴파일도 되고 OCX까지 만들어 졌지만..
OCX을 다시 COMPOENT로 등록해서 사용하려고 하면..
Init함수에서 컴파일 에러가 생깁니다.
Init함수가 없다는 .. 쩝...
그래서 여기저기 찾아봤더니 VCL에서 OCX를 만드는 과정에서
Init함수가 자동으로 빠져버리더군요..
참 미치겠습니다.. 별거 아닌거 같은데.. 쩝..

하여간 전 OCX에 HWND형식의 WINDOW HANDLE을 넘겨주기만 하면된느데..  아시면 답변좀 부탁합니다.. 그럼..

+ -

관련 글 리스트
2092 OCX제작에 관하여... 김정모 3516 1999/10/11
2103     Re:OCX제작에 관하여... 박지훈.임프 3606 1999/10/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.