<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>같이 있는것이 당연하게 느껴지는 사람</title>
    <link>https://thunders.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Wed, 10 Jun 2026 21:06:34 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Thunders</managingEditor>
    <image>
      <title>같이 있는것이 당연하게 느껴지는 사람</title>
      <url>https://t1.daumcdn.net/cfile/tistory/265C433C56B001CD1A</url>
      <link>https://thunders.tistory.com</link>
    </image>
    <item>
      <title>모바일 시장 플래시 플레이어 포기</title>
      <link>https://thunders.tistory.com/entry/%EB%AA%A8%EB%B0%94%EC%9D%BC-%EC%8B%9C%EC%9E%A5-%ED%94%8C%EB%9E%98%EC%8B%9C-%ED%94%8C%EB%A0%88%EC%9D%B4%EC%96%B4-%ED%8F%AC%EA%B8%B0</link>
      <description>&lt;br /&gt;
인터넷 동영상 등에서 쓰는 플래시(flash) 플레이어를 개발했던 어도비 시스템스가 모바일 인터넷 시장에서 백기를 들었다. 플래시의 기술상 단점을 지적하면서 애플 제품에서 플래시 재생을 막아 온 고(故) 스티브 잡스의 견해를 인정한 셈이다.&lt;br /&gt;
&lt;br /&gt;어도비는 9일(현지시간) 성명을 통해 향후 모바일 인터넷 시장에서 차세대 웹 표준으로 각광받고 있는 'HTML5'와 관련된 기술 개발에 집중하겠다고 밝혔다. 앞서 외신들은 어도비가 자사의 고유 프로그램인 플래시를 모바일 시장에서 더 이상 개발하지 않을 것이라고 전했다.&lt;br /&gt;
&lt;br /&gt;어도비는 성명에서 &quot;우리는 지난 2년간 플래시 플레이어를 모바일 웹 브라우저에 제공하면서 많은 모바일 기기에서 웹 콘텐츠를 충분히 표현해 왔다&quot;고 말했다. 그러나 어도비는 &quot;HTML5가 전 세계 차원에서 지지를 받으면서 다양한 모바일 브라우저에서 콘텐츠를 창조하고 배치하는데 가장 좋은 방법이 됐다&quot;고 덧붙였다.&lt;br /&gt;
&lt;br /&gt;
&lt;TABLE style=&quot;BORDER-BOTTOM: rgb(204,204,204) 1px solid; BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 5px auto 10px; BACKGROUND: rgb(255,255,255); BORDER-TOP: rgb(204,204,204) 1px solid; BORDER-RIGHT: rgb(204,204,204) 1px solid&quot; cellSpacing=5 cellPadding=5 align=center&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=480&gt;&lt;IMG class=resize3 border=1 name=img_resize hspace=0 alt=&quot;&quot; src=&quot;http://image.pressian.com/images/2011/11/10/30111110115306.JPG&quot; width=480 height=480&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;LINE-HEIGHT: 15px; LETTER-SPACING: -0.05em; COLOR: rgb(119,119,119); FONT-SIZE: 11px&quot; width=480&gt;▲ 어도비 플래시 플레이어 로고. ⓒ어도비&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;br /&gt;
이러한 어도비의 결정은 모든 모바일 기기에서 이용 가능한 웹 표준을 지향하겠다는 뜻이지만 외신들은 어도비가 사실상 잡스의 비판을 수용한 것이나 마찬가지라고 평가했다. 인터넷 사이트의 85%, 인터넷 동영상의 75%, 인터넷 게임의 70%가 채택할 정도로 막강한 점유율을 자랑하던 어도비의 플래시를 모바일 인터넷 환경에서 가로막은 것은 애플이 유일했기 때문이다.&lt;br /&gt;
&lt;br /&gt;그 동안 애플의 아이폰과 아이패드는 웹 브라우저 '사파리'에서 플래시 동영상 재생 기능을 제공하지 않아왔다. 플래시 구현을 가능하게 하는 어도비의 애플리케이션(앱)의 채택 역시 거부했다. 반면에 블랙베리나 후발주자인 구글 안드로이드는 플래시를 받아들였다.&lt;br /&gt;
&lt;br /&gt;지난 해 스티브 잡스는 거부 이유에 대해 플래시가 보안 및 기술상의 약점을 갖고 있지만 어도비가 이를 제대로 해결되지 못했으며, 특히 모바일 기기에서 플래시를 재생할 때 성능 저하와 배터리 수명 고갈을 불러온다고 주장했다. 애플은 이후 동영상 사이트 '유튜브'를 소유한 구글을 설득해 유튜브 동영상 포맷을 플래시가 아닌 다른 기술로 채택하도록 하는 등 독자적인 모바일 웹 환경을 구축하기 위해 노력해 왔다.&lt;br /&gt;
&lt;br /&gt;어도비는 폭넓게 쓰이고 있는 자사의 기술이 애플의 '횡포' 때문에 가로막혀 애플 이용자들에게 불편을 주고 있다고 반박했지만, 이번에 플래시 포기 선언으로 결국 잡스의 주장을 받아들였다. 이날 애플은 어도비의 결정에 대한 입장을 밝히기 거부했다.&lt;br /&gt;
&lt;br /&gt;하지만 어도비가 플래시를 완전히 포기한 것은 아니다. 어도비는 성명을 통해 데스크톱 PC에서 구현되는 플래시 플레이어의 차기 버전을 준비하고 있다고 밝혔다. 또 모바일 시장에서도 웹 브라우저 분야는 포기했지만 플래시의 단점을 보완한 '어도비AIR'를 통해 모바일 앱 개발 사업을 강화할 계획이다.</description>
      <category>Interest News</category>
      <author>Thunders</author>
      <guid isPermaLink="true">https://thunders.tistory.com/39</guid>
      <comments>https://thunders.tistory.com/entry/%EB%AA%A8%EB%B0%94%EC%9D%BC-%EC%8B%9C%EC%9E%A5-%ED%94%8C%EB%9E%98%EC%8B%9C-%ED%94%8C%EB%A0%88%EC%9D%B4%EC%96%B4-%ED%8F%AC%EA%B8%B0#entry39comment</comments>
      <pubDate>Tue, 6 Dec 2011 20:57:01 +0900</pubDate>
    </item>
    <item>
      <title>MFC Afx의 의미</title>
      <link>https://thunders.tistory.com/entry/MFC-Afx%EC%9D%98-%EC%9D%98%EB%AF%B8</link>
      <description>MFC를 사용하다보면, AFX 라는 문구를 자주 볼 수 있다.&lt;br /&gt;
&lt;br /&gt;Application Framework 의 줄임말로&amp;nbsp; AFX를 쓰는데, 이는 MS의 MFC 개발 팀 이름이었다. &lt;br /&gt;
&lt;br /&gt;알고싶어서 찾아보았다. ^_^&lt;br /&gt;</description>
      <category>Computer Engineering/MFC</category>
      <author>Thunders</author>
      <guid isPermaLink="true">https://thunders.tistory.com/38</guid>
      <comments>https://thunders.tistory.com/entry/MFC-Afx%EC%9D%98-%EC%9D%98%EB%AF%B8#entry38comment</comments>
      <pubDate>Tue, 6 Dec 2011 20:47:40 +0900</pubDate>
    </item>
    <item>
      <title>Socket 핸들 관리</title>
      <link>https://thunders.tistory.com/entry/Socket-%ED%95%B8%EB%93%A4-%EA%B4%80%EB%A6%AC</link>
      <description>&lt;br /&gt;
한 프로그램 내에 스레드를 다중으로 사용하고, 그 속에서 Socket을 사용하다 이런 현상을 겪었다.&lt;br /&gt;
&amp;nbsp;메모리 관리(생성 및 릴리즈)도 중요하지만, 소켓 핸들 관리도 이에 못지 않게 중요하다.&lt;br /&gt;
Socket 생성 후, socketclose 해주지 않고 다른 소켓을 생성하는 식의 행동을 계속 하다보면 소켓 핸들은 계속 늘어나고, 더 이상 생성할 소켓이 없어지게 된다.&lt;br /&gt;
&lt;br /&gt;소켓은 최대 65535 (unsigned short) 개 생성할 수 있는데, 이를 넘어서게 되면 더 이상 소켓 생성을 허락하지 않는다.&lt;br /&gt;
&lt;br /&gt;조심해야 할 것이다. &lt;br /&gt;
&lt;br /&gt;이건 기술자료인가 일기인가..</description>
      <category>Computer Engineering/TCP/IP</category>
      <author>Thunders</author>
      <guid isPermaLink="true">https://thunders.tistory.com/37</guid>
      <comments>https://thunders.tistory.com/entry/Socket-%ED%95%B8%EB%93%A4-%EA%B4%80%EB%A6%AC#entry37comment</comments>
      <pubDate>Tue, 6 Dec 2011 20:29:25 +0900</pubDate>
    </item>
    <item>
      <title>싸이월드 사진 올리는 법</title>
      <link>https://thunders.tistory.com/entry/%EC%8B%B8%EC%9D%B4%EC%9B%94%EB%93%9C-%EC%82%AC%EC%A7%84-%EC%98%AC%EB%A6%AC%EB%8A%94-%EB%B2%95</link>
      <description>&lt;P&gt;&lt;br /&gt;
우리 아버지를 위해서. 이 자료를 만듭니다. 사진은 클릭하면 실제 크기로 볼 수 있겠죠?&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1306B6494EBFBD8E18&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1306B6494EBFBD8E18&quot; width=&quot;488&quot; height=&quot;313&quot; alt=&quot;&quot; filename=&quot;photoup.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/div&gt;
&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;처음은 사진 올리기!&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1506B6494EBFBD8F19&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1506B6494EBFBD8F19&quot; width=&quot;488&quot; height=&quot;313&quot; alt=&quot;&quot; filename=&quot;added.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/div&gt;
&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;그리고 제목과 내용을 쓰고 첨부 클릭!&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1206B6494EBFBD901A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1206B6494EBFBD901A&quot; width=&quot;488&quot; height=&quot;430&quot; alt=&quot;&quot; filename=&quot;multiple.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/div&gt;
&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;그리고 여러장 올리기를 누릅니다.&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1306B6494EBFBD901B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1306B6494EBFBD901B&quot; width=&quot;488&quot; height=&quot;413&quot; alt=&quot;&quot; filename=&quot;added_.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/div&gt;
&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;그 후, 사진 첨부하기!&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1506B6494EBFBD911C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1506B6494EBFBD911C&quot; width=&quot;488&quot; height=&quot;290&quot; alt=&quot;&quot; filename=&quot;select_computer.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/div&gt;
&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;그리고 화면이 나오면 컴퓨터를 눌러서&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1606B6494EBFBD911D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1606B6494EBFBD911D&quot; width=&quot;488&quot; height=&quot;290&quot; alt=&quot;&quot; filename=&quot;disk.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/div&gt;
&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;이동식 디스크를 누릅니다.!&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1706B6494EBFBD911E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1706B6494EBFBD911E&quot; width=&quot;488&quot; height=&quot;290&quot; alt=&quot;&quot; filename=&quot;dcim.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/div&gt;
&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;그리고 DCIM 을 선택하고&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1906B6494EBFBD921F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1906B6494EBFBD921F&quot; width=&quot;488&quot; height=&quot;290&quot; alt=&quot;&quot; filename=&quot;camera.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/div&gt;
&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;Camera 를 선택하여 휴대폰에 있는 사진을 볼 수 있도록 합니다.&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1806B6494EBFBD9220&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1806B6494EBFBD9220&quot; width=&quot;488&quot; height=&quot;214&quot; alt=&quot;&quot; filename=&quot;select_all.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/div&gt;
&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;그리고 거기 있는 파일을 마우스로 전체 다 선택해서 열기! 를 누릅니다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1906B6494EBFBD9221&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1906B6494EBFBD9221&quot; width=&quot;488&quot; height=&quot;413&quot; alt=&quot;&quot; filename=&quot;end.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/div&gt;
&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;그리고 등록하기를 누르고&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1106B6494EBFBD9322&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1106B6494EBFBD9322&quot; width=&quot;488&quot; height=&quot;313&quot; alt=&quot;&quot; filename=&quot;reallyEnd.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/div&gt;
&lt;/P&gt;
&lt;P&gt;마지막으로 확인을 눌러주시면 됩니다. ^^&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
아고 힘들어..ㅎㅎㅎ&lt;br /&gt;
&lt;br /&gt;&lt;/P&gt;</description>
      <category>Enjoy</category>
      <author>Thunders</author>
      <guid isPermaLink="true">https://thunders.tistory.com/36</guid>
      <comments>https://thunders.tistory.com/entry/%EC%8B%B8%EC%9D%B4%EC%9B%94%EB%93%9C-%EC%82%AC%EC%A7%84-%EC%98%AC%EB%A6%AC%EB%8A%94-%EB%B2%95#entry36comment</comments>
      <pubDate>Sun, 13 Nov 2011 21:56:00 +0900</pubDate>
    </item>
    <item>
      <title>이런 남자와 만나지 말라?!</title>
      <link>https://thunders.tistory.com/entry/%EC%9D%B4%EB%9F%B0-%EB%82%A8%EC%9E%90%EC%99%80-%EB%A7%8C%EB%82%98%EC%A7%80-%EB%A7%90%EB%9D%BC</link>
      <description>&lt;br /&gt;

&lt;H3 class=articleSubecjt&gt;데이트 피하는 게 좋은 다섯 부류 남자&lt;/H3&gt;&lt;SPAN class=link&gt;&lt;A class=medium onclick=&quot;ndrclick('RMV00');&quot; href=&quot;http://news.nate.com/mediaList?cp=no&quot;&gt;&lt;FONT color=#b89494 size=2&gt;서울신문&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#777777 size=2&gt; &lt;/FONT&gt;&lt;A class=articleOriginal title=원문보기 onclick=&quot;ndrclick('RMV01');&quot; href=&quot;http://www.seoul.co.kr/news/newsView.php?id=20091018500003&quot; target=_blank&gt;&lt;FONT color=#999999 size=2&gt;원문&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#777777 size=2&gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN class=firstDate&gt;&lt;FONT size=2&gt;&lt;FONT color=#777777&gt;기사전송 &lt;/FONT&gt;&lt;FONT color=#999999&gt;2009-10-18 15:01&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt; &lt;SPAN class=lastDate&gt;&lt;FONT size=2&gt;&lt;FONT color=#777777&gt;최종수정 &lt;/FONT&gt;&lt;FONT color=#999999&gt;2009-10-18 15:36&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt; &lt;br /&gt;

