<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>for(  ;  ;  )</title>
    <link>https://frog3147.tistory.com/</link>
    <description>그냥 마냥 이것 저것..</description>
    <language>ko</language>
    <pubDate>Thu, 11 Jun 2026 22:49:46 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>frog3147</managingEditor>
    <item>
      <title>MFC 분할 윈도우(4) - 다중 분할 윈도우 만들기</title>
      <link>https://frog3147.tistory.com/entry/MFC-%EB%B6%84%ED%95%A0-%EC%9C%88%EB%8F%84%EC%9A%B04-%EB%8B%A4%EC%A4%91-%EB%B6%84%ED%95%A0-%EC%9C%88%EB%8F%84%EC%9A%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
      <description>이번엔 다중 분할 윈도우 예제입니다.&lt;div&gt;
앞서 만들었던 정적 분할 윈도우 예제 소스를 약간 수정만 하면 쉽게 다중 분할 윈도우를 만들 수 있습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;◎ &amp;nbsp;CSplitterWnd 클래스의 인스턴스 생성&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;다중 분할 윈도우는 생성된 분할 윈도우의 위에 또 다른 분할 윈도우를 올려 놓는 것입니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; face=&quot;Dotum, Verdana, AppleGothic, sans-serif&quot;&gt;그래서 필요한 분할 윈도우의 갯수만큼 인스턴스를 생성해야 합니다.&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; face=&quot;Dotum, Verdana, AppleGothic, sans-serif&quot;&gt;아래와 같이 두 개의 인스턴스를 만듭니다.&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; face=&quot;Dotum, Verdana, AppleGothic, sans-serif&quot;&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; face=&quot;Dotum, Verdana, AppleGothic, sans-serif&quot;&gt;&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;&lt;b&gt;
CSplitterWnd &lt;/b&gt;m_wndSplitter1;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;&lt;b&gt;
CSplitterWnd &lt;/b&gt;m_wndSplitter2;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
만드는 위치는 물론 CMainFrame 클래스입니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
◎ &amp;nbsp;OnCreateClient의 재정의&lt;/div&gt;
&lt;div&gt;
다음으로 OnCreateClient함수를 재정의 합니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;m_wndSplitter1을 이용해서 윈도우를 좌, 우로 나누어줍니다.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;if (!m_wndSplitter1.CreateStatic(this, 1, 2))&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;{&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;	&lt;/font&gt;&lt;/span&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;TRACE0(&quot;Fail to create splitter.\n&quot;);&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;	&lt;/font&gt;&lt;/span&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;return FALSE;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;}&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
그리고, m_wndSplitter2를 이용해서 먼저 생성된 m_wndSplitter1로 나누어진 왼쪽 뷰 영역을 다시 상하로 나누어줍니다. CreateStatic함수를 이용하며 첫번째 인자에 m_wndSplitter1의 주소를 넣어주고 다음 인자로 2,1을 넣어서 상,하로 나누어줍니다. 마지막으로 들어가는 인자는 m_wndSplitter1에 의해 나누어진 분할 윈도우의 Row, Col값을 이용하여 m_wndSplitter2로 분할할 뷰의 영역을 지정하게 됩니다. 0,0이 들어가있으니 왼쪽 윈도우를 상,하로 나누는 것이고, 오른쪽 윈도우를 나눌때는 IdFromRowCol(0, 1)이라고 넣어주면 됩니다.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;
if (!m_wndSplitter2.CreateStatic(&amp;amp;m_wndSplitter1, 2, 1, WS_CHILD | WS_VISIBLE | WS_BORDER, m_wndSplitter1.IdFromRowCol(0, 0)))&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;{&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;	&lt;/font&gt;&lt;/span&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;TRACE0(&quot;Fail to create splitter.\n&quot;);&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;	&lt;/font&gt;&lt;/span&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;return FALSE;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;}&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
m_wndSplitter1과 m_wndSplitter2에 의해 나누어진 각각의 뷰 영역에 CreateView함수로 뷰 클래스를 설정해주고 SetColumnInfo함수를 이용해 왼쪽 뷰 영역의 크기를 다시 한 번 잡아줍니다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;
m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CSplitter_StaticView), CSize(300, 300),pContext);&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;m_wndSplitter2.CreateView(1, 0, RUNTIME_CLASS(CSplitter_StaticView), CSize(300, 300),pContext);&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;m_wndSplitter1.CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(300, 300), pContext);&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;&lt;br /&gt;
&lt;/font&gt;
&lt;/div&gt;
&lt;div&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;
m_wndSplitter1.SetColumnInfo(0, 300, 10);&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;&lt;br /&gt;
&lt;/font&gt;
&lt;/div&gt;
&lt;div&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;
return TRUE;&lt;/font&gt; &amp;nbsp;-&amp;gt; 빼먹지맙시다.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
컴파일 후 실행하면 아래와 같은 다중 분할 윈도우가 만들어집니다.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&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/115B3C054C44282892&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F115B3C054C44282892&quot; width=&quot;560&quot; height=&quot;336&quot; alt=&quot;&quot; filename=&quot;cfile9.uf@115B3C054C44282892CC9D.jpg&quot; filemime=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
아래는 예제 소스입니다.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/131FFF254C44286C40&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;Splitter_Multi.zip&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/font&gt;&lt;/div&gt;</description>
      <category>Programming Tips/MFC</category>
      <category>CreateStatic</category>
      <category>MFC</category>
      <category>MFC Programming</category>
      <category>MFC/C++</category>
      <category>Splitter Bar</category>
      <category>Splitter Window</category>
      <category>다중 분할</category>
      <category>다중 분할 윈도우</category>
      <author>frog3147</author>
      <guid isPermaLink="true">https://frog3147.tistory.com/162</guid>
      <comments>https://frog3147.tistory.com/entry/MFC-%EB%B6%84%ED%95%A0-%EC%9C%88%EB%8F%84%EC%9A%B04-%EB%8B%A4%EC%A4%91-%EB%B6%84%ED%95%A0-%EC%9C%88%EB%8F%84%EC%9A%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0#entry162comment</comments>
      <pubDate>Wed, 7 Jul 2010 09:29:53 +0900</pubDate>
    </item>
    <item>
      <title>MFC 분할 윈도우(3) - 정적 분할 윈도우 만들기</title>
      <link>https://frog3147.tistory.com/entry/MFC-%EB%B6%84%ED%95%A0-%EC%9C%88%EB%8F%84%EC%9A%B03-%EC%A0%95%EC%A0%81-%EB%B6%84%ED%95%A0-%EC%9C%88%EB%8F%84%EC%9A%B0</link>
      <description>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;SDI기반에서 정적 분할 윈도우를 만드는 방법에 대한 간단한 예제입니다.&lt;/span&gt;&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;정적 분할 윈도우를 만드는 방법은 기본적으로 동적 분할 윈도우와 비슷합니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;◎&amp;nbsp;&amp;nbsp;새로운 View 생성&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; face=&quot;Dotum, Verdana, AppleGothic, sans-serif&quot;&gt;정적 분할 윈도우는 하나의 Document에 연결된 서로 다른 뷰를 사용하기 위해 사용하는 것입니다.&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; face=&quot;Dotum, Verdana, AppleGothic, sans-serif&quot;&gt;다시 말해서 같은 데이터를 다른 방식으로 보여주기 위함이라고 볼 수 있겠지요.&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; face=&quot;Dotum, Verdana, AppleGothic, sans-serif&quot;&gt;그래서 다른 View를 하나 더 생성해야 합니다. 필요에 따라 CView나 FormView 같은 클래스의 상속을 받&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; face=&quot;Dotum, Verdana, AppleGothic, sans-serif&quot;&gt;아서 생성하면 되겠죠. 저는 FormView에서 상속을 받아 만들었습니다. FormView의 스타일은 Child이어야 합니다. View를 생성한 후에는 MainFrame 클래스에 Doc의 헤더파일과 생성된 뷰의 헤더파일을 인클루드 합니다. Doc의 헤더파일이 View의 헤더파일보다 위에 있어야 합니다.&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; face=&quot;Dotum, Verdana, AppleGothic, sans-serif&quot;&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; face=&quot;Dotum, Verdana, AppleGothic, sans-serif&quot;&gt;&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;#include &quot;Splitter_StaticDoc.h&quot;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;#include &quot;Splitter_StaticView.h&quot;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#5C7FB0&quot;&gt;#include &quot;RightView.h&quot;&lt;/font&gt;&lt;/div&gt;
