< 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 |