&lt;DIV class=&quot;articleMedia mediaImageZoom &quot; id=articleImage0 style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;SPAN class=imageZoom&gt;&lt;IMG style=&quot;CURSOR: hand&quot; onclick=GoImg(this.src) alt=&quot;&quot; onerror=blankImg(this,0,0); src=&quot;http://nimg.nate.com/orgImg/no/2009/10/18/SSI_20091018145205_V.jpg&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;!-- 기사 추가 이미지 --&gt;
&lt;DIV class=&quot;articleMedia mediaImageZoom &quot; id=articleImage1 style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;SPAN class=imageZoom&gt;&lt;IMG style=&quot;CURSOR: hand&quot; onclick=GoImg(this.src) alt=&quot;&quot; onerror=blankImg(this,0,0); src=&quot;http://nimg.nate.com/orgImg/no/2009/10/18/SSI_20091018145118_V.jpg&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class=&quot;articleMedia mediaImageZoom &quot; id=articleImage1 style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;/DIV&gt;&lt;!-- 기사 추가 이미지 --&gt;
&lt;DIV class=&quot;articleMedia mediaImageZoom &quot; id=articleImage2 style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;SPAN class=imageZoom&gt;&lt;IMG style=&quot;CLEAR: none; FLOAT: none; CURSOR: hand&quot; onclick=GoImg(this.src) alt=&quot;&quot; onerror=blankImg(this,0,0); src=&quot;http://nimg.nate.com/orgImg/no/2009/10/18/SSI_20091018145303_V.jpg&quot;&gt;&amp;nbsp;&lt;SPAN id=tx_beforestart_mark&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class=&quot;articleMedia mediaImageZoom &quot; id=articleImage2&gt;&lt;SPAN id=tx_afterend_mark&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P class=articleSubecjt&gt;&lt;!-- 기사 내용 --&gt;[서울신문]데이트나 맞선 보러 나갈 때 잘못된 인연의 끈이 맺어질지 모른다는 두려움을 적지 않은 여성들이 갖고 있을 것이다.물론 남성도 마찬가지겠지만.&lt;br /&gt;
&lt;br /&gt;하지만 상대가 좋은 남자인지 아닌지를 금세 알아채는 것은 그리 쉬운 일이 아니라고 야후! 닷컴의 여성 전문 블로그 ‘샤인’의 ‘스타일캐스터’는 지적한다.”물론 모든 남자가 괜찮고 만날 가치가 있다고 생각할 수도 있겠지만 남자들과 볼 일 없다거나 차라리 한평생 하느님을 섬기며 수녀로 살아가는 게 낫다고 생각할 수도 있다.”고 전한 이 블로거는 꼭 피해야 할 데이트 상대 가려내는 법을 다음 다섯 가지로 정리했다.&lt;br /&gt;
&lt;br /&gt;　각자 생각이 다를 것이다.특정 직업에 종사하는 이들을 비아냥대는 게 걸리는 이들도 있을 것이다.그냥 쉽게 ‘어떤 미국 여인이 이런 남자들을 피하는 것이 좋지 않겠느냐고 조언하더라.’고 여겨주시면 좋겠다.&lt;br /&gt;
&lt;br /&gt;●&lt;STRONG&gt;엄마와 함께 사는 남자&lt;br /&gt;
&lt;br /&gt;&lt;/STRONG&gt;　이런 남자를 만나면 편하게 ‘그래,가족들을 돌봐야 하는가 보군.’이라거나 ‘아주 잠깐,돈을 아끼려고 그러는 걸거야.’라고 생각하기 쉽다.절대 안된다.자기 엄마가 드라마 ‘위기의 주부들’을 보는 날이기 때문에 여자를 집에 들일 수 없다고 말하는 남자라면 가능한 빨리 헤어지는 게 좋다.반대로 당신 아파트에 어떤 남자도 발을 들여놓아선 안되고,남자 집에서 화장실을 쓰려고 부모들 방 앞을 지나갈 때에는 부끄러움에 살금살금 걸어야 한다고 그 남자가 우길지 모른다.장성한 이들이 독립하지 않고 부모 집에 얹혀 산다면 여성과의 교제를 포기하겠다는 것으로밖에 받아들일 수 없다.&lt;br /&gt;
&lt;br /&gt;●&lt;STRONG&gt;늘 블루투스 끼고 다니는 남자&lt;br /&gt;
&lt;br /&gt;&lt;/STRONG&gt;　통신회사인 버라이즌에 다니지 않는다면 보통 사람들처럼 전화기를 들고 얘기해선 안되는 변명이 되지 않는다.이런 남자들은 1985년에 공연 도중 헤드셋을 낀 채 노래 불렀던 마돈나나 드라이브-스루(운전석에 앉은 채로 주문할 수 있는 가게) 점원처럼 보일 것이다.당신을 만났을 때마저 블루투스를 빼놓지 않는다면 그건 당신을 아랑곳하지 않겠다는 것이나 진배 없다.당신은 중요한 전화가 걸려올 때까지 시간 때우기용에 지나지 않을 것이다.&lt;br /&gt;
&lt;br /&gt;●&lt;STRONG&gt;명품 따지는 남자&lt;br /&gt;
&lt;br /&gt;&lt;/STRONG&gt;　옷 잘 입는 남자가 나쁠 건 없다.하지만 당신이 신은 구두 브랜드 ‘Miu Miu’가 얼마나 요즘의 유행을 반영하는지,또 당신 가방이 자기가 지난 주에 봤던 다른 명품 부츠와 더 잘 어울린다고 말하는 남자라면 당장 그만 둬라.’Mr. I Know My Prada(프라다를 잘 아는 아자씨)’라 해도 괜찮을 이런 남자는 동성애자이거나 당신보다 훨씬 뛰어난 참견쟁이일 수 있다.여자와 쇼핑가는 걸 즐기는 남자라면 당신이 옷장에 꼭꼭 감춰놓은 별볼일 없는 브랜드 옷들에 이런저런 품평을 늘어놓기 십상일 것이다.혹시 그가 남자를 좋아하는 것으로 의심이 든다면 위의 블루투스 남자에게 보내버려라.&lt;br /&gt;
&lt;br /&gt;●&lt;STRONG&gt;클럽에 줄 잘 대는 남자&lt;br /&gt;
&lt;br /&gt;&lt;/STRONG&gt;　’물 좋은’ 나이트클럽에 줄 서지 않고 곧장 입장하거나 공짜로 나눠주는 술 받아오는 걸 훌륭한 능력이라고 생각할 수 있지만 클럽에 아는 사람 많은 남자와 데이트하면 큰 일 난다.지방에서 올라온 고교 동창들 앞에서 ‘간지 나는’ 일은 될 수 있겠지만 그 동창들은 돌아가 험담하기 바쁠 것이고 당신이 미처 준비되지 않은 문제들을 일으킬 수 있다.그런 남자들은 일류모델 릴리 도날슨에게 소개시켜주겠다고 말했다가 마지막 순간 꽁무니를 빼거나 일이 안 좋게 돌아가면 당신이 더 이상 이런 클럽에도 못 드나들게 만들 수 있다.&lt;br /&gt;
&lt;br /&gt;●&lt;STRONG&gt;폴로 셔츠를 즐겨 입는 ‘범생이’&lt;br /&gt;
&lt;br /&gt;&lt;/STRONG&gt;미국의 대학 캠퍼스 기숙사 등에서 스프레이 선탠을 즐기는 학생들을 볼 수 있다.그것만큼이나 흔하게 볼 수 있는 것이 (목의) 칼라 부분만 다른 색으로 도드라져 보이는 폴로 셔츠들이다.대학 운동선수들이 즐겨 쓰는 표현을 인용하자면 ‘비어 퐁(탁구대 양쪽 끝에 맥주가 담긴 컵을 세워놓고 탁구공을 던져 컵에 들어가면 상대가 맥주를 마시는 게임)’을 우유로 하는 애들보다 차라리 머리칼 헝클어진 축구선수와 사귀는게 낫다.이유를 설명할 수는 없다.그저 그런 남자들이 (사귀기에) 낫기 때문이다.&lt;br /&gt;
&lt;br /&gt;인터넷서울신문 &lt;A href=&quot;mailto:event@seoul.co.kr&quot;&gt;&lt;FONT color=#666666&gt;event@seoul.co.kr&lt;/FONT&gt;&lt;/A&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;HR style=&quot;BORDER-TOP-WIDTH: 1px; DISPLAY: block; BORDER-LEFT-WIDTH: 0px; BORDER-LEFT-COLOR: black; BORDER-BOTTOM-WIDTH: 0px; BORDER-BOTTOM-COLOR: black; BORDER-TOP-COLOR: black; HEIGHT: 1px; BORDER-RIGHT-WIDTH: 0px; BORDER-RIGHT-COLOR: black&quot;&gt;
&lt;/DIV&gt;
&lt;P class=articleSubecjt&gt;&lt;br /&gt;
난 이런 사람 아니니깐!! 훗...ㅋㅋㅋ&lt;br /&gt;
&lt;/P&gt;</description>
      <category>Interest News</category>
      <author>Thunders</author>
      <guid isPermaLink="true">https://thunders.tistory.com/35</guid>
      <comments>https://thunders.tistory.com/entry/%EC%9D%B4%EB%9F%B0-%EB%82%A8%EC%9E%90%EC%99%80-%EB%A7%8C%EB%82%98%EC%A7%80-%EB%A7%90%EB%9D%BC#entry35comment</comments>
      <pubDate>Sun, 18 Oct 2009 18:08:18 +0900</pubDate>
    </item>
    <item>
      <title>MFC Tip</title>
      <link>https://thunders.tistory.com/entry/MFC-Tip</link>
      <description>&lt;br /&gt;
&lt;PRE&gt;1. DC얻기 

  CClientDC dc(&lt;FONT class=key&gt;this&lt;/FONT&gt;); 

 


2. Client 영역 구하기 

  GetClientRect(&amp;amp;rect); 

  WM_SIZE 메시지발생후 cx,cy 사용 

 


3. 문자열 사각형안에 그리기 

  pDC-&amp;gt;DrawText(문자열,사각형,Style); 

  Style: DT_BOTTOM - 문자열을 사각형 맨아래줄에배열 반드시 DT_SINGLELINE과 함께사용 

        DT_CENTER - 문자열을 가로중앙에 배치 

        DT_VCENTER - 문자열을 세로중앙에 배치 

        DT_LEFT,RIGHT - 문자열을 좌,우로 배치 

        DT_SINGLELINE - 문자열을 한줄로만 쓴다 

 


4. Brush 사용법 

  CBrush brushname(RGB(red,green,blue)); &lt;FONT class=com&gt;//브러쉬 생성 &lt;/FONT&gt;

  CBrush *oldBrush=pDC-&amp;gt;SelectObject(&amp;amp;brushname); &lt;FONT class=com&gt;//이전Brush 저장, 새로운 Brush 선택 &lt;/FONT&gt;

  pDC-&amp;gt;SelectObject(oldBrush); &lt;FONT class=com&gt;//원래의 브러쉬로 반환 &lt;/FONT&gt;

 


5. Pen사용법 

  CPen pen(Pen Style,RGB(red,green,blue)); &lt;FONT class=com&gt;//브러쉬생성 &lt;/FONT&gt;

&lt;FONT class=com&gt;//Style: PS_SOLID,PS_DASH,PS_DOT,PS_DASHDOT,PS_GEOMETRIC,PS_COSMETRIC - 펜종류 &lt;/FONT&gt;

        PS_ENDCAP_ROUND,PS_ENDCAP_SQUARE - 펜끝을 둥글게,각지게 설정 

  CPen *oldPen=pDC-&amp;gt;SelectObject(&amp;amp;pen); &lt;FONT class=com&gt;//이전Pen저장, 새로운 Pen설정 &lt;/FONT&gt;

  pDC-&amp;gt;SelectObject(oldPen); &lt;FONT class=com&gt;//펜반환 &lt;/FONT&gt;

 


6. 화면다시그리기 

  View Class에서 - Invalidate(TRUE) : 화면을 지우고다시그린다 

                    Invalidate(FALSE) : 화면을 덮어씌운다 

  UpdateAllViews(NULL);  &lt;FONT class=com&gt;// Doc Class에서 View 의 OnDraw 호출 &lt;/FONT&gt;

  RedrawWindow(); 

 


7. 메시지,함수 수동으로 넣기 (EX)버튼클릭함수넣기 

  헤더파일의 AFX_MSG_MAP 부분에 함수를 정의 

  EX) afx_msg &lt;FONT class=key&gt;void&lt;/FONT&gt; funcName(); 

  .cpp파일의 AFX_MSG 부분에 메시지를 추가한다 

  EX) ON_BN_CLICKED(ID_NAME,funcName)... 

  ID 등록:  View 메뉴의 Resource Symbol 에 들어가서 메뉴 ID 를 등록해준다.. 

  .cpp파일의 맨아래에서 함수를 정의한다 

  EX) &lt;FONT class=key&gt;void&lt;/FONT&gt; CClass::funcName() { ... } 

 


8. 마우스커서 바꾸기 

  리소스탭에서 커서를 그리고 저장한뒤 ID값은 준다음 

  SetCapture(); &lt;FONT class=com&gt;//커서의입력을 클라이언트영역을 벗어나더라도 받아낸다 &lt;/FONT&gt;

  SetCursor(AfxGetApp()-&amp;gt;LoadCursor(nIDResource)); 

  &lt;FONT class=com&gt;//APP클래스의 LoadCursor View의 SetCursor 사용 &lt;/FONT&gt;

  ReleaseCapture(); &lt;FONT class=com&gt;//SetCursor()상태를 해제한다 &lt;/FONT&gt;

 


9. 색상표 사용하기 

  CColorDialog dlg; 

  &lt;FONT class=key&gt;if&lt;/FONT&gt;(dlg.DoModal()==IDOK) &lt;FONT class=com&gt;//Dialog 를 띄운후 OK버튼을누르면 실행할부분 &lt;/FONT&gt;

  MemberFunc: GetColor() &lt;FONT class=com&gt;//선택된 색상을 받아온다 return 형은 COLORREF 형 &lt;/FONT&gt;

 


10. 팝업메뉴 만들기 

  CMenu menu; &lt;FONT class=com&gt;//메뉴 객체생성 &lt;/FONT&gt;

  CMenu *pmenu; &lt;FONT class=com&gt;//메뉴 포인터생성 &lt;/FONT&gt;

  menu.LoadMenu(IDR_MAINFRAME); &lt;FONT class=com&gt;//메뉴를 불러온다 &lt;/FONT&gt;

  pmenu=menu.GetSubMenu(3); &lt;FONT class=com&gt;//메뉴의 3번째 메뉴를 가져온다 &lt;/FONT&gt;

  menu.CheckMenuItem(ID_MENU,m_kind==ID_MENU ? MF_CHECKED : MF_UNCHECKED); 

  &lt;FONT class=com&gt;//메뉴 체크하기 (메뉴 ID, ID 체크조건) &lt;/FONT&gt;

  pmenu-&amp;gt;TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,&lt;FONT class=key&gt;this&lt;/FONT&gt;)  &lt;FONT class=com&gt;//(TMP_Style,x좌표,y좌표,hWnd) 메뉴 띄우기 &lt;/FONT&gt;

 


  *주의사항* 

    [안내]태그제한으로등록되지않습니다-OnContextMenu(CWnd* pWnd, CPoint point)  &lt;FONT class=com&gt;//여기서 point 는 스크린 기준이고, &lt;/FONT&gt;

    OnRButtonDown(UINT nFlags, CPoint point)  &lt;FONT class=com&gt;//여기서 point 는 클라이언트 기준이다! &lt;/FONT&gt;

 