&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; face=&quot;Dotum, Verdana, AppleGothic, sans-serif&quot;&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;◎&amp;nbsp; CSplitterWnd 클래스의 인스턴스 선언&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;다음은 분할 윈도우가 가지는 여러가지 기능을 담당하는 CSplitterWnd 클래스의 인스턴스를 선언합니다.&lt;/span&gt;&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;동적 분할 윈도우와 똑같은 과정입니다.&lt;br /&gt;
&lt;br /&gt;
CMainFrame의 멤버 변수로 아래와 같이 선언합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;font color=&quot;#5c7fb0&quot;&gt;CSplitterWnd m_wndSplitter;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;&lt;font color=&quot;#5c7fb0&quot;&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;&lt;font color=&quot;#5c7fb0&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); &quot;&gt;◎&amp;nbsp; OnCreateClient 함수의 재정의&lt;br /&gt;
프로그램 상에서 분할 윈도우의 위치는 프레임 윈도우와 뷰 윈도우의 사이가 됩니다. 따라서 프레임 윈도우의 위에 분할 윈도우가 위치해서 영역을 나누고 각각의 영역에 뷰 윈도우를 생성하여 올려지는 형태가 됩니다. OnCreateClient 함수는 클라이언트 영역이 생성될 때 호출되는 함수이며, OnCreateClient 함수를 재정의하여 영역을 분할합니다. 이 부분 역시 동적 분할과 똑같습니다만 동적 분할의 경우에는&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;&lt;font color=&quot;#5c7fb0&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); &quot;&gt;CSplitterWnd 클래스의 Create함수를 이용하는 반면에 정적 분할에서는 CreateStatic함수를 이용하여&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;&lt;font color=&quot;#5c7fb0&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); &quot;&gt;분할 윈도우를 생성하고 CreateView함수를 이용해서 분할된 각각의 영역에 사용자가 원하는 View를&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;&lt;font color=&quot;#5c7fb0&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); &quot;&gt;할당합니다.&lt;br /&gt;
&lt;br /&gt;
아래 그림과 같이 Ctrl + w로 클래스 위저드를 열고 OnCreateClient 함수를 추가합니다.&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;&lt;font color=&quot;#5c7fb0&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); &quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;&lt;font color=&quot;#5c7fb0&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); &quot;&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/111B171A4C32BB0977&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F111B171A4C32BB0977&quot; width=&quot;560&quot; height=&quot;371&quot; alt=&quot;&quot; filename=&quot;cfile21.uf@111B171A4C32BB097782BC.jpg&quot; filemime=&quot;&quot;/&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;&lt;font color=&quot;#5c7fb0&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); &quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;&lt;font color=&quot;#5c7fb0&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); &quot;&gt;추가된 OnCreateClient함수에 아래와 같이 소스를 추가하고 return을 TRUE로 바꿔줍니다.&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;&lt;font color=&quot;#5c7fb0&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); &quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;&lt;font color=&quot;#5c7fb0&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); &quot;&gt;&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;if (!m_wndSplitter.CreateStatic(this, 1, 2))&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;{&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;	&lt;/font&gt;&lt;/span&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;TRACE0(&quot;Fail to create splitter.\n&quot;);&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;	&lt;/font&gt;&lt;/span&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;return FALSE;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;}&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CSplitter_StaticView), CSize(300, 300), pContext);&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(300, 300), pContext);&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;return TRUE;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
컴파일 후 실행하면 아래의 그림과 같이 정적 분할로 생성된 윈도우가 나타납니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&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/20408D024C32C52A15&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F20408D024C32C52A15&quot; width=&quot;560&quot; height=&quot;336&quot; alt=&quot;&quot; filename=&quot;cfile2.uf@20408D024C32C52A15FF93.jpg&quot; filemime=&quot;&quot;/&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
CreateStatic함수의 원형은 아래와 같습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;BOOL&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;CreateStatic(&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;CWnd*&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;i&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;pParentWnd&lt;/font&gt;&lt;/i&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;,&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; 
&lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;int&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;i&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;nRows&lt;/font&gt;&lt;/i&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;,&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;int&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;i&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;nCols&lt;/font&gt;&lt;/i&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;,&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;DWORD&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; 
&lt;/font&gt;&lt;i&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;dwStyle&lt;/font&gt;&lt;/i&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;=&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;WS_CHILD&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;|&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;WS_VISIBLE,&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;UINT&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; 
&lt;/font&gt;&lt;i&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;nID&lt;/font&gt;&lt;/i&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;=&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;AFX_IDW_PANE_FIRST&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;);&lt;/font&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
pParentWnd와 nRows, nCols만 넘겨주면 됩니다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
CreateView함수의 원형은 아래와 같으며,&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
&lt;p&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;virtual&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;BOOL&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;CreateView(&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;int&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;i&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;row&lt;/font&gt;&lt;/i&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;,&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; 
&lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;int&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;i&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;col&lt;/font&gt;&lt;/i&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;,&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;CRuntimeClass*&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;i&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;pViewClass&lt;/font&gt;&lt;/i&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;,&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; 
&lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;SIZE&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;i&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;sizeInit&lt;/font&gt;&lt;/i&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;,&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;CCreateContext*&lt;/font&gt;&lt;/b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; &lt;/font&gt;&lt;i&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;pContext&lt;/font&gt;&lt;/i&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt; 
&lt;/font&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#0686A8&quot;&gt;);&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#000000&quot;&gt;row와 col의 값에 주의해서 사용하면 됩니다.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#000000&quot;&gt;아래는 예제 소스입니다.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#000000&quot;&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#000000&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/167FD01F4C32C9100B&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;Splitter_Static.zip&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#000000&quot;&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#000000&quot;&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Dotum, Verdana, AppleGothic, sans-serif; &quot;&gt;&lt;font color=&quot;#5c7fb0&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); &quot;&gt;&lt;p&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;</description>
      <category>Programming Tips/MFC</category>
      <category>C/C++</category>
      <category>CreateStatic</category>
      <category>CreateView</category>
      <category>MFC Programming</category>
      <category>정적 분할 윈도우</category>
      <author>frog3147</author>
      <guid isPermaLink="true">https://frog3147.tistory.com/158</guid>
      <comments>https://frog3147.tistory.com/entry/MFC-%EB%B6%84%ED%95%A0-%EC%9C%88%EB%8F%84%EC%9A%B03-%EC%A0%95%EC%A0%81-%EB%B6%84%ED%95%A0-%EC%9C%88%EB%8F%84%EC%9A%B0#entry158comment</comments>
      <pubDate>Fri, 18 Jun 2010 11:27:57 +0900</pubDate>
    </item>
    <item>
      <title>MFC 분할 윈도우(2) - 동적 분할 윈도우 만들기</title>
      <link>https://frog3147.tistory.com/entry/MFC-%EB%B6%84%ED%95%A0-%EC%9C%88%EB%8F%84%EC%9A%B02-%EB%8F%99%EC%A0%81-%EB%B6%84%ED%95%A0-%EC%9C%88%EB%8F%84%EC%9A%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
      <description>&lt;P&gt;SDI기반에서 동적 분할 윈도우를 만드는 방법에 대한 간단한 예제입니다.&lt;br /&gt;
&lt;br /&gt;동적 분할 윈도우를 만드는 과정은 아주 간단합니다.&lt;br /&gt;
&lt;br /&gt;MFC 프로그램에서 윈도우의 형태와 메뉴바 등과 관련된 부분을 담당하는 부분은 CMainFrame입니다.&lt;br /&gt;
분할 윈도우도 CMainFrame에서 만들어줍니다. 아래와 같이 두 과정을 거치면 쉽게 만들 수 있습니다.&lt;br /&gt;
&lt;br /&gt;◎&amp;nbsp; CSplitterWnd 클래스의 인스턴스 선언&lt;br /&gt;
처음해야 될 일은 분할 윈도우가 가지는 여러가지 기능을 담당하는 CSplitterWnd 클래스의 인스턴스를 선언합니다.&lt;br /&gt;
&lt;br /&gt;CMainFrame의 멤버 변수로 아래와 같이 선언합니다.&lt;br /&gt;
&lt;br /&gt;&lt;FONT color=#5c7fb0&gt;CSplitterWnd m_wndSplitter;&lt;/FONT&gt;&lt;br /&gt;
&lt;br /&gt;◎&amp;nbsp; OnCreateClient 함수의 재정의&lt;br /&gt;
프로그램 상에서 분할 윈도우의 위치는 프레임 윈도우와 뷰 윈도우의 사이가 됩니다. 따라서 프레임 윈도우의 위에 분할 윈도우가 위치해서 영역을 나누고 각각의 영역에 뷰 윈도우를 생성하여 올려지는 형태가 됩니다. OnCreateClient 함수는 클라이언트 영역이 생성될 때 호출되는 함수이며, OnCreateClient 함수를 재정의하여 영역을 분할합니다.&lt;br /&gt;
&lt;br /&gt;아래 그림과 같이 Ctrl + w로 클래스 위저드를 열고 OnCreateClient 함수를 추가합니다.&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/201002114C2026212B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F201002114C2026212B&quot; width=&quot;560&quot; height=&quot;371&quot; alt=&quot;&quot; filename=&quot;cfile3.uf@201002114C2026212B232D.jpg&quot; filemime=&quot;&quot;/&gt;&lt;/div&gt;
&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;
추가된 OnCreateClient 함수에 아래의 소스를 추가하고 return을 TRUE로 바꿔줍니다.&lt;br /&gt;
&lt;br /&gt;&lt;FONT color=#5c7fb0&gt;if (!m_wndSplitter.Create(this, 2, 2, CSize(100, 100), pContext))&lt;br /&gt;
&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;TRACE0(&quot;Fail to create splitter.\n&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;return FALSE;&lt;br /&gt;
&amp;nbsp;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#5c7fb0&gt;&amp;nbsp;return TRUE;&lt;/FONT&gt;&lt;br /&gt;
&lt;br /&gt;컴파일 후 실행을 시키면 오른쪽과 아래쪽의 스크롤바 끝 부분에 SplitterBar가 생성된 것을 볼 수 있습니다. &lt;br /&gt;
Create 함수의 원형은 아래와 같습니다.&lt;br /&gt;
&lt;br /&gt;&lt;FONT color=#5c7fb0&gt;&lt;B&gt;BOOL&lt;/B&gt; &lt;B&gt;Create(&lt;/B&gt; &lt;B&gt;CWnd*&lt;/B&gt; pParentWnd&lt;B&gt;,&lt;/B&gt; &lt;B&gt;int&lt;/B&gt; nMaxRows&lt;B&gt;,&lt;/B&gt; &lt;B&gt;int&lt;/B&gt; nMaxCols&lt;B&gt;,&lt;/B&gt; &lt;B&gt;SIZE&lt;/B&gt; sizeMin&lt;B&gt;,&lt;/B&gt; &lt;B&gt;CCreateContext*&lt;/B&gt; pContext&lt;B&gt;,&lt;/B&gt; &lt;B&gt;DWORD&lt;/B&gt; dwStyle &lt;B&gt;=&lt;/B&gt; &lt;B&gt;WS_CHILD&lt;/B&gt; &lt;B&gt;|&lt;/B&gt; &lt;B&gt;WS_VISIBLE&lt;/B&gt; &lt;B&gt;|WS_HSCROLL&lt;/B&gt; &lt;B&gt;|&lt;/B&gt; &lt;B&gt;WS_VSCROLL&lt;/B&gt; &lt;B&gt;|&lt;/B&gt; &lt;B&gt;SPLS_DYNAMIC_SPLIT,&lt;/B&gt; &lt;B&gt;UINT&lt;/B&gt; nID &lt;B&gt;=&lt;/B&gt; &lt;B&gt;AFX_IDW_PANE_FIRST&lt;/B&gt; &lt;B&gt;);&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;
nMaxRows와 nMaxCols에는 1과 2의 값만 사용 할 수 있으며, &lt;br /&gt;
nMaxRows에 1을 넣으면 세로로는 분할되지 않고, nMaxCols에 1을 넣으면 가로로 분할되지 않습니다.&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;a href=&quot;https://t1.daumcdn.net/cfile/tistory/1439961C4C20281471&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;Splitter_Dyn.zip&lt;/a&gt;&lt;/div&gt;
&lt;/P&gt;&lt;br /&gt;</description>
      <category>Programming Tips/MFC</category>
      <category>CSplitterwnd</category>
      <category>MFC</category>
      <category>MFC Programming</category>
      <category>MFC/C++</category>
      <category>동적 분할 윈도우</category>
      <author>frog3147</author>
      <guid isPermaLink="true">https://frog3147.tistory.com/157</guid>
      <comments>https://frog3147.tistory.com/entry/MFC-%EB%B6%84%ED%95%A0-%EC%9C%88%EB%8F%84%EC%9A%B02-%EB%8F%99%EC%A0%81-%EB%B6%84%ED%95%A0-%EC%9C%88%EB%8F%84%EC%9A%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0#entry157comment</comments>
      <pubDate>Thu, 17 Jun 2010 16:02:36 +0900</pubDate>
    </item>
    <item>
      <title>MFC 분할 윈도우(1)</title>
      <link>https://frog3147.tistory.com/entry/MFC-%EB%B6%84%ED%95%A0-%EC%9C%88%EB%8F%84%EC%9A%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
      <description>&lt;div&gt;
분할 윈도우(Splitter Window)는 하나의 프레임 윈도우를 두 개 이상의 윈도우로 나누어 주는 기능을 하는 윈도우 입니다. 가장 대표적인 예로 아래 그림의 윈도우 탐색기를 들 수 있으며 같은 데이터를 보여주는데 보여주는 위치나 보여주는 형태가 다른 경우에 많이 사용합니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;imageblock &quot; style=&quot;display:inline;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/191187014C19BC5C8D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F191187014C19BC5C8D&quot; width=&quot;570&quot; height=&quot;409&quot; alt=&quot;&quot; filename=&quot;cap.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
사용자는 분할 윈도우를 이용하여 원하는 만큼의 뷰 영역을 설정 할 수 있고, 각각의 뷰 영역에는 뷰 윈도우 뿐만 아니라 여러가지 일반 윈도우도 올라 갈 수 있습니다. 분할 윈도우에는 다음과 같이 두 가지 종류가 있습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
◎ 동적 분할 윈도우&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;- 프로그램 실행 중 윈도우를 하나로 합치거나 나눌 수 있으며 스크롤바 끝 부분에 분할바가 있습니다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;분할바를 윈도우의 한 쪽 끝까지 움직이면 나누어져있던 윈도우가 합쳐지고 끝 쪽에 있는 분할바를 안&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp; 안 쪽으로 끌어당기면 윈도우를 다시 분할 할 수 있습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
◎&amp;nbsp;정적 분할 윈도우&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;- 정적 분할 윈도우는 윈도우가 분할된 상태로 프로그램이 시작되고, 프로그램 실행 중에 분할된 윈도우&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp; 를 다시 합칠 수 없는 형태를 가지고 있습니다. 분할바를 윈도우 한 쪽의 끝까지 밀어도 분할된 윈도우&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp; 가 합쳐지지 않으며, 분할된 영역들을 만들거나 없앨 수 없습니다. 위 그림의 윈도우 탐색기는 정적 분&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp; 할 윈도우의 예라고 볼 수 있습니다. 정적 분할윈도우에는 각각의 영역에 서로 다른 클래스의 뷰를 배치&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp; 할 수 있습니다. 한 쪽에 폼뷰를 배치하고 여러가지 컨트롤들도 사용 할 수 있죠.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
MFC에서는 분할 윈도우의 사용을 위해 CSplitterWnd라는 클래스를 제공하고 있으며, 동적이든 정적이든&lt;/div&gt;
&lt;div&gt;
쉽게 설정하고 만들 수 있습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;</description>
      <category>Programming Tips/MFC</category>
      <category>C++</category>
      <category>CSplitterwnd</category>
      <category>MFC</category>
      <category>MFC Programming</category>
      <category>Splitter Bar</category>
      <category>Splitter Window</category>
      <category>동적 분할윈도우</category>
      <category>분할 윈도우</category>
      <category>정적 분할윈도우</category>
      <author>frog3147</author>
      <guid isPermaLink="true">https://frog3147.tistory.com/156</guid>
      <comments>https://frog3147.tistory.com/entry/MFC-%EB%B6%84%ED%95%A0-%EC%9C%88%EB%8F%84%EC%9A%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0#entry156comment</comments>
      <pubDate>Thu, 17 Jun 2010 15:46:07 +0900</pubDate>
    </item>
    <item>
      <title>마우스 이벤트 관련 함수 정리</title>
      <link>https://frog3147.tistory.com/entry/%EB%A7%88%EC%9A%B0%EC%8A%A4-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EA%B4%80%EB%A0%A8-%ED%95%A8%EC%88%98-%EC%A0%95%EB%A6%AC</link>
      <description>&lt;br /&gt;
마우스 이벤트와 관련된 함수로 아래와 같은 것들이 있습니다.&lt;br /&gt;
&lt;br /&gt;◎ GetCursorPos &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 현재 마우스 커서의 위치를 얻어주는 함수이며 원형은 아래와 같습니다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; GetCursorPos(LPPOINT lpPoint)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CPoint&amp;nbsp;형으로 변수를 하나 선언하고 그 주소를&amp;nbsp;인자로 넣어주면&amp;nbsp;마우스 커서의 x, y 좌표를 변수에 담&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 아줍니다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
◎ SetCursorPos&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;마우스 커서를 X, Y의 위치로 이동시키는 함수이며 원형은 아래와 같습니다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SetCursorPos(int X, int Y)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 인자로 넣는 x, y 좌표의 위치로 마우스 커서를 이동시켜줍니다.&lt;br /&gt;
&lt;br /&gt;◎ mouse_event&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;마우스와 관련된 여러가지 이벤트를 발생시키는 함수입니다. 원형은 아래와 같습니다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; mouse_event( DWORD dwFlags, DWORD dx, DWORD dy, DWORD dwData, DWORD dwExtraInfo)&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dwFlags의 값에 따라서 이벤트를 구분하며 아래에 정리된 인자를 사용하여 원하는 이벤트를 발생시&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 키면 됩니다.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOUSEEVENTF_MOVE&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; - mouse move&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MOUSEEVENTF_LEFTDOWN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - left button down&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MOUSEEVENTF_LEFTUP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - left button up&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MOUSEEVENTF_RIGHTDOWN&amp;nbsp;&amp;nbsp;&amp;nbsp; - right button down&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MOUSEEVENTF_RIGHTUP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - right button up&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MOUSEEVENTF_MIDDLEDOWN&amp;nbsp; - middle button down&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MOUSEEVENTF_MIDDLEUP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - middle button up&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MOUSEEVENTF_WHEEL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - wheel button rolled&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MOUSEEVENTF_ABSOLUTE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - absolute move&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dx, dy는 각각 마우스 커서의 위치를 나타내며 dwData는 dwFlags가 MOUSEEVENTF_WHEEL 일 때&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 의 무브먼트 값이며, dwFlags가 MOUSEEVENTF_WHEEL이 아닐 때는 0입니다.&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
◎&amp;nbsp; 위의 함수들을 이용한 간단한 예제. (x, y에 이벤트가 발생할 마우스 좌표를 넣어서 사용)&lt;br /&gt;
&amp;nbsp; - Mouse Drag&lt;br /&gt;
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);&lt;br /&gt;
setcursorpos(x, y);&lt;br /&gt;
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; - Mouse&amp;nbsp;Right Button Click&lt;br /&gt;
setcursorpos(x, y);&lt;br /&gt;
mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);&lt;br /&gt;
mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; - Mouse Left Button Double Click&lt;br /&gt;
setcursorpos(x, y);&lt;br /&gt;
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);&lt;br /&gt;
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);&lt;br /&gt;
Sleep(10);&lt;br /&gt;
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);&lt;br /&gt;
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;</description>
      <category>Programming Tips/MFC</category>
      <category>C++</category>
      <category>GetCursorPos</category>
      <category>MFC</category>
      <category>MFC &amp;amp; API</category>
      <category>MFC Programming</category>
      <category>mouse_event</category>
      <category>SetCursorPos</category>
      <category>마우스 위치</category>
      <category>마우스 이벤트</category>
      <author>frog3147</author>
      <guid isPermaLink="true">https://frog3147.tistory.com/155</guid>
      <comments>https://frog3147.tistory.com/entry/%EB%A7%88%EC%9A%B0%EC%8A%A4-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EA%B4%80%EB%A0%A8-%ED%95%A8%EC%88%98-%EC%A0%95%EB%A6%AC#entry155comment</comments>
      <pubDate>Wed, 9 Jun 2010 17:33:04 +0900</pubDate>
    </item>
    <item>
      <title>티스토리 초대장 배포합니다~(8장) --- 마감~!!!</title>
      <link>https://frog3147.tistory.com/entry/%ED%8B%B0%EC%8A%A4%ED%86%A0%EB%A6%AC-%EC%B4%88%EB%8C%80%EC%9E%A5-%EB%B0%B0%ED%8F%AC%ED%95%A9%EB%8B%88%EB%8B%A48%EC%9E%A5</link>
      <description>&lt;DIV&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #ebebeb 1px solid; BORDER-LEFT: #ebebeb 1px solid; PADDING-BOTTOM: 30px; LINE-HEIGHT: 1.8; BACKGROUND-COLOR: #fff; PADDING-LEFT: 30px; PADDING-RIGHT: 30px; COLOR: #656565; BORDER-TOP: #ebebeb 1px solid; BORDER-RIGHT: #ebebeb 1px solid; PADDING-TOP: 30px&quot;&gt;&lt;SPAN style=&quot;PADDING-BOTTOM: 2px; BACKGROUND-COLOR: #fe842a; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; FONT: 8pt/1 Verdana, Sans-serif; COLOR: #fff; PADDING-TOP: 2px&quot;&gt;i n v i t a t i o n&lt;/SPAN&gt; 
