|
VC에서는 윈도우를 생성 할수 있는 스레드를 만들려면 CWinThread를 상속 받아서 만들어야합니다.
하지만 작업자 스레드는 AfxBeginThread로 만들수 있습니다.
물론 GetMessage를 쓰면 메세지를 받을 수 있고 DefWindowPoc를 오버라이딩하면 메세지를 처리 할수 있지만
저의 질문은
TThread의 Excute는 작업자 스레드를 만드것 같더군요
하지만 제가 원하는것은 UI스레드입니다. MFC의 CWinThread가 하는것 처럼 스레드에서 메인 스레드와 독립된 윈도우를 만드고 싶습니다.
그럼
빌더맨 님이 쓰신 글 :
: while(GetMessage(&Message,0,0,0))
: {
: TranslateMessage(&Message);
: DispatchMessage(&Message);
: }
: return Message.wParam;
:
: 위와 같이 코딩을 하면 메세지를 받을수 있습니다.
: 그런데, 어차피 윈도우는 WndClass.lpfnWndProc=(WNDPROC)WndProc; 이렇게 정의되기때문에
: 이벤트를 받는건 WndProc 함수에서 받게 됩니다. 따라서 님께서 원하시는 것처럼 이벤트처리를 할려면
: WndProc를 상속받는수밖에는 없을텐데요.
: 왜 스레드에서 이벤트를 받으려고 하는지 알수가 없네요. ?.?
:
:
: 김상면 님이 쓰신 글 :
: : 메인 스레드는 윈도우를 만들고 윈도우 이벤트를 받습니다.
: : 근대 TThread->Excute()에 윈도우를 만들고 윈도우 이벤트를 받는 코딩을 해도 되나요?
: :
: : 질문을 간략히 줄이면 메인 스레드와 똑같은 스레드를 또 만들고 싶어요
: :
: : 그럼
: :
: :
|