11. 클라이언트 포인터를 스크린 포인터로 변경 

  ClientToScreen(&amp;amp;point); 

 


12. 그림판기능 

         &lt;FONT class=key&gt;if&lt;/FONT&gt;(m_flag==FALSE)  &lt;FONT class=key&gt;return&lt;/FONT&gt;;   &lt;FONT class=com&gt;//m_falg=그리기 기능 참,거짓설정  그리기 아니면 빠져나간다 &lt;/FONT&gt;

        CClientDC dc(&lt;FONT class=key&gt;this&lt;/FONT&gt;); 

        CPen myPen(PS_SOLID,m_width,m_color); 

        CPen *pOldPen=dc.SelectObject(&amp;amp;myPen); 

        &lt;FONT class=key&gt;switch&lt;/FONT&gt;(m_shape) 

        { 

        &lt;FONT class=key&gt;case&lt;/FONT&gt; ID_FREELINE: &lt;FONT class=com&gt;//자유선그리기 &lt;/FONT&gt;

                dc.MoveTo(m_oldpt.x,m_oldpt.y); &lt;FONT class=com&gt;//지난포인터부터 &lt;/FONT&gt;

                dc.LineTo(point.x,point.y); &lt;FONT class=com&gt;//새포인터까지 그린다 &lt;/FONT&gt;

                &lt;FONT class=key&gt;break&lt;/FONT&gt;; 

        &lt;FONT class=key&gt;case&lt;/FONT&gt; ID_RECT: &lt;FONT class=com&gt;//사각형그리기 &lt;/FONT&gt;

                dc.SetROP2(R2_NOTXORPEN); 

                dc.Rectangle(m_spt.x,m_spt.y,m_oldpt.x,m_oldpt.y);  &lt;FONT class=com&gt;//지워지는 효과 &lt;/FONT&gt;

                dc.Rectangle(m_spt.x,m_spt.y,point.x,point.y); &lt;FONT class=com&gt;//그려지는 효과 &lt;/FONT&gt;

                &lt;FONT class=key&gt;break&lt;/FONT&gt;; 

        &lt;FONT class=key&gt;case&lt;/FONT&gt; ID_ELLIPSE: &lt;FONT class=com&gt;//원그리기 &lt;/FONT&gt;

                dc.SetROP2(R2_NOTXORPEN); 

                dc.Ellipse(m_spt.x,m_spt.y,m_oldpt.x,m_oldpt.y);  &lt;FONT class=com&gt;//지워지는 효과 &lt;/FONT&gt;

                dc.Ellipse(m_spt.x,m_spt.y,point.x,point.y); &lt;FONT class=com&gt;//그려지는 효과 &lt;/FONT&gt;

                &lt;FONT class=key&gt;break&lt;/FONT&gt;; 

        &lt;FONT class=key&gt;case&lt;/FONT&gt; ID_LINE: &lt;FONT class=com&gt;//선그리기 &lt;/FONT&gt;

                dc.SetROP2(R2_NOTXORPEN); 

                dc.MoveTo(m_spt.x,m_spt.y); &lt;FONT class=com&gt;//시작점부터 &lt;/FONT&gt;

                dc.LineTo(m_oldpt.x,m_oldpt.y); &lt;FONT class=com&gt;//지난점까지 그은선을 지운다 &lt;/FONT&gt;

                dc.MoveTo(m_spt.x,m_spt.y); &lt;FONT class=com&gt;//시작점부터 &lt;/FONT&gt;

                dc.LineTo(point.x,point.y); &lt;FONT class=com&gt;//새로운점까지 그린다 &lt;/FONT&gt;

                &lt;FONT class=key&gt;break&lt;/FONT&gt;; 

        } 

        m_oldpt=point;  &lt;FONT class=com&gt;//바로이전값 보관 &lt;/FONT&gt;

        dc.SelectObject(pOldPen); &lt;FONT class=com&gt;//펜 반환 &lt;/FONT&gt;


13. MessageBox 

  AfxMessageBox() -&amp;gt; 전역함수를 이용하영 메세지 박스를 출력한다.   &lt;FONT class=com&gt;//어디서든지 사용할수 잇다 &lt;/FONT&gt;

  &lt;FONT class=key&gt;int&lt;/FONT&gt; CWnd::MessageBox(&quot;&lt;FONT class=chr&gt;메세지&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;창제목&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;아이콘|버튼(상수값)&lt;/FONT&gt;&quot;);   &lt;FONT class=com&gt;//View클래스에서 사용한다 &lt;/FONT&gt;

  아이콘 상수값  MB_IC[안내]태그제한으로등록되지않습니다-xxONERROR, MB_ICONWARNING, MB_ICONQUESTION,MB_ICONINFOMATION 

                MB_SYSTEMMODAL &lt;FONT class=com&gt;//시스템모달 대화창 닫기전에 다른작업 못함 &lt;/FONT&gt;

                MB_APPLMODAL &lt;FONT class=com&gt;//응용모달 &lt;/FONT&gt;

  버튼 상수값    MB_OK, MB_OKCANCEL, MB_YESNO 

 


14. OS 컨트롤 

        ExitWindowEx(EWX_SHUTDOWN,NULL); &lt;FONT class=com&gt;//Shut Down &lt;/FONT&gt;

        ExitWindowsEx(EWX_FORCE,0); &lt;FONT class=com&gt;//강제종료 &lt;/FONT&gt;

        ExitWindowsEx(EWX_LOGOFF,0); &lt;FONT class=com&gt;//로그오프 &lt;/FONT&gt;

        ExitWindowsEx(EWX_POWEROFF,0); &lt;FONT class=com&gt;//Shut Down -&amp;gt; Turn Off &lt;/FONT&gt;

        ExitWindowsEx(EWX_REBOOT); &lt;FONT class=com&gt;//Shut Down -&amp;gt; Reboot &lt;/FONT&gt;

 


15. DialogBox 메시지 교환 

        UpdateData(FALSE); &lt;FONT class=com&gt;// 컨트롤에 멤버변수의 내용을 표시해준다 &lt;/FONT&gt;

        UpdateData(TRUE);  &lt;FONT class=com&gt;// 컨트롤 내용을 다이얼로그 클래스의 멤버변수로 저장 &lt;/FONT&gt;

 


16. 자료변환 

        atoi,itoa - &lt;FONT class=key&gt;int&lt;/FONT&gt; &amp;lt;=&amp;gt; ASCII(&lt;FONT class=key&gt;char&lt;/FONT&gt;) 변환 

        str.Format(&quot;&lt;FONT class=chr&gt; %d %d&lt;/FONT&gt;&quot;,x,y); &lt;FONT class=com&gt;// int형을 문자열로 변환 &lt;/FONT&gt;

        atol,ltoa - ASCII &amp;lt;=&amp;gt; &lt;FONT class=key&gt;long&lt;/FONT&gt; 변환 

        atof - ACSII =&amp;gt; &lt;FONT class=key&gt;float&lt;/FONT&gt; 변환 

        fcvt,gcvt  - 실수를 text로 변환 

        LPtoDP, DPtoLP - 장치좌표 &amp;lt;=&amp;gt; 논리좌표 변환 

 


17. CEdit Class 사용하기 

  CEdit e_str.SetSel(&lt;FONT class=key&gt;int&lt;/FONT&gt; StartChae, &lt;FONT class=key&gt;int&lt;/FONT&gt; EndChar); &lt;FONT class=com&gt;//처음문자부터 마지막까지 블록 지정 &lt;/FONT&gt;

  CEdit e_str.GetSel(&lt;FONT class=key&gt;int&lt;/FONT&gt; SChar,&lt;FONT class=key&gt;int&lt;/FONT&gt; EChar); &lt;FONT class=com&gt;//블럭 지정한 처음문자와 마지막문자 받기 &lt;/FONT&gt;

  CString str=m_str.Mid(SChar,EChar-SChar); &lt;FONT class=com&gt;//블럭지정한 부분을 가져온다 &lt;/FONT&gt;


18. 컨트롤과 자료교환 

  SetDlgItemText(컨트롤 ID,문자열) &lt;FONT class=com&gt;//컨트롤에 문자열을 넣는다 &lt;/FONT&gt;

  GetDlgItemText(컨트롤 ID,문자열) &lt;FONT class=com&gt;//컨트롤의 내용을 문자열에 넣는다 &lt;/FONT&gt;

  GetDlgItem(컨트롤 ID); &lt;FONT class=com&gt;//컨트롤의 주소를 가져온다 &lt;/FONT&gt;


19. 상태바조작 

  CMainFrame 생성자 위에 

  &lt;FONT class=key&gt;static&lt;/FONT&gt; UINT indicators[] = &lt;FONT class=com&gt;//이안에 새로운 ID를 넣고 그 ID의 갱신핸들러를 만든다음 코딩 &lt;/FONT&gt;

  pCmdUI-&amp;gt;SetText(&quot;&lt;FONT class=chr&gt;표시할내용“); 

 


20. 수동으로 Bitmap 컨트롤 사용하기 

  CStatic bitmap; //bitmap 컨트롤변수 

  bitmap.SetBitmap(CBitmap m_bitmap); //컨트롤에 비트맵지정 

  GetDlgItem(IDC_BITMAP)-&amp;gt;ShowWindow(SW_SHOW,HIDE);  // 그림을 보이거나 숨긴다. 

   

21. 응용프로그램 실행하기 

  WinExec(&lt;/FONT&gt;&quot;프로그램경로“,SW_SHOW,HIDE); &lt;FONT class=com&gt;//응용프로그램실행,경로는 \\로 구분한다 &lt;/FONT&gt;

 


22. Bitmap 사용하기 

  CBitmap bitmap.LoadBitmap(IDC_BITMAP); &lt;FONT class=com&gt;//비트맵객체에 비트맵지정 &lt;/FONT&gt;

  CDC memDC; &lt;FONT class=com&gt;//그림그릴 메모리DC생성 &lt;/FONT&gt;

  MemDC.CreateCompatibleDC(pDC); &lt;FONT class=com&gt;//화면 DC와 메모리 DC 호환 생성 &lt;/FONT&gt;

  CBitmap *pOldBitmap=MemDC.SelectObject(&amp;amp;m_bitmap); &lt;FONT class=com&gt;//메모리에 그림을그린다. &lt;/FONT&gt;

  pDC-&amp;gt;BitBlt(&lt;FONT class=key&gt;int&lt;/FONT&gt; x, &lt;FONT class=key&gt;int&lt;/FONT&gt; y,&lt;FONT class=key&gt;int&lt;/FONT&gt; Width, &lt;FONT class=key&gt;int&lt;/FONT&gt; Height, CDC* pSrcDC, &lt;FONT class=key&gt;int&lt;/FONT&gt; xSrc, &lt;FONT class=key&gt;int&lt;/FONT&gt; ySrc, DWORD dwRop); 

&lt;FONT class=com&gt;//BitBlt(그림x좌표,그림y좌표,그림넓이,그림높이,그림그려진메모리DC,그림시작x좌표,그림시작y좌표,스타일); &lt;/FONT&gt;

  pDC-&amp;gt;StretchBlt( &lt;FONT class=key&gt;int&lt;/FONT&gt; x, &lt;FONT class=key&gt;int&lt;/FONT&gt; y, &lt;FONT class=key&gt;int&lt;/FONT&gt; nWidth, &lt;FONT class=key&gt;int&lt;/FONT&gt; nHeight, CDC* pSrcDC, &lt;FONT class=key&gt;int&lt;/FONT&gt; xSrc, &lt;FONT class=key&gt;int&lt;/FONT&gt; ySrc, &lt;FONT class=key&gt;int&lt;/FONT&gt; nSrcWidth, &lt;FONT class=key&gt;int&lt;/FONT&gt; nSrcHeight, DWORD dwRop ) 

&lt;FONT class=com&gt;//StretchBlt(그림x좌표,그림y좌표,그림넓이,그림높이,그림그려진메모리DC,그림x좌표,그림y좌표,메모리그림넓이,메모리그림높이,스타일); &lt;/FONT&gt;

MemDC.SelectObject(pOldBitmap); &lt;FONT class=com&gt;// 메모리DC반환 &lt;/FONT&gt;

 


23. Font 바꾸기 

  CFontDialog dlg; &lt;FONT class=com&gt;//폰트다이얼로그 생성 &lt;/FONT&gt;

  LOGFONT m_logFont; &lt;FONT class=com&gt;//폰트받을변수선언 &lt;/FONT&gt;

  &lt;FONT class=key&gt;if&lt;/FONT&gt;(dlg.DoModal()==IDOK) &lt;FONT class=com&gt;//폰트다이얼로그표시 &lt;/FONT&gt;

  {dlg.GetCurrentFont(&amp;amp;m_logFont)} &lt;FONT class=com&gt;//선택된 폰트받기 &lt;/FONT&gt;

  OnDraw() 

   CFont newFont,*pOldFont; &lt;FONT class=com&gt;//폰트 객체 만들기 &lt;/FONT&gt;

   newFont.CreateFontIndirect(&amp;amp;m_logFont); &lt;FONT class=com&gt;//폰트 생성 &lt;/FONT&gt;

   pOldFont=(CFont *)pDC-&amp;gt;SelectObject(&amp;amp;newFont); &lt;FONT class=com&gt;//폰트 선택 &lt;/FONT&gt;

   OnCreate() 

   CClientDC dc(&lt;FONT class=key&gt;this&lt;/FONT&gt;); &lt;FONT class=com&gt;//DC 생성 &lt;/FONT&gt;

   CFont *pFont=dc.GetCurrentFont();        &lt;FONT class=com&gt;//클라이언트 영역의 폰트를 &lt;/FONT&gt;

   pFont-&amp;gt;GetLogFont(&amp;amp;m_logFont); &lt;FONT class=com&gt;//로그폰트 멤버값으로 지정 &lt;/FONT&gt;

 