&lt;DIV style=&quot;BORDER-BOTTOM: #e3e3e3 3px solid; MARGIN: 23px 0px 32px; HEIGHT: 29px&quot;&gt;
&lt;H3 style=&quot;BORDER-BOTTOM: #fe842a 3px solid; PADDING-BOTTOM: 10px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT: bold 14pt/1 Dotum, Sans-serif; FLOAT: left; PADDING-TOP: 0px&quot;&gt;티스토리 초대장&lt;/H3&gt;
&lt;DIV style=&quot;MARGIN-TOP: 9px; FLOAT: right&quot;&gt;+ 남은 초대장 수 : &lt;SPAN style=&quot;COLOR: #fe842a; FONT-WEIGHT: bold&quot;&gt;00&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;안녕하세요!&lt;/P&gt;
&lt;P&gt;티스토리에 보금자리를 마련하시려는 여러분께 초대장을 배포해 드리려고 합니다.&lt;/P&gt;
&lt;P&gt;나만의, 내 생각을, 내 기억을 담는 소중한 블로그를 만들고 싶다면 티스토리로 시작해보세요!&lt;/P&gt;
&lt;P&gt;티스토리 블로그는 초대에 의해서만 가입이 가능합니다. 원하시는 분은 &lt;STRONG style=&quot;TEXT-DECORATION: underline&quot;&gt;댓글에 E-mail 주소를&lt;/STRONG&gt; 남겨주시면 초대장을 보내드립니다. 남겨주실 때에는 꼭 비밀댓글로 남겨주세요!&lt;/P&gt;
&lt;P&gt;초대장을 보내드리고 바로 개설하시지 않으신 분들은 초대장을 회수할 수도 있으니 바로 개설해주세요!&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #e5e5e5 5px solid; BORDER-LEFT: #e5e5e5 5px solid; PADDING-BOTTOM: 20px; BACKGROUND-COLOR: #f9f9f9; MARGIN: 25px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: #e5e5e5 5px solid; BORDER-RIGHT: #e5e5e5 5px solid; PADDING-TOP: 20px&quot;&gt;
&lt;TABLE style=&quot;TABLE-LAYOUT: fixed&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;PADDING-BOTTOM: 0px; PADDING-LEFT: 25px; PADDING-RIGHT: 25px; BORDER-RIGHT: #e9e9e9 1px solid; PADDING-TOP: 0px&quot; vAlign=top&gt;
&lt;DIV style=&quot;FONT: bold 24pt/1 Verdana, Sans-serif; MARGIN-BOTTOM: 20px&quot;&gt;Yes&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;이런 분들께 드립니다!&lt;/STRONG&gt; 
&lt;DIV&gt;&lt;STRONG&gt;1.&lt;/STRONG&gt; 다른 블로그를 사용해보셨던 분&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;2.&lt;/STRONG&gt; 이메일 주소가 정상적인 분&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;3.&lt;/STRONG&gt; 블로그를 시작하려는 이유를 남겨주신 분!&lt;/DIV&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;PADDING-BOTTOM: 0px; PADDING-LEFT: 25px; PADDING-RIGHT: 25px; PADDING-TOP: 0px&quot; vAlign=top&gt;
&lt;DIV style=&quot;FONT: bold 24pt/1 Verdana, Sans-serif; MARGIN-BOTTOM: 20px&quot;&gt;No&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;이런 분들께 드리지 않아요!&lt;/STRONG&gt; 
&lt;DIV&gt;&lt;STRONG&gt;1.&lt;/STRONG&gt; 이메일 주소가 의심되는 분!&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;2.&lt;/STRONG&gt; 이메일 주소를 남기지 않으신 분&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;3.&lt;/STRONG&gt; 이유도 없이 달라고 하시는 분!&lt;/DIV&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;DIV style=&quot;MARGIN: 25px 0px 10px; FONT: 11px/1.5 Dotum, Sans-serif; COLOR: #a1a1a1&quot;&gt;
&lt;DIV style=&quot;MARGIN-BOTTOM: 10px; FONT-WEIGHT: bold&quot;&gt;티스토리 이래서 좋아요!&lt;/DIV&gt;
&lt;DIV&gt;1. 이미지, 동영상, 오디오, 파일까지! 무한 용량과 강력한 멀티미디어를 올릴 수 있어요!&lt;/DIV&gt;
&lt;DIV&gt;2. 스킨위자드로 스킨을 내맘대로~ 거기에 기능 확장 플러그인까지!&lt;/DIV&gt;
&lt;DIV&gt;3. 내가 원하는대로 myID.com으로 블로그 주소를 만들 수 있어요!&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;
댓글에 메일 주소와 만들려는 이유 간단히 적어주세요~&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;</description>
      <category>초대장</category>
      <category>티스토리</category>
      <category>티스토리 초대장</category>
      <author>frog3147</author>
      <guid isPermaLink="true">https://frog3147.tistory.com/154</guid>
      <comments>https://frog3147.tistory.com/entry/%ED%8B%B0%EC%8A%A4%ED%86%A0%EB%A6%AC-%EC%B4%88%EB%8C%80%EC%9E%A5-%EB%B0%B0%ED%8F%AC%ED%95%A9%EB%8B%88%EB%8B%A48%EC%9E%A5#entry154comment</comments>
      <pubDate>Thu, 3 Jun 2010 16:48:49 +0900</pubDate>
    </item>
    <item>
      <title>PreCreateWindow 함수의 재정의...</title>
      <link>https://frog3147.tistory.com/entry/PreCreateWindow-%ED%95%A8%EC%88%98%EC%9D%98-%EC%9E%AC%EC%A0%95%EC%9D%98</link>
      <description>&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
