menu등의 창이 남아 있고, frame window의 모양을 하고 있는 application을 전체 화면으로 만들기 위해서는, task bar를 없애고, 윈도우의 크기를 재조정해 주면 될 것이다. 그러나 일반적으로 전체 화면으로 바꿀 때는 frame이 없는 윈도우를 사용할 경우가 많으므로 여기서는 그러한 방법에 대해 이야기 한다. 즉, powerpoint의 slide show를 할 때와 같은. 기본 원리를 이해하면 다른 경우도 쉽게 응용이 가능하다.
실제 작업 순서는 다음과 같다. 일단 task bar를 감추고, 모니터의 크기를 알아낸 후, 그 크기만한 팝업 윈도우를 만들어 그것을 화면에 나타나게 하면 된다. 이 때 '팝업 윈도우'란 CWnd 에서 상속을 받은 윈도우로, frame 도 없고 border 도 없고, 정말 딸랑 네모난 것 그 자체만을 의미한다. 원래 우리가 '보는' 모든 window는 기본적으로 그러한 것인데 버튼이나 라디오, mainframe 같은 것들은 그것에 맞게 시각적 표현을 갖도록 미리 코딩된 것 뿐이다. 어쨌든 다음을 그대로 따라 하면 된다. 1
실제 작업 순서는 다음과 같다. 일단 task bar를 감추고, 모니터의 크기를 알아낸 후, 그 크기만한 팝업 윈도우를 만들어 그것을 화면에 나타나게 하면 된다. 이 때 '팝업 윈도우'란 CWnd 에서 상속을 받은 윈도우로, frame 도 없고 border 도 없고, 정말 딸랑 네모난 것 그 자체만을 의미한다. 원래 우리가 '보는' 모든 window는 기본적으로 그러한 것인데 버튼이나 라디오, mainframe 같은 것들은 그것에 맞게 시각적 표현을 갖도록 미리 코딩된 것 뿐이다. 어쨌든 다음을 그대로 따라 하면 된다. 1
1. task bar 감추기
2. 모니터의 크기 알아 내기
3. 팝업 윈도우 만들기
모니터의 해상도는,
int width = GetDeviceCaps(::GetDC(NULL),HORZRES);
int height = GetDeviceCaps(::GetDC(NULL),VERTRES);
로 알아낼 수 있다. ::GetDC 함수는 parameter로 NULL을 받으면 전체 화면의 DC를 반환해 준다.
- 모니터에 display되는 모든 윈도우 컨트롤은 CWnd 로부터 상속을 받아야 한다. 그러한 것은 곧 DC 를 갖는 것. 이것은 델파이에서 말하는 visual property 를 갖고 있는 모든 control이 VCL로 묶이는 것과 같다. timer 같은 것은 화면에 표시될 이유가 없기 때문에 VCL에서도 그렇고 MFC에서도 그렇고 Canvas 나 DC 를 가질 필요가 없게 된다. [본문으로]
'컴퓨터 > MFC_API' 카테고리의 다른 글
시스템 폴더의 실제 경로, 문자열 얻어 오기 (0) | 2010.02.14 |
---|---|
CWnd에 대하여 (0) | 2010.01.15 |
팝업 윈도우 만들기 (0) | 2009.12.27 |
task bar 감추기 (0) | 2009.12.27 |
Report 형식의 CListCtrl 에 자료 넣기 (3) | 2009.12.27 |