24. Font 만들기 

         LOGFONT logfont; &lt;FONT class=com&gt;//폰트를 만든다 &lt;/FONT&gt;

        logfont.lfHeight=50;               &lt;FONT class=com&gt;//문자열 높이 &lt;/FONT&gt;

        logfont.lfWidth=0;                 &lt;FONT class=com&gt;//너비 &lt;/FONT&gt;

        logfont.lfEscapement=0;            &lt;FONT class=com&gt;//문자열기울기 &lt;/FONT&gt;

        logfont.lfOrientation=0;             &lt;FONT class=com&gt;//문자개별각도 &lt;/FONT&gt;

        logfont.lfWeight=FW_NORMAL;     &lt;FONT class=com&gt;//굵기 &lt;/FONT&gt;

        logfont.lfItalic=TRUE;             &lt;FONT class=com&gt;//이탤릭 &lt;/FONT&gt;

        logfont.lfUnderline=TRUE;  &lt;FONT class=com&gt;//밑줄 &lt;/FONT&gt;

        logfont.lfStrikeOut=FALSE; &lt;FONT class=com&gt;//취소선 &lt;/FONT&gt;

        logfont.lfCharSet=HANGUL_CHARSET; &lt;FONT class=com&gt;//필수 &lt;/FONT&gt;

        logfont.lfOutPrecision=OUT_DEFAULT_PRECIS;                

        logfont.lfClipPrecision=CLIP_DEFAULT_PRECIS;      &lt;FONT class=com&gt;//가변폭폰트 고정폭폰트 &lt;/FONT&gt;

        logfont.lfPitchAndFamily=DEFAULT_PITCH|FF_SWISS; &lt;FONT class=com&gt;//글꼴이름 &lt;/FONT&gt;

        strcpy(logfont.lfFaceName,&quot;&lt;FONT class=chr&gt;궁서체&lt;/FONT&gt;&quot;); 

        CClientDC dc(&lt;FONT class=key&gt;this&lt;/FONT&gt;); 

        CFont newFont; &lt;FONT class=com&gt;//폰트객체생성 &lt;/FONT&gt;

        newFont.CreateFontIndirect(&amp;amp;logfont); &lt;FONT class=com&gt;//폰트지정 &lt;/FONT&gt;

        CFont *pOldFont=dc.SelectObject(&amp;amp;newFont); &lt;FONT class=com&gt;//폰트선택 &lt;/FONT&gt;

        dc.TextOut(100,100,m_text); 

        dc.SelectObject(pOldFont); &lt;FONT class=com&gt;//폰트반환 &lt;/FONT&gt;

 


25. Font 만들기 2 

  CFont newFont; 

  newFont.CreateFont( &lt;FONT class=key&gt;int&lt;/FONT&gt; nHeight, &lt;FONT class=key&gt;int&lt;/FONT&gt; nWidth, &lt;FONT class=key&gt;int&lt;/FONT&gt; nEscapement, &lt;FONT class=key&gt;int&lt;/FONT&gt; nOrientation, &lt;FONT class=key&gt;int&lt;/FONT&gt; nWeight, BYTE bItalic, BYTE bUnderline, BYTE cStrikeOut, BYTE nCharSet, BYTE nOutPrecision, BYTE nClipPrecision, BYTE nQuality, BYTE nPitchAndFamily, LPCTSTR lpszFacename ); 

 CFont *pOldFont=dc.SelectObject(&amp;amp;newFont); 

 


26. ComboBox 사용하기 

  CComboBox combo; &lt;FONT class=com&gt;//콤보박스 선언 &lt;/FONT&gt;

  combo.Create( DWORD dwStyle, &lt;FONT class=key&gt;const&lt;/FONT&gt; RECT&amp;amp; rect, CWnd* pParentWnd, UINT nID ); 

  &lt;FONT class=com&gt;//Style - WS_CHILD|WS_VISIBLE &lt;/FONT&gt;

  &lt;FONT class=key&gt;int&lt;/FONT&gt; n=combo.GetCurSel(); &lt;FONT class=com&gt;//선택된 아이템의 index를 가져온다 &lt;/FONT&gt;

  combo.AddString(&quot;&lt;FONT class=chr&gt;문자열&lt;/FONT&gt;&quot;); &lt;FONT class=com&gt;//문자열을 추가한다 &lt;/FONT&gt;

  combo.GetLBText(n,str); &lt;FONT class=com&gt;//n번째 아이템을 str에 저장 &lt;/FONT&gt;

 


27. Spin 사용하기 

  Spin은 바로앞의 Tab Order에 따라 붙는다 

  m_spinr.SetRange(1900,3000); &lt;FONT class=com&gt;//스핀 범위 지정 &lt;/FONT&gt;

  m_spinr.SetPos(m_nYear); &lt;FONT class=com&gt;//스핀 위치 지정 &lt;/FONT&gt;

 


28. CTime사용하기 

  CTime time; &lt;FONT class=com&gt;//시간객체생성 &lt;/FONT&gt;

  time=CTime::GetCurrentTime(); &lt;FONT class=com&gt;//현재시간을 저장 &lt;/FONT&gt;

  time.GetYear(),time.GetMonth();,time.GetDay(),time.GetHour(),time.GetMinute(),time.GetSecond() 

 


29. CListBox 메소드 

  AddString(&quot;&lt;FONT class=chr&gt;문자열&lt;/FONT&gt;&quot;);             &lt;FONT class=com&gt;//리스트에 문자열 추가 &lt;/FONT&gt;

  DeleteString(index);             &lt;FONT class=com&gt;//리스트에서 항목 삭제 &lt;/FONT&gt;

  GetCount()                     &lt;FONT class=com&gt;//전체 항목 갯수를 얻는다. &lt;/FONT&gt;

  GetSelcount()                   &lt;FONT class=com&gt;//선택된 항목 갯수 리턴 &lt;/FONT&gt;

  GetSel()                       &lt;FONT class=com&gt;//선택된 것인지 아닌지를 리턴한다 -&amp;gt; 양수 = TRUE , 음수 =&amp;gt; FALSE &lt;/FONT&gt;

  GetText(&lt;FONT class=key&gt;int&lt;/FONT&gt; index,문자열변수)     &lt;FONT class=com&gt;//index 번째 문자열을 문자열 변수에 넣는다 &lt;/FONT&gt;

  FindStringExact(문자열)          &lt;FONT class=com&gt;//지정 문자열의 index 값 리턴 -&amp;gt; 없으면 리턴값 LB_ERR 반환 &lt;/FONT&gt;

  FindString(&quot;&lt;FONT class=chr&gt;a&lt;/FONT&gt;&quot;)                 &lt;FONT class=com&gt;//&quot;a&quot;로 시작하는 항목을 모두 찾는다. &lt;/FONT&gt;

  ResetCountent()                 &lt;FONT class=com&gt;//모든 내용을 지운다. &lt;/FONT&gt;

 


30. 파일입출력 

 프로젝트생성시 Step4 =&amp;gt; Advanced =&amp;gt; 저장파일확장자지정 

 .h 파일에       DECLARE_SERIAL(CSawon) &lt;FONT class=com&gt;//이 클래스를 저장,로드가능한 클래스로 쓰겟다는 선언 &lt;/FONT&gt;

 .cpp 파일에     IMPLEMENT_SERIAL(CSawon,CObject,1) &lt;FONT class=com&gt;//이거를 해야 저장이 가능하다 &lt;/FONT&gt;