PreCreateWindow는 MFC가 제공하는 가상함수들 중 하나로 사용자가 쉽게 재정의하여 사용이 가능합니다. 이름처럼 윈도우가 생성되기 직전에 호출되며, 생성될 윈도우에 대한 정보가 파라미터로 넘어오게 되고, 이 파라미터가 가지는 값을 이용해서 윈도우가 생성됩니다. 따라서 개발자가 윈도우의 스타일이나 속성을 변경하고 싶을때는 PreCreateWindow가 넘겨받는 파라미터를 변경시켜주면 생성되는 윈도우의 속성도 따라서 변하게 되는것입니다. 함수의 원형은 아래와 같습니다.&lt;br /&gt;
MDI 형태의 프로젝트 일 경우, CMainFrame과 CChildFrame에서 모두 찾을 수 있습니다.&lt;br /&gt;
&lt;br /&gt;BOOL PreCreateWindow(CREATESTRUCT&amp;amp; cs);&lt;br /&gt;
&lt;br /&gt;파라미터로 넘어오는 CREATESTRUCT는 아래와 같은 모습을 하고 있습니다.&lt;br /&gt;
&lt;br /&gt;typedef struct tagCREATESTRUCT{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPVOID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lpCreateParams;&lt;br /&gt;

&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HINSTANCE&amp;nbsp;&amp;nbsp; hInstance;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; HMENU&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hMenu;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; HWND&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hwndParent;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; int&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; cy;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; int&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; cx;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; int&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; y;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; int&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; x;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; style;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPCWSTR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lpszName;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPCWSTR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lpszClass;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; DWORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dwExStyle;&lt;br /&gt;
} CREATESTRUCT, *LPCREATESTRUCT;&lt;br /&gt;
&lt;br /&gt;위의 CREATESTRUCT 구조체에서 자주 사용되는 녀석들은 x, y, cx, cy, style, dwExStyle 정도가 되겠네요. &lt;br /&gt;
&lt;br /&gt;◎ x, y, cx, cy &lt;br /&gt;
x, y, cx, cy는 윈도우가 생성될때의 위치와 크기를 가지는 멤버변수가 되겠습니다. &lt;br /&gt;
&lt;br /&gt;&lt;FONT color=#193da9&gt;&lt;STRONG&gt;ex)&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;윈도우가 생성될 때 0, 0의 위치에서부터 가로의 크기가 500, 세로의 크기가 300인 윈도우를 만들고 싶을 경우&lt;br /&gt;
&lt;br /&gt;BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&amp;amp; cs)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;if( !CMDIFrameWnd::PreCreateWindow(cs) )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;return FALSE;&lt;br /&gt;
&amp;nbsp;// TODO: CREATESTRUCT cs를 수정하여 여기에서&lt;br /&gt;
&amp;nbsp;//&amp;nbsp; Window 클래스 또는 스타일을 수정합니다.&lt;/DIV&gt;
&lt;DIV&gt;&lt;br /&gt;
&amp;nbsp;&lt;FONT color=#7293fa&gt;cs.x = 0;&lt;br /&gt;
&amp;nbsp;cs.y = 0;&lt;br /&gt;
&amp;nbsp;cs.cx = 500;&lt;br /&gt;
&amp;nbsp;cs.cy = 300;&lt;br /&gt;
&lt;/FONT&gt;&lt;br /&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;return TRUE;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;◎ style&lt;br /&gt;
style은 생성될 윈도우의 스타일을 지정하는 멤버변수 입니다. 자주 사용되는 스타일을 정리해보면 아래와 같습니다.&lt;br /&gt;
&lt;br /&gt;WS_BORDER&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; 경계선을 가진 윈도우&lt;br /&gt;
WS_CHILD&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;&amp;nbsp;&amp;nbsp; :&amp;nbsp; 다른 윈도우의 위에 올라가는 자식 윈도우&lt;br /&gt;
WS_THICKFRAME&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; 프레임 윈도우에서 사용되는 경계선을 가지는 윈도우&lt;br /&gt;
WS_CAPTION&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; 타이틀 바를 가지는 윈도우&lt;br /&gt;
WS_MAXIMIZE&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; 최대화된 윈도우&lt;br /&gt;
WS_MINIMIZE&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; 최소화된 윈도우&lt;br /&gt;
WS_MAXIMIZEBOX&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; 타이틀 바에 최대화 박스를 가지는 윈도우&lt;br /&gt;
WS_MINIMIZEBOX&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; 타이틀 바에 최소화 박스를 가지는 윈도우&lt;br /&gt;
WS_VISIBLE&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; :&amp;nbsp; 화면에 보이는 윈도우&lt;br /&gt;
WS_OVERLAPPED&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; 타이틀 바와 경계선을 가지는 윈도우&lt;br /&gt;
WS_SYSMENU&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; 시스템 메뉴를 가지는 윈도우&lt;br /&gt;
WS_OVERLAPPEDWINDOW : 다음의 속성들을 결합한 윈도우&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;&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; WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU |&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;&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; WS_THICKFRAME | WS_MAXIMIZEBOX | WS_MINIMIZEBOX&lt;br /&gt;
&lt;br /&gt;&lt;FONT color=#193da9&gt;&lt;STRONG&gt;ex)&lt;/STRONG&gt;&lt;/FONT&gt; 타이틀 바와 시스템 메뉴, 최대화 박스를 가지는 윈도우를 만들고 싶을 때&lt;br /&gt;
&lt;br /&gt;BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&amp;amp; cs)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;if( !CMDIFrameWnd::PreCreateWindow(cs) )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;return FALSE;&lt;br /&gt;
&amp;nbsp;// TODO: CREATESTRUCT cs를 수정하여 여기에서&lt;br /&gt;
&amp;nbsp;//&amp;nbsp; Window 클래스 또는 스타일을 수정합니다.&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;FONT color=#7293fa&gt;cs.style = WS_CAPTION | WS_SYSMENU | WS_MAXIMIZEBOX;&lt;br /&gt;
&lt;/FONT&gt;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;return TRUE;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;&lt;FONT color=#193da9&gt;&lt;STRONG&gt;ex)&lt;/STRONG&gt;&lt;/FONT&gt; 현재 설정되어있는 윈도우의 속성을 그대로 유지하되, 최대화 박스를 추가해야 할 경우&lt;br /&gt;
&lt;br /&gt;BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&amp;amp; cs)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;if( !CMDIFrameWnd::PreCreateWindow(cs) )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;return FALSE;&lt;br /&gt;
&amp;nbsp;// TODO: CREATESTRUCT cs를 수정하여 여기에서&lt;br /&gt;
&amp;nbsp;//&amp;nbsp; Window 클래스 또는 스타일을 수정합니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;FONT color=#7293fa&gt;cs.style |=&amp;nbsp; WS_MAXIMIZEBOX;&lt;/FONT&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;return TRUE;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;&lt;FONT color=#193da9&gt;&lt;STRONG&gt;ex)&lt;/STRONG&gt;&lt;/FONT&gt; 현재 설정되어있는 윈도우의 속성을 그대로 유지하되, 최대화 박스를 제거해야 할 경우&lt;br /&gt;
&lt;br /&gt;BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&amp;amp; cs)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;if( !CMDIFrameWnd::PreCreateWindow(cs) )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;return FALSE;&lt;br /&gt;
&amp;nbsp;// TODO: CREATESTRUCT cs를 수정하여 여기에서&lt;br /&gt;
&amp;nbsp;//&amp;nbsp; Window 클래스 또는 스타일을 수정합니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;FONT color=#7293fa&gt;cs.style =&amp;nbsp; cs.style &amp;amp; ~WS_MAXIMIZE;&lt;br /&gt;
&lt;/FONT&gt;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;return TRUE;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;◎ dwExStyle&lt;br /&gt;
윈도우 스타일은 아래 와 같이 | 연산자로 조합해서 사용할 수 있도록 한 비트씩만 이용해서 정의되어 있습니다. 따라서 사용 할 수 있는 윈도우 스타일의 갯수에 한계가 있으며 자주 사용되지 않는 윈도우 스타일은 확장 윈도우 스타일이라고 해서 따로 설정하도록 되어 있습니다.&lt;br /&gt;
&lt;br /&gt;#define&amp;nbsp; WS_VISIBLE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10000000L&lt;br /&gt;
#define&amp;nbsp; WS_MAXIMIZE&amp;nbsp; 0x01000000L&lt;br /&gt;
#define&amp;nbsp; WS_HSCROLL&amp;nbsp;&amp;nbsp; 0x00100000L&lt;br /&gt;
&lt;br /&gt;자주 사용되지 않는 스타일들을 정의 해 놓은 것이지만 그 중에서도 자주 사용되는 확장 윈도우 스타일에는 다음과 같은 것이 있습니다.&lt;br /&gt;
&lt;br /&gt;WS_EX_CLIENTEDGE&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; 클라이언트 영역을 두드러져보이게 한다.&lt;br /&gt;
WS_EX_WINDOWEDGE&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; 윈도우 프레임을 입체적으로 보이게 한다.&lt;br /&gt;
WS_EX_OVERLAPPEDWINDOW&amp;nbsp;&amp;nbsp; :&amp;nbsp; WS_EX_CLIENTEDGE와 WS_EX_WINDOWEDGE의 합&lt;br /&gt;
WS_EX_CONTEXTHELP&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; 제목 표시줄에 도움말 출력을 위한 버튼을 생성&lt;br /&gt;
WS_EX_DLGMODALFRAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;nbsp; 입체적으로 보이는 대화상자용 프레임을 생성&lt;br /&gt;
WS_EX_TOOLWINDOW&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; 타이틀 바의 높이가 짧은 윈도우가 생성. &lt;br /&gt;
WS_EX_TOPMOST&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; 항상 최상위에 위치하는 윈도우 생성.&lt;br /&gt;
&lt;br /&gt;&lt;FONT color=#193da9&gt;&lt;STRONG&gt;ex)&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;짧은 타이틀 바를 가지고 항상 최상위에 위치하는 윈도우를 생성할 경우&lt;br /&gt;
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&amp;amp; cs)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;if( !CMDIFrameWnd::PreCreateWindow(cs) )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;return FALSE;&lt;br /&gt;
&amp;nbsp;// TODO: CREATESTRUCT cs를 수정하여 여기에서&lt;br /&gt;
&amp;nbsp;//&amp;nbsp; Window 클래스 또는 스타일을 수정합니다.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;&lt;FONT color=#7293fa&gt;cs.dwExStyle |= (WS_EX_TOOLWINDOW | WS_EX_TOPMOST);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;return TRUE;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;/P&gt;</description>
      <category>Programming Tips/MFC</category>
      <category>CREATESTRUCT</category>
      <category>dwExStyle</category>
      <category>MFC</category>
      <category>MFC Programming</category>
      <category>PreCreateWindow</category>
      <category>PreCreateWindow()</category>
      <category>윈도우 생성</category>
      <category>윈도우 스타일</category>
      <category>확장 윈도우 스타일</category>
      <author>frog3147</author>
      <guid isPermaLink="true">https://frog3147.tistory.com/151</guid>
      <comments>https://frog3147.tistory.com/entry/PreCreateWindow-%ED%95%A8%EC%88%98%EC%9D%98-%EC%9E%AC%EC%A0%95%EC%9D%98#entry151comment</comments>
      <pubDate>Wed, 2 Jun 2010 18:11:45 +0900</pubDate>
    </item>
    <item>
      <title>사용자 정의 메시지의 사용법</title>
      <link>https://frog3147.tistory.com/entry/%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%EB%A9%94%EC%8B%9C%EC%A7%80%EC%9D%98-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;br /&gt;
