본문 바로가기

오래된 흔적/게임

Internet Explorer In Game

< TIP >

* SetWindowLong() - 윈도우 스타일 정보를 따로 메모리를 잡지 않고 저장하는 함수.. 
* GetWindowLong() - 저장된 걸 32bit DWORD값으로 가져오는거.. 
* 팁 : SetWindowLong(hEdt, GWL_STYLE, GetWindowLong(hEdt, GWL_STYLE) & ~(ES_MULTILINE));
: 요건 기존에 저장된 스타일에 추가되는것만 입력하는거.. 

* WS_CLIPCHILDREN  -  차일드가 위치한 영역은 그리기 영역에서 제외된다.
* WS_CLIPSIBLINGS   -  차일드끼리 상호 겹친 영역은 그리기 영역에서 제외된다.
* InvaildateRect() - 새로 그려야할 영역이 런타임에 있지 않으면 굳이 안 해줘도 됨.. 
* 중간에 컨트롤에 뭔가가 바뀌었는데 그게 적용이 안되었을때 InvalidateRect를 호출해서 WM_PAINT 메세지를 발생시킨다..

* 문제점 1 : 화면에 안 뿌려졌음
* 이유 1 : 최초 게임 윈도우(부모 윈도우) 생성할 때 WS_CLIPCHILD, WS_CLIPSIBLINGS 요거 두개를 지정해주니까 둘 다 잘 됨.. 
* 결론 1 : 기본 윈도우 스타일에다가 WS_CLIPCHILDREN하고 WS_CLIPSIBLINGS 두개만 설정해주면 OK.

* 문제점 2 : 게임화면에 포커싱이 안 먹는거.. 익스플로러만 된다는거.. ㅋ
* 이유 2 : IWebBrowser2가 삽입된 윈도우가 포커스를 얻으면서 부모윈도우에겐 WM_KILLFOCUS 메세지가 날라왔다. 
이때 게임 자체적으로 포커스 관련 옵션을 다루고 있었다.. 
* 결론 2 : FOCUS관련된 문제를 필요에 맞게 해결하면 되염~


* 문제점 3 : 레이어상 항상 최상단에 뿌려지기 때문에 ESC키 눌렀을때 "종료하시겠습니까" 같은 UI를 띄울때 먹힌다.
* 이유 3 : 
* 결론 3 : 

'오래된 흔적 > 게임' 카테고리의 다른 글

D3DPOOL  (0) 2009.07.01
3D 용어정리  (0) 2009.05.18
SVN과 CVS의 차이점  (0) 2009.04.28