&lt;FONT class=key&gt;void&lt;/FONT&gt; CFileioDoc::Serialize(CArchive&amp;amp; ar) 

        &lt;FONT class=key&gt;if&lt;/FONT&gt; (ar.IsStoring())  &lt;FONT class=com&gt;//저장하기 &lt;/FONT&gt;

        {ar&amp;lt; 

        &lt;FONT class=key&gt;else&lt;/FONT&gt;    &lt;FONT class=com&gt;//열기 &lt;/FONT&gt;

        {ar&amp;gt;&amp;gt;m_shape; &lt;FONT class=com&gt;//불러올걸 쓴다. 읽을때도순서대로읽어야한다} &lt;/FONT&gt;

 


31. MicroSoft FlexGrid 사용하기! 

        CMSFlexGrid m_Grid; &lt;FONT class=com&gt;//FlexGrid 컨트롤 변수 &lt;/FONT&gt;

        CString strTitle[]={&quot;&lt;FONT class=chr&gt;고객코드&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;고객성명&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;고객포인트&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;신장&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;몸무게&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;고객등급&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;BMT지수&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;판정결과&lt;/FONT&gt;&quot;}; 

        &lt;FONT class=com&gt;// Grid 의 제목에 넣을문자배열 &lt;/FONT&gt;

        &lt;FONT class=key&gt;int&lt;/FONT&gt; Width[]={900,900,1100,800,800,900,1000,900}; 

        &lt;FONT class=com&gt;// Grid 의 열넓이 지정할 배열 &lt;/FONT&gt;

        m_Grid.SetRows(m_cnt+2); &lt;FONT class=com&gt;//전체행수 지정 &lt;/FONT&gt;

        m_Grid.SetCols(8); &lt;FONT class=com&gt;//전체열수 지정 &lt;/FONT&gt;

        m_Grid.Clear(); &lt;FONT class=com&gt;//지우기 &lt;/FONT&gt;

        m_Grid.SetFixedCols(0); &lt;FONT class=com&gt;//고정열은 없다. &lt;/FONT&gt;

        m_Grid.SetRow(0); &lt;FONT class=com&gt;// 행선택 &lt;/FONT&gt;

        &lt;FONT class=key&gt;for&lt;/FONT&gt;(&lt;FONT class=key&gt;int&lt;/FONT&gt; i=0;i&amp;lt;=7;i++) 

        { 

                m_Grid.SetColWidth(i,Width[i]); &lt;FONT class=com&gt;//열 넓이 설정 &lt;/FONT&gt;

                m_Grid.SetCol(i); &lt;FONT class=com&gt;//열 선택 &lt;/FONT&gt;

                m_Grid.SetText(strTitle[i]); &lt;FONT class=com&gt;// 선택된행, 선택된열에 Text 를 넣는다 &lt;/FONT&gt;

        } 

 


32. 4대 Class간 참조 

&lt;FONT class=com&gt;//각각 헤더파일 include &lt;/FONT&gt;

&lt;FONT class=key&gt;#include&lt;/FONT&gt; &quot;&lt;FONT class=chr&gt;MainFrm.h&lt;/FONT&gt;&quot; &lt;FONT class=com&gt;//메인프레임 헤더파일 &lt;/FONT&gt;

&lt;FONT class=key&gt;#include&lt;/FONT&gt; &quot;&lt;FONT class=chr&gt;ClassDoc.h&lt;/FONT&gt;&quot;   &lt;FONT class=com&gt;//Doc클래스 헤더파일 &lt;/FONT&gt;

&lt;FONT class=key&gt;#include&lt;/FONT&gt; &quot;&lt;FONT class=chr&gt;ClassView.h&lt;/FONT&gt;&quot; &lt;FONT class=com&gt;//View를 include 할때는 반드시 Doc 헤더파일이 위에잇어야한다 &lt;/FONT&gt;

&lt;FONT class=key&gt;#include&lt;/FONT&gt; &quot;&lt;FONT class=chr&gt;Class.h&lt;/FONT&gt;&quot; &lt;FONT class=com&gt;//APP Class 의 헤더파일 &lt;/FONT&gt;

 


&lt;FONT class=key&gt;void&lt;/FONT&gt; CClassView::OnMenuView() &lt;FONT class=com&gt;//뷰클래스 &lt;/FONT&gt;

        CClassApp *pApp=(CClassApp *)AfxGetApp();   &lt;FONT class=com&gt;//View -&amp;gt; App&lt;/FONT&gt;
        CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd();  &lt;FONT class=com&gt;//View -&amp;gt; MainFrm &lt;/FONT&gt;

        CClassDoc *pDoc=(CClassDoc *)pMain-&amp;gt;GetActiveDocument(); &lt;FONT class=com&gt;//View -&amp;gt; MainFrm -&amp;gt; Doc &lt;/FONT&gt;

        CClassDoc *pDoc=(CClassDoc *)GetDocument();                     &lt;FONT class=com&gt;//View -&amp;gt; Doc &lt;/FONT&gt;

 


 &lt;FONT class=com&gt;//MainFrame 클래스 &lt;/FONT&gt;

        CClassView *pView=(CClassView *)GetActiveView();  &lt;FONT class=com&gt;//MainFrm -&amp;gt; View &lt;/FONT&gt;

        CClassDoc *pDoc=(CClassDoc *)GetActiveDocument();  &lt;FONT class=com&gt;//MainFrm -&amp;gt; Doc &lt;/FONT&gt;

        CClassApp *pApp=(CClassApp *)AfxGetApp(); &lt;FONT class=com&gt;//MainFrm -&amp;gt; App &lt;/FONT&gt;

 


&lt;FONT class=com&gt;//Doc 클래스 &lt;/FONT&gt;

        CClassApp *pApp=(CClassApp *)AfxGetApp(); &lt;FONT class=com&gt;//Doc -&amp;gt; App &lt;/FONT&gt;

        CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd(); &lt;FONT class=com&gt;//Doc -&amp;gt; MainFrm &lt;/FONT&gt;

        CClassView *pView=(CClassView *)pMain-&amp;gt;GetActiveView(); &lt;FONT class=com&gt;// Doc -&amp;gt; MainFrm -&amp;gt; View &lt;/FONT&gt;

        CClassView *pView=(CClassView *)m_viewList.GetHead();      &lt;FONT class=com&gt;// Doc -&amp;gt; View &lt;/FONT&gt;

 


&lt;FONT class=com&gt;//App 클래스 &lt;/FONT&gt;

        CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd(); &lt;FONT class=com&gt;//App -&amp;gt; MainFrm &lt;/FONT&gt;

        CClassView *pView=(CClassView *)pMain-&amp;gt;GetActiveView(); &lt;FONT class=com&gt;//App -&amp;gt; MainFrm -&amp;gt; View &lt;/FONT&gt;

        CClassDoc *pDoc=(CClassDoc *)pMain-&amp;gt;GetActiveDocument(); &lt;FONT class=com&gt;//App -&amp;gt; MainFrm -&amp;gt; Doc &lt;/FONT&gt;

 


33. ToolBar 추가하기 

  CMainFrame 으로 가서 멤버변수 추가 

        CToolBar m_wndToolBar1; 

  OnCreate 로 가서 다음 내용을 추가해준다 (위의 toolbar 부분을 복사하고 이름만 바꾸면 된다.3군데..) 

  &lt;FONT class=key&gt;if&lt;/FONT&gt; (!m_wndToolBar1.CreateEx(&lt;FONT class=key&gt;this&lt;/FONT&gt;, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP 

                | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || 

                !m_wndToolBar1.LoadToolBar(IDR_TOOLBAR1)) 

        { 

                TRACE0(&quot;&lt;FONT class=chr&gt;Failed to create toolbar\n&lt;/FONT&gt;&quot;); 

                &lt;FONT class=key&gt;return&lt;/FONT&gt; -1;      &lt;FONT class=com&gt;// fail to create &lt;/FONT&gt;

        } 

 


  그 함수내에서 &lt;FONT class=com&gt;//TODO 아래에 내용추가..역시..복사해서 이름만 바꾸면 된다. &lt;/FONT&gt;

        m_wndToolBar1.EnableDocking(CBRS_ALIGN_TOP|CBRS_ALIGN_BOTTOM); 

        &lt;FONT class=com&gt;//DockControlBar(&amp;amp;m_wndToolBar1);   &amp;lt;= 이부분 대신.. &lt;/FONT&gt;

        이거를 넣는다.. 

        CRect toolRect; &lt;FONT class=com&gt;//툴바 영역을 얻을 사각형 &lt;/FONT&gt;

        this-&amp;gt;RecalcLayout(); &lt;FONT class=com&gt;//현상태의 Client 영역을 구해서 저장한다 &lt;/FONT&gt;

        m_wndToolBar.GetWindowRect(&amp;amp;toolRect); &lt;FONT class=com&gt;//툴바영역을 저장한다 &lt;/FONT&gt;

        toolRect.left+=1; &lt;FONT class=com&gt;//사각형의 왼쪽을 1Pixel 줄인다 &lt;/FONT&gt;

        DockControlBar(&amp;amp;m_wndToolBar1,AFX_IDW_DOCKBAR_TOP,&amp;amp;toolRect); &lt;FONT class=com&gt;//ToolRect에 툴바를 붙인다 &lt;/FONT&gt;

        &lt;FONT class=key&gt;return&lt;/FONT&gt; 0; 

 


34. ToolBar에 ComboBox붙이기 

        CComboBox m_combo; &lt;FONT class=com&gt;//객체생성 &lt;/FONT&gt;

        ID 등록 =&amp;gt; view 메뉴 =&amp;gt; resource symbol =&amp;gt; &lt;FONT class=key&gt;new&lt;/FONT&gt; =&amp;gt; ID_COMBO 

  oncreate 에 내용 추가 (콤보를 만들고 표시하는 내용) 

        m_wndToolBar.SetButtonInfo(10,IDC_COMBO,TBBS_SEPARATOR,150);  

        &lt;FONT class=com&gt;//툴바의 10번째버튼을 편집한다 &lt;/FONT&gt;

        CRect itemRect; &lt;FONT class=com&gt;//콤보를넣을 사각형을 만든다 &lt;/FONT&gt;

        m_wndToolBar.GetItemRect(10,&amp;amp;itemRect); &lt;FONT class=com&gt;//툴바의 10번째 버튼을 사각형에 넣는다 &lt;/FONT&gt;
        itemRect.left+=5; &lt;FONT class=com&gt;//앞여백 &lt;/FONT&gt;

        itemRect.right+=5; &lt;FONT class=com&gt;//뒤여백 &lt;/FONT&gt;

        itemRect.bottom+=100; &lt;FONT class=com&gt;//콤보가열릴 공간확보 &lt;/FONT&gt;

        m_combo.Create(WS_CHILD|WS_VISIBLE|CBS_DROPDOWN,itemRect,&amp;amp;m_wndToolBar,IDC_COMBO); 

        &lt;FONT class=com&gt;//콤보박스를 툴바에 붙여준다 &lt;/FONT&gt;

        m_combo.AddString(&quot;&lt;FONT class=chr&gt;이름&lt;/FONT&gt;&quot;); &lt;FONT class=com&gt;//내용추가 &lt;/FONT&gt;

        m_combo.SetCurSel(0); &lt;FONT class=com&gt;//셀 선택 &lt;/FONT&gt;

 


35.  Toolbar에 수동으로넣은 ComboBox 사용하기 

  afx_msg &lt;FONT class=key&gt;void&lt;/FONT&gt; [안내]태그제한으로등록되지않습니다-xxOnSelectCombo(); &lt;FONT class=com&gt;//원형 &lt;/FONT&gt;

  ON_CBN_SELCHANGE(IDC_COMBO,[안내]태그제한으로등록되지않습니다-xxOnSelectCombo) &lt;FONT class=com&gt;//메세지맵에 추가 &lt;/FONT&gt;

        CMainFrame *pMain=(CMainFrame *)GetParent(); &lt;FONT class=com&gt;//메인프레임 주소참조 &lt;/FONT&gt;

        CComboBox *pCom=(CComboBox *)(pMain-&amp;gt;m_wndToolBar.GetDlgItem(IDC_COMBO)); 

        &lt;FONT class=com&gt;//콤보박스의 주소를 가져온다, 접근할 때 메인프레임 -&amp;gt; 툴바 -&amp;gt; 콤보박스 의 순서로 가야한다 &lt;/FONT&gt;

        &lt;FONT class=key&gt;int&lt;/FONT&gt; n=pCom-&amp;gt;GetCurSel(); &lt;FONT class=com&gt;//현재선택된 셀의 인덱스를 가져온다 &lt;/FONT&gt;

        &lt;FONT class=key&gt;if&lt;/FONT&gt;(n==CB_ERR) &lt;FONT class=key&gt;return&lt;/FONT&gt;; &lt;FONT class=com&gt;//선택된셀이 없으면 중지한다 &lt;/FONT&gt;

        CString str; 

        pMain-&amp;gt;m_combo.GetLBText(n,str); &lt;FONT class=com&gt;//선택된셀의 Text를 가져온다 &lt;/FONT&gt;

 


36. UPDATE_COMMAND 사용하기 

        pCmdUI-&amp;gt;Enable(TRUE); &lt;FONT class=com&gt;//버튼 활성화 &lt;/FONT&gt;

        pCmdUI-&amp;gt;SetText((bAdd)?&quot;&lt;FONT class=chr&gt;취소&lt;/FONT&gt;&quot;:&quot;&lt;FONT class=chr&gt;신규&lt;/FONT&gt;&quot;); &lt;FONT class=com&gt;//버튼의 text 설정 &lt;/FONT&gt;

        pCmdUI-&amp;gt;SetCheck(TRUE); &lt;FONT class=com&gt;//버튼 체크 &lt;/FONT&gt;

 


37. 프로그램정보저장 

  CWinApp::GetProfileString(섹션명,항목명,기본값); &lt;FONT class=com&gt;// 함수를 사용한다. (문자열) &lt;/FONT&gt;

  CWinApp::GetProfileInt(섹션명,항목명,기본값);  &lt;FONT class=com&gt;//불러올때사용 (숫자)  &lt;/FONT&gt;

  CWinApp::WriteProfileString(섹션명,항목명,값); &lt;FONT class=com&gt;//저장할때 사용 (문자열) &lt;/FONT&gt;

  CWinApp::WriteProfileInt(섹션명,항목명,값); &lt;FONT class=com&gt;//저장할때 사용 (숫자) &lt;/FONT&gt;

  &lt;FONT class=com&gt;//불러올때 사용할함수 &lt;/FONT&gt;

  &lt;FONT class=key&gt;void&lt;/FONT&gt; CMainFrame::ActivateFrame(&lt;FONT class=key&gt;int&lt;/FONT&gt; nCmdShow)  &lt;FONT class=com&gt;//프로그램 실행후 프레임생성될때 실행 &lt;/FONT&gt;

  &lt;FONT class=com&gt;//저장할 때 WM_DESTROY 메시지 사용 &lt;/FONT&gt;

 


38. 컨트롤바 표시하기 

        CMainFrame *pMain=(CMainFrame *)GetParent(); &lt;FONT class=com&gt;//MainFrame 주소가져오기 &lt;/FONT&gt;

        pMain-&amp;gt;ShowControlBar(&amp;amp;pMain-&amp;gt;m_wndToolBar,bTool1,FALSE); &lt;FONT class=com&gt;//툴바를 bTool2 에따라 보이고 감춘다 &lt;/FONT&gt;

 


39. Window 창크기,위치정보 저장하기 

MainFrame 의 WM_DESTROY 에 

        WINDOWPLACEMENT w; 

        this-&amp;gt;GetWindowPlacement(&amp;amp;w); &lt;FONT class=com&gt;//윈도우의 정보를 저장한다. &lt;/FONT&gt;

        CString strRect; 

        strRect.Format(&quot;&lt;FONT class=chr&gt;%04d,%04d,%04d,%04d&lt;/FONT&gt;&quot;, &lt;FONT class=com&gt;//04d 는 4자리 확보하고 남은건 0으로 채워라 &lt;/FONT&gt;

                w.rcNormalPosition.left,w.rcNormalPosition.top, 

                w.rcNormalPosition.right,w.rcNormalPosition.bottom); &lt;FONT class=com&gt;//윈도우의 위치,크기 확보.. &lt;/FONT&gt;

         

        BOOL bMax,bMin; &lt;FONT class=com&gt;//윈도우의 상태를 저장하기위한 변수 &lt;/FONT&gt;

        &lt;FONT class=com&gt;//w.falg 는 이전상태의 정보를 가지고 잇다!! &lt;/FONT&gt;

        &lt;FONT class=key&gt;if&lt;/FONT&gt;(w.showCmd==SW_SHOWMINIMIZED)           &lt;FONT class=com&gt;//최소화 상태 &lt;/FONT&gt;

        { 

                bMin=TRUE; 

                &lt;FONT class=key&gt;if&lt;/FONT&gt;(w.flags==0) &lt;FONT class=com&gt;//falg 값이 0 이면 이전 상태가 보통상태이다!! &lt;/FONT&gt;

                        bMax=FALSE; 

                &lt;FONT class=key&gt;else&lt;/FONT&gt;    &lt;FONT class=com&gt;//이전상태가 최대화 상태 &lt;/FONT&gt;

                        bMax=TRUE; 

        } 

        &lt;FONT class=key&gt;else&lt;/FONT&gt;                             

        { 

                &lt;FONT class=key&gt;if&lt;/FONT&gt;(w.showCmd==SW_SHOWMAXIMIZED) &lt;FONT class=com&gt;//최대화상태 &lt;/FONT&gt;

                { 

                        bMax=TRUE; 

                        bMin=FALSE; 

                } 

                &lt;FONT class=key&gt;else&lt;/FONT&gt;  &lt;FONT class=com&gt;//보통 상태 &lt;/FONT&gt;

                { 

                        bMax=FALSE; 

                        bMin=FALSE; 

                } 

        } 

        AfxGetApp()-&amp;gt;WriteProfileString(&quot;&lt;FONT class=chr&gt;WinStatus&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;Rect&lt;/FONT&gt;&quot;,strRect); 

        AfxGetApp()-&amp;gt;WriteProfileInt(&quot;&lt;FONT class=chr&gt;WinStatus&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;Max&lt;/FONT&gt;&quot;,bMax); 

        AfxGetApp()-&amp;gt;WriteProfileInt(&quot;&lt;FONT class=chr&gt;WinStatus&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;Min&lt;/FONT&gt;&quot;,bMin); 

 


&lt;FONT class=com&gt;//읽어올차례.. &lt;/FONT&gt;

ActivateFrame 함수로 가서 

        WINDOWPLACEMENT w;  &lt;FONT class=com&gt;//윈도우의 상태를 저장하는 구조체.. &lt;/FONT&gt;

        BOOL bMax,bMin;               &lt;FONT class=com&gt;//최대,최소상태를 저장할 변수 &lt;/FONT&gt;

        CString strRect; &lt;FONT class=com&gt;//창크기를 받아올 변수 &lt;/FONT&gt;

        strRect=AfxGetApp()-&amp;gt;GetProfileString(&quot;&lt;FONT class=chr&gt;WinStatus&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;Rect&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;0000,0000,0500,0700&lt;/FONT&gt;&quot;); 

        bMin=AfxGetApp()-&amp;gt;GetProfileInt(&quot;&lt;FONT class=chr&gt;WinStatus&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;Min&lt;/FONT&gt;&quot;,FALSE); 

        bMax=AfxGetApp()-&amp;gt;GetProfileInt(&quot;&lt;FONT class=chr&gt;WinStatus&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;Max&lt;/FONT&gt;&quot;,FALSE); 

        &lt;FONT class=key&gt;int&lt;/FONT&gt; a=atoi(strRect.Left(4)); &lt;FONT class=com&gt;//문자열을 int 로 바꿔준다. &lt;/FONT&gt;

        &lt;FONT class=key&gt;int&lt;/FONT&gt; b=atoi(strRect.Mid(5,4));     &lt;FONT class=com&gt;//atoi 아스키 값을 int형으로 바꿔준다.. &lt;/FONT&gt;

        &lt;FONT class=key&gt;int&lt;/FONT&gt; c=atoi(strRect.Mid(10,4)); 

        &lt;FONT class=key&gt;int&lt;/FONT&gt; d=atoi(strRect.Mid(15,4)); 

        w.rcNormalPosition=CRect(a,b,c,d); 

        &lt;FONT class=key&gt;if&lt;/FONT&gt;(bMin) 

        { 

                w.showCmd=SW_SHOWMINIMIZED; 

                &lt;FONT class=key&gt;if&lt;/FONT&gt;(bMax) 

                { 

                        w.flags=WPF_RESTORETOMAXIMIZED  ; 

                } 

                &lt;FONT class=key&gt;else&lt;/FONT&gt; 

                { 

                        w.flags=0; 

                } 

        } 

        &lt;FONT class=key&gt;else&lt;/FONT&gt; 

        { 

                &lt;FONT class=key&gt;if&lt;/FONT&gt;(bMax) 

                { 

                        w.showCmd=SW_SHOWMAXIMIZED; 

                } 

                &lt;FONT class=key&gt;else&lt;/FONT&gt; 

                { 

                        w.showCmd=SW_SHOWNORMAL; 

                } 

        } 

        this-&amp;gt;SetWindowPlacement(&amp;amp;w); &lt;FONT class=com&gt;//설정된 값으로 윈도우를 그리게 한다.. &lt;/FONT&gt;

         

        &lt;FONT class=com&gt;//CFrameWnd::ActivateFrame(nCmdShow); //이건 반드시 주석처리한다.. &lt;/FONT&gt;

 


40. progress Bar 쓰기 

 


        m_progress.SetRange(m_first,m_last); &lt;FONT class=com&gt;//Progress 범위설정하기 &lt;/FONT&gt;

        m_progress.SetStep(m_step); &lt;FONT class=com&gt;//Progress Step설정하기 &lt;/FONT&gt;

        &lt;FONT class=com&gt;//m_progress.StepIt(); //스텝만큼 움직이기 &lt;/FONT&gt;

        &lt;FONT class=com&gt;//또는 다음을 사용한다 &lt;/FONT&gt;

        &lt;FONT class=key&gt;for&lt;/FONT&gt;(&lt;FONT class=key&gt;int&lt;/FONT&gt; a=m_first;a&amp;lt;=m_last;a+=m_step) &lt;FONT class=com&gt;//a가 처음부터 끝까지 &lt;/FONT&gt;

        { 

                m_progress.SetPos(a); &lt;FONT class=com&gt;// 위치를 a에 맞춘다 &lt;/FONT&gt;

                Sleep(50); &lt;FONT class=com&gt;//천천히 움직이게한다 &lt;/FONT&gt;

        } 

 


41. 파일대화상자 FileDialog 사용하기 

&lt;FONT class=key&gt;void&lt;/FONT&gt; CConDlg1::OnFileopen()  &lt;FONT class=com&gt;//파일열기 버튼 &lt;/FONT&gt;

{ 

        CFileDialog *fdlg; &lt;FONT class=com&gt;//파일대화상자 객체 생성 // 포인터로 만든다.. &lt;/FONT&gt;

        &lt;FONT class=key&gt;static&lt;/FONT&gt; &lt;FONT class=key&gt;char&lt;/FONT&gt; BASED_CODE szFilter[] = &quot;&lt;FONT class=chr&gt;Animate Video Files (*.avi)|*.avi|All Files (*.*)|*.*||&lt;/FONT&gt;&quot;; 

        &lt;FONT class=com&gt;//필터를 만들어 준다..이건 할줄 모름.. &lt;/FONT&gt;

        fdlg =new CFileDialog(TRUE, &quot;&lt;FONT class=chr&gt;.avi&lt;/FONT&gt;&quot;, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter); 

        &lt;FONT class=com&gt;//대화상자 만들기..이렇게 해야댄다.. &lt;/FONT&gt;

        &lt;FONT class=key&gt;if&lt;/FONT&gt;(fdlg-&amp;gt;DoModal()==IDOK) &lt;FONT class=com&gt;//이제..대화상자를 띠우고..     &lt;/FONT&gt;

        {                               &lt;FONT class=com&gt;//OK 누르면 실행될 부분.. &lt;/FONT&gt;

                m_filename=fdlg-&amp;gt;GetPathName();        &lt;FONT class=com&gt;//대화상자에서 경로를 받아서 저장. &lt;/FONT&gt;

                UpdateData(FALSE);     

        } 

} 

선생님이 해준거 &lt;FONT class=com&gt;//파일 다이얼로그 만들기 &lt;/FONT&gt;

CFileDialog fdlg(TRUE,&quot;&lt;FONT class=chr&gt;avi&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;.avi&lt;/FONT&gt;&quot;,OFN_OEVRWRITEPROMPT,&quot;&lt;FONT class=chr&gt;Vidoe Files(*.avi)|*.avi|All Files(*.*)|*.*||&lt;/FONT&gt;&quot;); 

 


42. Animate Control 사용하기 

        m_animate.Open(m_filename); &lt;FONT class=com&gt;//파일을 연다 &lt;/FONT&gt;

        m_animate.Play(0,-1,1);  &lt;FONT class=com&gt;//(처음프레임,마지막프레임,반복횟수) &lt;/FONT&gt;

        m_animate.Stop(); &lt;FONT class=com&gt;//정지시키기 &lt;/FONT&gt;

        m_ani.SetAutoStart(TRUE); &lt;FONT class=com&gt;//자동으로 시작한다 &lt;/FONT&gt;

43. Control 의 Style 바꿔주기 

        Control.ModyfyStyle(제거할스타일,추가할스타일); &lt;FONT class=com&gt;//스타일은 MSDN내용 참조 &lt;/FONT&gt;

 


44. 시스템 날자바꾸기 버튼 

&lt;FONT class=com&gt;//SetSystemTime(),GetSystemTime() //GMT 표준시를 가져온다. &lt;/FONT&gt;

&lt;FONT class=com&gt;//GetLocalTime(),SetLocalTime()  //현재 지역시간을 가져온다. &lt;/FONT&gt;

 


        SYSTEMTIME st; 

        GetLocalTime(&amp;amp;st); &lt;FONT class=com&gt;//현재 시간, 날자를 넣는다. &lt;/FONT&gt;

        st.wYear=m_date2.GetYear(); 

        st.wMonth=m_date2.GetMonth(); 

        st.wDay=m_date2.GetDay(); 

        SetSystemTime(&amp;amp;st); 

 


45. 시스템 시간 바꾸기 버튼 

        UpdateData(TRUE); 

        SYSTEMTIME st; 

        GetLocalTime(&amp;amp;st); 

        st.wHour=m_time.GetHour(); 

        st.wMinute=m_time.GetMinute(); 

        st.wSecond=m_time.GetSecond(); 

        SetLocalTime(&amp;amp;st); 

 


46.시스템의 드라이브 문자 얻기 

 


        &lt;FONT class=key&gt;char&lt;/FONT&gt; temp[50]; 

        GetLogicalDriveStrings(&lt;FONT class=key&gt;sizeof&lt;/FONT&gt;(temp),temp); 

        CString str,str1; 

        &lt;FONT class=key&gt;int&lt;/FONT&gt; n=0; 

        &lt;FONT class=key&gt;while&lt;/FONT&gt;(*(temp+n)!=NULL) 

        { 

                str=temp+n; 

                str1+= &quot;&lt;FONT class=chr&gt; &lt;/FONT&gt;&quot;+str.Left(2); 

                n+=4; 

        } 

 


47. 현재 작업경로 얻기 

        &lt;FONT class=key&gt;char&lt;/FONT&gt; temp[MAX_PATH]; &lt;FONT class=com&gt;//MAX_PATH 는 경로길이의 최대를 define 해놓은것. &lt;/FONT&gt;

        GetCurrentDirectory(&lt;FONT class=key&gt;sizeof&lt;/FONT&gt;(temp),temp);  &lt;FONT class=com&gt;// 현작업하는 경로를 얻어온다.(경로 길이,문자형); &lt;/FONT&gt;

 


48. Tree Control 사용하기 

        HTREEITEM hmov,hmus; &lt;FONT class=com&gt;//핸들을받을 변수 이게 잇어야 하위 디렉토리 생성가능 &lt;/FONT&gt;

        hmov=m_tree.InsertItem(&quot;&lt;FONT class=chr&gt;영화&lt;/FONT&gt;&quot;,TVI_ROOT,TVI_LAST); &lt;FONT class=com&gt;//,TVI_ROOT,TVI_LAST는 default &lt;/FONT&gt;

        hm1=m_tree.InsertItem(&quot;&lt;FONT class=chr&gt;외화&lt;/FONT&gt;&quot;,hmov);  &lt;FONT class=com&gt;//hmov 아래 “외화”트리 생성 &lt;/FONT&gt;

        CImageList m_image; &lt;FONT class=com&gt;//그림을 사용하기 위한 클래스다!! 알아두자.. &lt;/FONT&gt;

        m_tree.SetImageList(&amp;amp;m_image,TVSIL_NORMAL); &lt;FONT class=com&gt;//Tree View Style Image List =&amp;gt; TVSIL &lt;/FONT&gt;

        hmov=m_tree.InsertItem(&quot;&lt;FONT class=chr&gt;영화&lt;/FONT&gt;&quot;,0,1,TVI_ROOT,TVI_LAST); &lt;FONT class=com&gt;//,TVI_ROOT,TVI_LAST는 default &lt;/FONT&gt;

        hmus=m_tree.InsertItem(&quot;&lt;FONT class=chr&gt;가요&lt;/FONT&gt;&quot;,1,2); &lt;FONT class=com&gt;//(&quot;문자열&quot;,처음그림번호,선택시그림) &lt;/FONT&gt;

        hm1=m_tree.InsertItem(&quot;&lt;FONT class=chr&gt;외화&lt;/FONT&gt;&quot;,2,3,hmov); &lt;FONT class=com&gt;//그림 번호는 default 로 0이 들어간다.. &lt;/FONT&gt;

 


49. List Control 사용하기 

        m_list.ModifyStyle(LVS_TYPEMASK, LVS_ICON); &lt;FONT class=com&gt;//리스트를 큰아이콘형태로 보인다 &lt;/FONT&gt;

        m_list.ModifyStyle(LVS_TYPEMASK, LVS_SMALLICON);  &lt;FONT class=com&gt;//리스트를 작은아이콘형태로 보인다 &lt;/FONT&gt;

        m_list.ModifyStyle(LVS_TYPEMASK, LVS_LIST); &lt;FONT class=com&gt;//리스트를 리스트형태로 보인다 &lt;/FONT&gt;

        m_list.ModifyStyle(LVS_TYPEMASK, LVS_REPORT); &lt;FONT class=com&gt;//리스트를 자세히형태로 보인다 &lt;/FONT&gt;

 


        CImageList m_treeimage; &lt;FONT class=com&gt;//이미지리스트 &lt;/FONT&gt;

        CImageList m_small, m_large; 

        m_large.Create(IDB_LARGE,32,0,RGB(255,255,255)); &lt;FONT class=com&gt;//이거는 클래스에서 추가해준거다 &lt;/FONT&gt;

        m_small.Create(IDB_SMALL,16,0,RGB(255,255,255)); (bmp ID값, 

        m_list.SetImageList(&amp;amp;m_large,LVSIL_NORMAL); 

        m_list.SetImageList(&amp;amp;m_small,LVSIL_SMALL); 

        CString name[]={&quot;&lt;FONT class=chr&gt;홍길동&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;진달래&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;한국남&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;개나리&lt;/FONT&gt;&quot;}; 

        CString tel[]={&quot;&lt;FONT class=chr&gt;400-3759&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;304-7714&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;505-9058&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;700-9898&lt;/FONT&gt;&quot;}; 

        CString born[]={&quot;&lt;FONT class=chr&gt;1980-1-1&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;1981-12-20&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;1980-05-15&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;1981-08-31&lt;/FONT&gt;&quot;}; 

        CString sex[]={&quot;&lt;FONT class=chr&gt;남자&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;여자&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;남자&lt;/FONT&gt;&quot;,&quot;&lt;FONT class=chr&gt;여자&lt;/FONT&gt;&quot;}; 

         

        m_list.InsertColumn(0,&quot;&lt;FONT class=chr&gt;이름&lt;/FONT&gt;&quot;,LVCFMT_LEFT,70); 

        m_list.InsertColumn(1,&quot;&lt;FONT class=chr&gt;전화번호&lt;/FONT&gt;&quot;,LVCFMT_LEFT,80); 

        m_list.InsertColumn(2,&quot;&lt;FONT class=chr&gt;생일&lt;/FONT&gt;&quot;,LVCFMT_LEFT,90); 

        m_list.InsertColumn(3,&quot;&lt;FONT class=chr&gt;성별&lt;/FONT&gt;&quot;,LVCFMT_LEFT,50); 

        LVITEM it; &lt;FONT class=com&gt;//리스트 구조체 &lt;/FONT&gt;

        &lt;FONT class=key&gt;char&lt;/FONT&gt; temp[100]; 

        &lt;FONT class=key&gt;for&lt;/FONT&gt;(&lt;FONT class=key&gt;int&lt;/FONT&gt; a=0;a&amp;lt;4;a++) 

        {        

                &lt;FONT class=key&gt;int&lt;/FONT&gt; n=(sex[a]==&quot;&lt;FONT class=chr&gt;남자&lt;/FONT&gt;&quot;)?0:1; 

                m_list.InsertItem(a,name[a],n); &lt;FONT class=com&gt;//insert item 은 행을 만들고.. &lt;/FONT&gt;

                it.mask=LVIF_TEXT|LVIF_IMAGE; &lt;FONT class=com&gt;//마스크 설정 &lt;/FONT&gt;

                it.iItem=a; 

                it.iSubItem=1; &lt;FONT class=com&gt;//열 설정 &lt;/FONT&gt;

                strcpy(temp,tel[a]); &lt;FONT class=com&gt;//이거 모하는거냐.. &lt;/FONT&gt;

                it.pszText=temp; 

                m_list.SetItem(&amp;amp;it);                      &lt;FONT class=com&gt;// setitem 열에 정보를 넣는다. &lt;/FONT&gt;

 


                it.iSubItem=2; &lt;FONT class=com&gt;//열 설정 &lt;/FONT&gt;

                strcpy(temp,born[a]); &lt;FONT class=com&gt;//이거 모하는거냐.. &lt;/FONT&gt;

                it.pszText=temp; 

                m_list.SetItem(&amp;amp;it);                      &lt;FONT class=com&gt;// setitem 열에 정보를 넣는다. &lt;/FONT&gt;

 


                it.iSubItem=3; &lt;FONT class=com&gt;//열 설정 &lt;/FONT&gt;

                strcpy(temp,sex[a]); &lt;FONT class=com&gt;//이거 모하는거냐.. &lt;/FONT&gt;

                it.pszText=temp; 

                m_list.SetItem(&amp;amp;it);                      &lt;FONT class=com&gt;// setitem 열에 정보를 넣는다. &lt;/FONT&gt;

 

 

 

50. Bitmap Button 사용하기 

  CBitmapButton 을 사용한다! CButton 에서 상속 받는클래스임.. 

        m_button1.Create(NULL, 

                WS_CHILD|WS_VISIBLE|BS_OWNERDRAW,CRect(310,20,370,50), 

                &lt;FONT class=key&gt;this&lt;/FONT&gt;,IDC_MYBUTTON); &lt;FONT class=com&gt;//버튼만들기 &lt;/FONT&gt;

        m_button1.LoadBitmaps(IDB_UP,IDB_DOWN,IDB_FOCUS,IDB_DISABLE); &lt;FONT class=com&gt;//버튼의 그림설정 &lt;/FONT&gt;

        m_button1.SizeToContent(); &lt;FONT class=com&gt;//버튼을 그림 크기로 맞춰 준다!! &lt;/FONT&gt;

 


 그냥 버튼을 비트맵버튼으로 바꾸기 -&amp;gt; 버튼을 만든다 속성에서 OWNERDRA 속성에 체크!! 

        m_button2.LoadBitmaps(IDB_UP,IDB_DOWN,IDB_FOCUS,IDB_DISABLE); &lt;FONT class=com&gt;//버튼의 그림설정 &lt;/FONT&gt;

        m_button2.SizeToContent(); &lt;FONT class=com&gt;//버튼을 그림 크기로 맞춰 준다!! &lt;/FONT&gt;

 


51. 중복없는 난수발생하기 

        &lt;FONT class=key&gt;int&lt;/FONT&gt; su; &lt;FONT class=com&gt;//발생된 난수저장 &lt;/FONT&gt;

        &lt;FONT class=key&gt;int&lt;/FONT&gt; a,b; 

        BOOL bDasi; &lt;FONT class=com&gt;//숫자가중복될경우 다시하기위한 변수 &lt;/FONT&gt;

        &lt;FONT class=key&gt;for&lt;/FONT&gt;(a=0;a&amp;lt;9;a++)  &lt;FONT class=com&gt;//난수 9개 발생 &lt;/FONT&gt;

        { 

                bDasi=TRUE; 

                &lt;FONT class=key&gt;while&lt;/FONT&gt;(bDasi) 

                { 

                        bDasi=FALSE; 

                        su=rand()%10; &lt;FONT class=com&gt;//난수발생 &lt;/FONT&gt;

                        &lt;FONT class=key&gt;for&lt;/FONT&gt;(b=0;b 

                        { 

                                &lt;FONT class=key&gt;if&lt;/FONT&gt;(temp[b]==su)  &lt;FONT class=com&gt;//중복이면 &lt;/FONT&gt;

                                { 

                                        bDasi=TRUE; &lt;FONT class=com&gt;//중복이 잇으면 다시while 문을 실행한다 &lt;/FONT&gt;

                                        &lt;FONT class=key&gt;break&lt;/FONT&gt;; 

                                }&lt;FONT class=com&gt;//if &lt;/FONT&gt;

                        }&lt;FONT class=com&gt;//for &lt;/FONT&gt;

                }&lt;FONT class=com&gt;//while &lt;/FONT&gt;

                temp[a]=su; &lt;FONT class=com&gt;//중복이 아니면 대입한다 &lt;/FONT&gt;

 


52. 메뉴 범위로 사용하기 

  ON_COMMAND_RANGE(ID_LEVEL3,ID_LEVEL9,OnLevel); &lt;FONT class=com&gt;//범위메세지 발생 &lt;/FONT&gt;

  &lt;FONT class=com&gt;//메뉴 ID의 값이 연속된 숫자일 경우 범위로 지정해서 사용할수잇다 &lt;/FONT&gt;

 


53. 한,영 전환함수 

&lt;FONT class=key&gt;void&lt;/FONT&gt; CCustView::SetHangul(BOOL bCheck) &lt;FONT class=com&gt;//T:한글 F:영문 이건 외우자.. &lt;/FONT&gt;

{ 

        HIMC hm=ImmGetContext(this-&amp;gt;GetSafeHwnd()); &lt;FONT class=com&gt;//뷰클래스의 윈도우 핸들포인터를 얻는다. &lt;/FONT&gt;

        &lt;FONT class=key&gt;if&lt;/FONT&gt;(bCheck) 

        { 

                ::ImmSetConversionStatus(hm,1,0); &lt;FONT class=com&gt;//1은 한글 0은 영문 &lt;/FONT&gt;

        } 

        &lt;FONT class=key&gt;else&lt;/FONT&gt; 

        { 

                ::ImmSetConversionStatus(hm,0,0); &lt;FONT class=com&gt;//영문으로 바꿔준다 &lt;/FONT&gt;

        } 

        ::ImmReleaseContext(this-&amp;gt;GetSafeHwnd(),hm); &lt;FONT class=com&gt;//장치를 풀어준다 &lt;/FONT&gt;

} 

&lt;FONT class=key&gt;#include&lt;/FONT&gt; &quot;&lt;FONT class=chr&gt;imm.h&lt;/FONT&gt;&quot; &lt;FONT class=com&gt;//헤더 반드시 추가하고 &lt;/FONT&gt;

imm32.lib (라이브러리 파일)를 반드시 링크해주어야 한다! 

**** 라이브러리 추가하기 

프로젝트메뉴 -&amp;gt; 셋팅 -&amp;gt; 링크탭 

 


54. DLL함수정의하기 

임포트함수 :  &lt;FONT class=key&gt;extern&lt;/FONT&gt; &quot;&lt;FONT class=chr&gt;C&lt;/FONT&gt;&quot;  &lt;FONT class=key&gt;__declspec&lt;/FONT&gt;(&lt;FONT class=key&gt;dllimport&lt;/FONT&gt;)   리터형  함수명(매개변수,...) ; 

  - 메인프로그램에서 DLL에 있는 함수를 호출할때 사용한다. 

 


엑스포트함수 :  &lt;FONT class=key&gt;extern&lt;/FONT&gt; &quot;&lt;FONT class=chr&gt;C&lt;/FONT&gt;&quot;  &lt;FONT class=key&gt;__declspec&lt;/FONT&gt;(&lt;FONT class=key&gt;dllexport&lt;/FONT&gt;)   리터형  함수명(매개변수,...) 

                      { 

                             내용; 

                      } 
&lt;/PRE&gt;&lt;PRE&gt;출처 : &lt;A class=con_link title=&quot;제목 부분을 클릭하면&amp;#10;원 게시물을 볼 수 있습니다.&quot; href=&quot;http://tong.nate.com/boxitem/post.do?action=read&amp;amp;_boxID=1670250&amp;amp;_tongID=825686&amp;amp;_boxItemID=30050194&amp;amp;_reloadTag=y&quot; target=_blank&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;Tong - navy9370님의 MFC통 &lt;/FONT&gt;&lt;/U&gt;&lt;DIV class=autosourcing-stub&gt;&lt;/DIV&gt;&lt;/A&gt;&lt;/PRE&gt;</description>
      <category>Computer Engineering/MFC</category>
      <author>Thunders</author>
      <guid isPermaLink="true">https://thunders.tistory.com/34</guid>
      <comments>https://thunders.tistory.com/entry/MFC-Tip#entry34comment</comments>
      <pubDate>Wed, 19 Aug 2009 03:18:52 +0900</pubDate>
    </item>
    <item>
      <title>외부 Bitmap 파일 로딩(LoadImage)</title>
      <link>https://thunders.tistory.com/entry/%EC%99%B8%EB%B6%80-Bitmap-%ED%8C%8C%EC%9D%BC-%EB%A1%9C%EB%94%A9LoadImage</link>
      <description>&lt;br /&gt;
비트맵 이미지 로딩하는 방법...&lt;br /&gt;
&lt;br /&gt;&lt;FONT color=#000000&gt;CBitmap bitmap;&lt;br /&gt;
&lt;br /&gt;HANDLE handle = ::LoadImage( AfxGetInstanceHandle(),&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lpszFileName,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMAGE_BITMAP,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LR_LOADMAP3DCOLORS | LR_LOADFROMFILE );&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
if ( !handle )&amp;nbsp;&amp;nbsp;&amp;nbsp; // There were some problems during loading the image&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FALSE;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
bitmap.Attach( (HBITMAP)handle );&lt;/FONT&gt; &lt;br /&gt;
&lt;br /&gt;참고 1 :&amp;nbsp;MSDN의 LoadImage&lt;br /&gt;
참고 2 : &lt;A href=&quot;http://www.winapi.co.kr/reference/Function/LoadImage.htm&quot;&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;http://www.winapi.co.kr/reference/Function/LoadImage.htm&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;</description>
      <category>Computer Engineering/MFC</category>
      <author>Thunders</author>
      <guid isPermaLink="true">https://thunders.tistory.com/33</guid>
      <comments>https://thunders.tistory.com/entry/%EC%99%B8%EB%B6%80-Bitmap-%ED%8C%8C%EC%9D%BC-%EB%A1%9C%EB%94%A9LoadImage#entry33comment</comments>
      <pubDate>Fri, 14 Aug 2009 01:54:03 +0900</pubDate>
    </item>
    <item>
      <title>Direct Draw 초기화 및 종료</title>
      <link>https://thunders.tistory.com/entry/Direct-Draw-%EC%B4%88%EA%B8%B0%ED%99%94-%EB%B0%8F-%EC%A2%85%EB%A3%8C</link>
      <description>&lt;br /&gt;

&lt;TABLE width=650&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD align=middle&gt;&lt;FONT color=#0000ff size=5&gt;&lt;B&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=20&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;&amp;nbsp; &lt;SPAN style=&quot;FONT-SIZE: 10pt&quot;&gt;Direct X에서 가장 기본적이고 중요하며, M/S에서 투자를 가장 많이 하고 있는 부분입니다. 모든 화면 처리는 최종적으로 DirectDraw를 통해 이루어지며, 각종 애니메이션과 배경등에 대한 처리를 위한 기본적인 설정작업은 여기에서 이루어지게 됩니다. 즉, 팔레트라는 요소를 직접 제어하게 해 주는 요소 입니다. 이 처럼 DirectDraw를 어떻게 사용하느냐에 따라, 게임의 속도가 판가름 난다고 해도 과언이 아닌 아주 중요한 부분입니다. DirectDraw를 능숙하게 다루기 위해서는 표면처리에 대한 개념을 확실히 알고 넘어가는 것이 중요합니다. 즉, 전면 표면(Primary Surface), 후면 표면(Back Surface), 그리고 각종 오프스크린(OffScreen)에 대한 처리를 능숙하게 할 수 있다면 게임에서 절반 정도는 처리를 할 수 있는 능력이 생기게 됩니다. 처음에는 H/W의 접근을 기계어(Assembly, C 등)를 이용하여 접근 하였습니다. 하지만 Direct X를 이용하면서 부터는 이들에 대한 접근도 훨씬 쉽게 처리할 수 있게 되었습니다. 다음은 DirectDraw를 사용하기 위한 기본적인 설정 부분을 설명하겠습니다. 나머지 부분은 게임 제작 가이드라는 항목에서 자세히 설명하도록 하겠습니다. &lt;/SPAN&gt;&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=20&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align=middle&gt;&lt;FONT color=#ff00ff size=3&gt;&lt;B&gt;DirectDraw 초기화 및 종료&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=20&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT color=#0000ff&gt;&lt;B&gt;1. DirectDraw 객체 생성하기&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;DirectDraw를 사용하기 위해서는&lt;B&gt;* lpGUID, LPDIRECTDRAW FAR * lplpDD,&lt;/B&gt;&lt;br /&gt;

&lt;BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;&amp;nbsp;&amp;nbsp; &lt;B&gt;IUnknown FAR * pUnkOuter );&lt;/B&gt;&lt;/BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;
&lt;BLOCKQUOTE&gt;&lt;B&gt;lpGUID&lt;/B&gt; : DirectDraw 객체를 생성하기 위한 Display device의 GUID(Global Unique Identifier).&lt;br /&gt;
인자가 NULL 이면, DirectDrawCreate() 함수는 Display device를 활성화 하기 위해 DirectDraw 객체를 생성한다. 
&lt;P&gt;&lt;B&gt;lplpDD&lt;/B&gt; : DirectDraw 객체를 저장하고 있는 포인터를 지시하는 포인터. 이 포인터는 DirectDraw를 초기화 할 때 사용한다. 
&lt;P&gt;&lt;B&gt;pUnkOuter&lt;/B&gt; : 이 인자는 많은 DirectX 함수를 호출할 때 사용된다. 미래에 사용될 것에 대한 확장형으로, 현재는 NULL을 대입하면 된다.&lt;/P&gt;&lt;/SMALL&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=20&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align=middle&gt;&lt;SMALL&gt;&lt;B&gt;다음은 이들의 사용예이다.&lt;/B&gt;&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;TABLE width=600 align=center border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;HRESULT ddrval; ...&lt;br /&gt;
ddrval = DirectDrawCreate(NULL, &amp;amp;lpDD, NULL);&lt;br /&gt;
if(ddrval != DD_OK) // DD_OK가 아니면 DirectDraw 객체 생성 실패&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error 처리 routine 과 return FALSE;&lt;br /&gt;
}&lt;br /&gt;
&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=20&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT color=#0000ff&gt;&lt;B&gt;2. Process 독점하기&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;일단 게임을 위해서는 Process를 독점할 필요가 있다. 이는 프로그램이 CPU를 독점하여 수행속도를 빨리하며, 다른 응용 프로그램과의 연계등에 대한 신경을 쓸 필요가 없게 하기 위함이다. CPU를 독점하기 위해서는 아래와 같이 SetCooperativeLevel() 함수를 써야 한다. 
&lt;P&gt;
&lt;BLOCKQUOTE&gt;&lt;B&gt;HRETULT SetCooperativeLevel (LPDIRECTDRAW lpDD, HWND hWnd,&lt;br /&gt;

&lt;BLOCKQUOTE&gt;DWORD dwFlags)&lt;/B&gt;;&lt;/BLOCKQUOTE&gt;&lt;B&gt;lpDD&lt;/B&gt; : 초기화에서 설명한 DirectDraw 객체에 대한 포인터&lt;br /&gt;
&lt;B&gt;hWnd&lt;/B&gt; : Windows handle. 보통 이 handle은 작업전환(ALT+TAB key)에 관한&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; message를 보낼 때 사용한다.&lt;br /&gt;
&lt;B&gt;dwFlags&lt;/B&gt; : 매개 변수의 적용 방법은 다음과 같다. &lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;
&lt;TABLE width=600 align=center border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD align=middle width=&quot;30%&quot;&gt;dwFlags&lt;/TD&gt;
&lt;TD align=middle width=&quot;70%&quot;&gt;내 용&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=&quot;30%&quot;&gt;DDSCL_ALLOWMODEX&lt;/TD&gt;
&lt;TD width=&quot;70%&quot;&gt;ModeX(해상도 : 320 × 320, 320 × 400)를 지원&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=&quot;30%&quot;&gt;DDSCL_ALLOWREBOOT&lt;/TD&gt;
&lt;TD width=&quot;70%&quot;&gt;전체 화면을 사용할 때 Ctrl + Alt + Del key 가능&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=&quot;30%&quot;&gt;DDSCL_EXCLUSIVE&lt;/TD&gt;
&lt;TD width=&quot;70%&quot;&gt;해상도를 바꾸거나 flipping 작업을 할 때 사용&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=&quot;30%&quot;&gt;DDSCL_FULLSCREEN&lt;/TD&gt;
&lt;TD width=&quot;70%&quot;&gt;GDI를 사용하지 않는 전체화면 모드 사용 가능&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=&quot;30%&quot;&gt;DDSCL_NORMAL&lt;/TD&gt;
&lt;TD width=&quot;70%&quot;&gt;일반적인 Windows 창에서 프로그램이 가능&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=&quot;30%&quot;&gt;DDSCL_NOWINDOWCHANGES&lt;/TD&gt;
&lt;TD width=&quot;70%&quot;&gt;활성화 된 프로그램의 Windows 창 변경이 불가능&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;TABLE width=600 align=center border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;HRESULT ddrval; ddrval = SetCooperativeLevel ( hWnd, DDSCL_EXCLUSIVE |&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDSCL_FULLSCREEN );&lt;br /&gt;
if(ddrval != DD_OK) // DD_OK가 아니면 SetCooperativeLevel() 실패&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error 처리 routine 과 return FALSE;&lt;br /&gt;
}&lt;br /&gt;
&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=20&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT color=#0000ff&gt;&lt;B&gt;3. Video Mode 설정&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;DirectDraw는 320 × 320, 320 × 400, 640 × 480 등의 해상도를 지원하며, 색상도 256 color(8 bits)&lt;br /&gt;
에서 true color(24 bits)까지 지원이 된다. 
&lt;P&gt;
&lt;BLOCKQUOTE&gt;&lt;B&gt;HRESULT SetDisplayMode ( LPDIRECTDRAW lpDD, DWORD dwWidth,&lt;/B&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;DWORD dwHeight, DWORD dwBpp )&lt;/B&gt;; 
&lt;P&gt;&lt;B&gt;lpDD&lt;/B&gt; : DirectDraw 객체의 포인터&lt;br /&gt;
&lt;B&gt;dwWidth, dwHeight&lt;/B&gt; : 가로 × 세로의 해상도&lt;br /&gt;
&lt;B&gt;dwBpp&lt;/B&gt; : color 수 -&amp;gt; Bpp(Bit per pixel)&lt;br /&gt;
&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;TABLE width=600 align=center border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;HRESULT ddrval;&lt;br /&gt;
ddrval = lpDD-&amp;gt;SetDisplayMode ( 640, 480, 8 ); // 해상도 : 640 × 480, 256 color 사용&lt;br /&gt;
if(ddrval != DD_OK) // DD_OK가 아니면 SetDisplayMode() 실패&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error 처리 routine 과 return FALSE;&lt;br /&gt;
}&lt;br /&gt;
&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=20&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT color=#0000ff&gt;&lt;B&gt;4. DirectDraw 종료하기&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;DirectDraw를 초기화한 경우 프로그램을 종료하기 전에 반드시 DirectDraw 객체와 지금까지 생성한 모든 Direct 객체들을 종료해야 한다. 
&lt;P&gt;
&lt;BLOCKQUOTE&gt;
&lt;TABLE width=600 border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;void DDDestroy()&lt;br /&gt;
{&lt;br /&gt;

&lt;BLOCKQUOTE&gt;lpPrimary-&amp;gt;Release(); // 자식 Class ( 즉, lpDD 내부에 lpPrimary가 존재 )&lt;br /&gt;
lpDD-&amp;gt;Release(); // 부모 Class&lt;br /&gt;
&lt;/BLOCKQUOTE&gt;}&lt;br /&gt;
&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=20&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align=middle&gt;&lt;FONT color=#ff00ff size=3&gt;&lt;B&gt;표면(surface) 생성&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;표면이란 이미지(Image)를 저장하기 위한 메모리의 특정 부분을 말하며, 화면과 바로 연결된 표면(Surface)과 그렇지 않은 표면(Offscreen)으로 나누어 진다.&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT color=#0000ff&gt;&lt;B&gt;1. 1차 표면 ( 전면, Primary Surface )&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;
&lt;BLOCKQUOTE&gt;우리가 보는 화면은 보통 1차 표면(전면, Primary Surface)이라 불리는 표면과 동일하다. 즉, 전면에 어떤 값을 대입하면, 이에 대한 내용이 화면에 그대로 반영된다. 따라서 전면의 크기는 화면 해상도와 칼라 수에의해 결정된다. &lt;/BLOCKQUOTE&gt;&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT color=#0000ff&gt;&lt;B&gt;2. 2차 표면 (후면, Back Surface)&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;
&lt;BLOCKQUOTE&gt;후면은 화면과 직접 연결되어 있지 않기 때문에 그리는 내용이 바로 표면에 나타나지는 않는다. 그러나 애니메이션(Animation)과 같은 연속적인 그림을 보여 주려면, 후면에 한 장의 완전한 그림을 그린 후 이를 전면과 서로 바꾸어서 보여주어야 한다. 이 처럼 화면에 바로 나타나지는 않지만, 다음에 보여주어야 할 내용을 저장하는 장소로서 사용이 가능하다. &lt;/BLOCKQUOTE&gt;&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT color=#0000ff&gt;&lt;B&gt;3. 표면 버퍼 ( Offscreen )&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;
&lt;BLOCKQUOTE&gt;화면에 보이는 표면이 아니라, 그림 이미지(Image)를 저장하는 임시 기억 공간. 저장된 이미지는 전면이나 후면에 복사를 하여 화면에 보여줄 수 있게 된다. &lt;/BLOCKQUOTE&gt;&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT color=#0000ff&gt;&lt;B&gt;4. 표면 만들기&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;
&lt;BLOCKQUOTE&gt;표면을 만들려면 먼저 DirectDraw를 초기화 해야 한다 그리고 나서 DirectDraw 객체에 대한 표면을 생성한다. 여기서는 DDInit() 라는 함수로 DirectDraw를 초기화 하고 표면을 생성하는 방법을 정리하였다.&lt;/BLOCKQUOTE&gt;&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=10&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;TABLE width=600 align=center border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;SMALL&gt;
&lt;BLOCKQUOTE&gt;#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ddraw.h&amp;gt;&lt;br /&gt;

&lt;P&gt;LPDIRECTDRAW lpDD;&lt;br /&gt;
LPDIRECTDRAWSURFACE lpDDSprimary;&lt;br /&gt;
LPDIRECTDRAWSURFACE lpDDSBack;&lt;br /&gt;
HRESULT ddrval; 
&lt;P&gt;BOOL DDInit(HWND hWnd) // DirectDraw 객체 생성&lt;br /&gt;
{&lt;br /&gt;

&lt;BLOCKQUOTE&gt;ddrval = DirectDrawCreate(NULL, &amp;amp;lpDD, NULL);&lt;br /&gt;
if(ddrval != DD_OK) // DD_OK가 아니면 DirectDraw 객체 생성 실패&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FALSE;&lt;br /&gt;
}&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;ddrval = SetCooperativeLevel ( hWnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN ); &lt;br /&gt;
if(ddrval != DD_OK) // DD_OK가 아니면 SetCooperativeLevel() 실패&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FALSE;&lt;br /&gt;
} 
&lt;P&gt;ddrval = lpDD-&amp;gt;SetDisplayMode ( 640, 480, 8 ); // 해상도와 칼라 설정&lt;br /&gt;
if(ddrval != DD_OK) // DD_OK가 아니면 SetDisplayMode() 실패&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FALSE;&lt;br /&gt;
} &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;// 1차 표면 생성&lt;br /&gt;
DDSURFACEDESC ddsd;&lt;br /&gt;
ZeroMemory (&amp;amp;ddsd, sizeof(ddsd) );&lt;br /&gt;
ddsd.dwSize = sizeof(ddsd);&lt;br /&gt;
ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;&lt;br /&gt;
ddsd.dwBackBufferCount = 1;&lt;br /&gt;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FILP | DDSCAPS_COMPLEX;&lt;br /&gt;
ddrval = lpDD-&amp;gt;CreateSurface(&amp;amp;ddsd, &amp;amp;lpDDSPrimary, NULL); 
&lt;P&gt;if(ddrval != DD_OK)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FALSE;&lt;br /&gt;
}&lt;/P&gt;// 2차 표면 생성&lt;br /&gt;
DDSCAPS ddscaps;&lt;br /&gt;
ddscaps.dwCaps = DDSCAPS_BACKBUFFER;&lt;br /&gt;
ddrval = lpDDSPrimary-&amp;gt;GetAttachedSurface(&amp;amp;ddscaps, &amp;amp;lpDDSBack); 
&lt;P&gt;if(ddrval != DD_OK)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FALSE;&lt;br /&gt;
} 
&lt;P&gt;return TRUE; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;}&lt;br /&gt;
&lt;/BLOCKQUOTE&gt;&lt;/SMALL&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD height=20&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD align=middle&gt;&lt;A class=con_link href=&quot;http://www.gameis.org/Korean/Game_Dx/About-DX.htm&quot; target=_blank&gt;&lt;FONT color=#0000ff&gt;back &lt;/FONT&gt;
&lt;DIV class=autosourcing-stub&gt;
&lt;P style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 11px 0px 7px; PADDING-TOP: 0px; FONT-STYLE: normal; FONT-FAMILY: Dotum&quot;&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <category>Computer Engineering/DirectX</category>
      <author>Thunders</author>
      <guid isPermaLink="true">https://thunders.tistory.com/32</guid>
      <comments>https://thunders.tistory.com/entry/Direct-Draw-%EC%B4%88%EA%B8%B0%ED%99%94-%EB%B0%8F-%EC%A2%85%EB%A3%8C#entry32comment</comments>
      <pubDate>Fri, 14 Aug 2009 01:53:03 +0900</pubDate>
    </item>
    <item>
      <title>wpf 비디오 플레이어 만들기</title>
      <link>https://thunders.tistory.com/entry/wpf-%EB%B9%84%EB%94%94%EC%98%A4-%ED%94%8C%EB%A0%88%EC%9D%B4%EC%96%B4-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
      <description>&lt;br /&gt;