Dialog간의 통신이나 이벤트 발생시에 많이 사용하게 되는 사용자 정의 메세지 사용법.&lt;br /&gt;
&lt;br /&gt;1. 메세지를 정의한다.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;- 헤더파일에 다음과 같은 형식으로 정의&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp; #define&amp;nbsp; WM_TEST_MESSAGE&amp;nbsp; WM_USER+10;&lt;br /&gt;
&lt;br /&gt;2. 메세지를 통해서 호출할 함수의&amp;nbsp;원형선언 및 구현.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;- 메세지를 받는 쪽 Dialog의 헤더에 함수원형을 선언한다.&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;헤더파일의 아래쪽 // Generated message map functions이라고 주석처리된 부분 밑에&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 아래와 같은 형식으로 선언&lt;br /&gt;
&lt;br /&gt;
&lt;DIV&gt;&amp;nbsp;&amp;nbsp; afx_msg LRESULT UserMSG(WPARAM wParam, LPARAM lParam);&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;- cpp파일에 함수구현.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
3. MESSAGE MAP에 등록.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;- cpp파일의 메세지 맵에 등록하여 정의된 메세지와 메세지를 통해 호출할 함수를 연결시켜준&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 다.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;- cpp파일의 위쪽에 아래와 같은 형식으로 메세지 맵이 있고, 프로젝트 생성시에 자동으로 등&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 록된 여러가지 메세지들이 있을 것이다. BEGIN_MESSAGE_MAP과 END_MESSAGE_MAP&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 의 사이에 ON_MESSAGE를 이용하여 아래와 같이 등록&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;BEGIN_MESSAGE_MAP(&quot;메세지를 받는 쪽 Dialog의 클래스명&quot;, CDialog)&lt;br /&gt;
&amp;nbsp;//{{AFX_MSG_MAP(&quot;메세지를 받는 쪽 Dialog의 클래스명&quot;)&lt;br /&gt;
&amp;nbsp;ON_WM_SYSCOMMAND()&lt;br /&gt;
&amp;nbsp;ON_WM_PAINT()&lt;br /&gt;
&amp;nbsp;ON_WM_QUERYDRAGICON()&lt;br /&gt;
&amp;nbsp;ON_WM_DESTROY()&lt;br /&gt;
&amp;nbsp;&lt;FONT color=#3058d2&gt;ON_MESSAGE(WM_TEST_MESSAGE, UserMSG)&lt;/FONT&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;//}}AFX_MSG_MAP&lt;br /&gt;
END_MESSAGE_MAP()&lt;br /&gt;
&lt;br /&gt;4. 사용자 정의 메세지 사용.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;- SendMessage 또는 PostMessage함수를 이용하여 사용.&lt;br /&gt;
&amp;nbsp;- 파라미터로 넘길 데이터가 있으면 wParam 또는 lParam을 이용.&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/DIV&gt;</description>
      <category>Programming Tips/MFC</category>
      <category>Dialog</category>
      <category>MFC</category>
      <category>MFC Programming</category>
      <category>MFC/C++</category>
      <category>ON_MESSAGE</category>
      <category>사용자 정의 메세지</category>
      <author>frog3147</author>
      <guid isPermaLink="true">https://frog3147.tistory.com/148</guid>
      <comments>https://frog3147.tistory.com/entry/%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%EB%A9%94%EC%8B%9C%EC%A7%80%EC%9D%98-%EC%82%AC%EC%9A%A9%EB%B2%95#entry148comment</comments>
      <pubDate>Mon, 26 Apr 2010 14:49:34 +0900</pubDate>
    </item>
    <item>
      <title>아스키 코드표</title>
      <link>https://frog3147.tistory.com/entry/%EC%95%84%EC%8A%A4%ED%82%A4-%EC%BD%94%EB%93%9C%ED%91%9C</link>
      <description>&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/1139F60B4BC826E637&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1139F60B4BC826E637&quot; width=&quot;520&quot; height=&quot;722&quot; alt=&quot;&quot; filename=&quot;ascii.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
아스키 코드표...출처를 정확히 알지는 못하지만 네이버에서 퍼옴...ㅋ&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;</description>
      <category>Programming Tips/Etc...Tips</category>
      <category>ascii</category>
      <category>ascii code</category>
      <category>아스키코드</category>
      <author>frog3147</author>
      <guid isPermaLink="true">https://frog3147.tistory.com/149</guid>
      <comments>https://frog3147.tistory.com/entry/%EC%95%84%EC%8A%A4%ED%82%A4-%EC%BD%94%EB%93%9C%ED%91%9C#entry149comment</comments>
      <pubDate>Fri, 16 Apr 2010 17:45:08 +0900</pubDate>
    </item>
    <item>
      <title>컨트롤의 Enable, Disable 관련 함수 및 예제</title>
      <link>https://frog3147.tistory.com/entry/%EC%BB%A8%ED%8A%B8%EB%A1%A4%EC%9D%98-%ED%99%9C%EC%84%B1%ED%99%94-%EB%B9%84%ED%99%9C%EC%84%B1%ED%99%94-%EA%B4%80%EB%A0%A8-%ED%95%A8%EC%88%98-%EB%B0%8F-%EC%98%88%EC%A0%9C</link>
      <description>&lt;br /&gt;
MFC Dialog based에서 경우에 따라 다이얼로그 상의 특정 컨트롤을 활성화, 비활성화 할 때는&lt;br /&gt;
해당 컨트롤의 ID와 아래의 GetDlgItem과 EnableWindow함수를 사용하여 간단히 해결이 가능합니다.&lt;br /&gt;
&lt;br /&gt;GetDlgItem(IDC_EDIT1)-&amp;gt;EnableWindow(FALSE);&lt;br /&gt;
GetDlgItem(IDC_EDIT2)-&amp;gt;EnableWindow(FALSE);&lt;br /&gt;
GetDlgItem(IDC_EDIT3)-&amp;gt;EnableWindow(FALSE);&lt;br /&gt;
&lt;br /&gt;활성화(enable)해야되는 경우에는 EnableWindow함수의 인자에 TRUE,&lt;br /&gt;
비활성화(disable)해야되는 경우에는 인자에 FALSE !!!&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/197B35274B0CDC1737&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;EnableTest.zip&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;</description>
      <category>Programming Tips/MFC</category>
      <category>control</category>
      <category>Dialog</category>
      <category>disable</category>
      <category>enable</category>
      <category>EnableWindow</category>
      <category>GetDlgItem</category>
      <category>MFC</category>
      <category>다이얼로그</category>
      <category>비활성화</category>
      <category>컨트롤</category>
      <category>활성화</category>
      <author>frog3147</author>
      <guid isPermaLink="true">https://frog3147.tistory.com/147</guid>
      <comments>https://frog3147.tistory.com/entry/%EC%BB%A8%ED%8A%B8%EB%A1%A4%EC%9D%98-%ED%99%9C%EC%84%B1%ED%99%94-%EB%B9%84%ED%99%9C%EC%84%B1%ED%99%94-%EA%B4%80%EB%A0%A8-%ED%95%A8%EC%88%98-%EB%B0%8F-%EC%98%88%EC%A0%9C#entry147comment</comments>
      <pubDate>Wed, 25 Nov 2009 16:30:15 +0900</pubDate>
    </item>
  </channel>
</rss>