&lt;P&gt;&lt;FONT face=굴림 size=2&gt;WPF는 문서, 이미지, 비디오 등이 통합된 단일 개발 환경으로 제공된다고 알고 있다. 미디어를 플레이하는 것도 무척 쉽다. &lt;br /&gt;
MediaElement를 사용해서 비주얼하게 플레이하면 된다. &lt;br /&gt;
아래는 XAML 코드이다. &lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&amp;lt;Window x:Class=&quot;wpfPlayer.Window1&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns=&quot;&lt;A href=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot; target=_blank&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:x=&quot;&lt;A href=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot; target=_blank&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Title=&quot;Window1&quot; Height=&quot;391&quot; Width=&quot;612&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;MediaElement Source=&quot;c:\work\aspnet.wmv&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=굴림 size=2&gt;&amp;lt;/Window&amp;gt;&lt;br /&gt;
&lt;br /&gt;클래스에는 아래와 같은 코드를 입력한다. 타이틀에 시간을 출력하기&amp;nbsp;위한 코드가 있고 파일명을&amp;nbsp;MediaElement요소에서 주어도 되고 아래와 같은 코드로 입력해도 된다. &lt;br /&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public partial class Window1 : Window&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MediaTimeline _audioTimeline;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MediaClock _audioClock; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=굴림 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Window1()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent();&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=굴림 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _audioTimeline = new MediaTimeline();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _audioTimeline.Source =&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new Uri(@&quot;c:\work\aspnet.wmv&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _audioClock = _audioTimeline.CreateClock();&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=굴림 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MediaPlayer player = new MediaPlayer();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; player.Clock = _audioClock;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=굴림 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _audioClock.CurrentTimeInvalidated += new EventHandler(_audioClock_CurrentTimeInvalidated);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=굴림 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void _audioClock_CurrentTimeInvalidated(object sender, EventArgs e)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Title = _audioClock.CurrentTime.ToString();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/182A6A104A1A3BA711&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F182A6A104A1A3BA711&quot; width=&quot;488&quot; height=&quot;312&quot; alt=&quot;&quot; filename=&quot;wpf_media.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/div&gt;
&lt;/FONT&gt;&lt;/P&gt;</description>
      <category>Computer Engineering/WPF</category>
      <author>Thunders</author>
      <guid isPermaLink="true">https://thunders.tistory.com/31</guid>
      <comments>https://thunders.tistory.com/entry/wpf-%EB%B9%84%EB%94%94%EC%98%A4-%ED%94%8C%EB%A0%88%EC%9D%B4%EC%96%B4-%EB%A7%8C%EB%93%A4%EA%B8%B0#entry31comment</comments>
      <pubDate>Mon, 25 May 2009 15:33:41 +0900</pubDate>
    </item>
    <item>
      <title>[맨유 EPL우승] 7만여 관중, &amp;ldquo;우리는 박지성을 보고싶다&amp;rdquo;</title>
      <link>https://thunders.tistory.com/entry/%EB%A7%A8%EC%9C%A0-EPL%EC%9A%B0%EC%8A%B9-7%EB%A7%8C%EC%97%AC-%EA%B4%80%EC%A4%91-%E2%80%9C%EC%9A%B0%EB%A6%AC%EB%8A%94-%EB%B0%95%EC%A7%80%EC%84%B1%EC%9D%84-%EB%B3%B4%EA%B3%A0%EC%8B%B6%EB%8B%A4%E2%80%9D</link>
      <description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/16277F264A102DC4E3&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F16277F264A102DC4E3&quot; width=&quot;380&quot; height=&quot;530&quot; alt=&quot;&quot; filename=&quot;park.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/div&gt;
&lt;br /&gt;
[스포탈코리아=맨유특약] 16일(이하 현지시간) 올드 트라포드에서 개최된 2008/2009 잉글리시 프리미어리그 37라운드, 맨체스터 유나이티드(이하 맨유)와 아스널의 경기는 존재하지는 않지만 ‘EPL 결승전’이라고 불리울 만큼 전세계 프리미어리그 팬들의 집중적인 관심을 받았다.&lt;br /&gt;
&lt;br /&gt;이 경기에서 아스널은 복수전을 꿈꿨다. 특히 지난 두 차례의 챔피언스리그 준결승에서 패배했기에 더 이상 패배를 용납할 수 없는 상황이었다. 하지만 맨유는 패배만 면할 경우 우승을 확정할 수 있었기에 다소 심리적 부담이 덜 했다. &lt;br /&gt;
&lt;br /&gt;물론 맨유 팬들은 완벽한 승리를 원했다. 시즌 마지막 홈 경기에서 달콤한 승리와 함께 팀이 우승 트로피를 품에 안는 모습을 보고 싶었던 7만여 관중들은 경기 초반부터 뜨거운 성원을 보냈다. &lt;br /&gt;
&lt;br /&gt;이날 퍼거슨 감독은 최근 좋은 모습을 보인 '산소탱크' 박지성을 벤치에 앉혔다. 대신 루니, 호날두, 테베스, 긱스 등을 선발로 출전시키며 승리의 의지를 내보였다. 하지만 맨유는 팽팽한 공방전 속에 전반을 0-0으로 마쳐야 했고, 후반 시작과 함께 맨유의 열혈 서포터스들이 앉아있는 ‘스트레트포드 엔드’는 술렁이기 시작했다. &lt;br /&gt;
&lt;br /&gt;누군가가 '팍!(Park)'을 연호하기 시작한 것이다. ‘런던 킬러’ 박지성을 투입해 아스널의 골문을 열고, 우승을 확정짓길 바랐던 것이다. 7만여 관중은 순식간에 ‘박지성 송’을 합창했다. 이들의 바람이 통했던 것일까? 퍼거슨 감독은 후반 22분, 테베스를 빼고 박지성을 투입했다. 박지성 역시 팬들의 성원과 퍼거슨 감독의 바램에 화답하듯 좌우를 누비며 좋은 활약을 펼쳤고, 우승의 기쁨을 동료들과 함께 했다. &lt;br /&gt;
&lt;br /&gt;맨체스터(영국)= 맨유닷컴 김동환(mukorea@manutd.co.uk)&lt;br /&gt;
ⓒCopyright Manchester United/ManUtd.kr/스포탈코리아 &lt;br /&gt;

&lt;DIV&gt;
&lt;HR style=&quot;BORDER-TOP-WIDTH: 1px; DISPLAY: block; BORDER-LEFT-WIDTH: 0px; BORDER-LEFT-COLOR: black; BORDER-BOTTOM-WIDTH: 0px; BORDER-BOTTOM-COLOR: black; BORDER-TOP-COLOR: black; HEIGHT: 1px; BORDER-RIGHT-WIDTH: 0px; BORDER-RIGHT-COLOR: black&quot;&gt;
&lt;/DIV&gt;&lt;br /&gt;
결국 맨유 정규리그 우승을 확정지었다.&lt;br /&gt;
&lt;br /&gt;박지성은 한국의 자랑이다 ^___________^</description>
      <category>Sports</category>
      <author>Thunders</author>
      <guid isPermaLink="true">https://thunders.tistory.com/29</guid>
      <comments>https://thunders.tistory.com/entry/%EB%A7%A8%EC%9C%A0-EPL%EC%9A%B0%EC%8A%B9-7%EB%A7%8C%EC%97%AC-%EA%B4%80%EC%A4%91-%E2%80%9C%EC%9A%B0%EB%A6%AC%EB%8A%94-%EB%B0%95%EC%A7%80%EC%84%B1%EC%9D%84-%EB%B3%B4%EA%B3%A0%EC%8B%B6%EB%8B%A4%E2%80%9D#entry29comment</comments>
      <pubDate>Mon, 18 May 2009 00:32:16 +0900</pubDate>
    </item>
  </channel>
</rss>