<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=5%EC%9D%B8%EC%9A%A9C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94%2F%EB%8D%94%EB%B8%94%EB%B2%84%ED%8D%BC%EB%A7%81</id>
	<title>5인용C++스터디/더블버퍼링 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=5%EC%9D%B8%EC%9A%A9C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94%2F%EB%8D%94%EB%B8%94%EB%B2%84%ED%8D%BC%EB%A7%81"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=5%EC%9D%B8%EC%9A%A9C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94/%EB%8D%94%EB%B8%94%EB%B2%84%ED%8D%BC%EB%A7%81&amp;action=history"/>
	<updated>2026-05-15T18:50:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=5%EC%9D%B8%EC%9A%A9C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94/%EB%8D%94%EB%B8%94%EB%B2%84%ED%8D%BC%EB%A7%81&amp;diff=83988&amp;oldid=prev</id>
		<title>Maintenance script: Repair batch-0001 pages from live compare</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=5%EC%9D%B8%EC%9A%A9C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94/%EB%8D%94%EB%B8%94%EB%B2%84%ED%8D%BC%EB%A7%81&amp;diff=83988&amp;oldid=prev"/>
		<updated>2026-03-26T23:55:59Z</updated>

		<summary type="html">&lt;p&gt;Repair batch-0001 pages from live compare&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:55, 26 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  HBITMAP hBit, hBaby;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  HBITMAP hBit, hBaby;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  TCHAR szGang&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[]&lt;/del&gt;=&amp;quot;Gang Version 1.0\r\n\r\n총 감독 : 김 정수\r\n&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  TCHAR szGang&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&amp;amp;#93;&lt;/ins&gt;=&amp;quot;Gang Version 1.0\r\n\r\n총 감독 : 김 정수\r\n&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &amp;quot;개발자 : 김 상형\r\n사진 모델 : 김 한슬\r\n협찬 : 박 미영&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &amp;quot;개발자 : 김 상형\r\n사진 모델 : 김 한슬\r\n협찬 : 박 미영&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l245&quot;&gt;Line 245:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 245:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;&lt;/del&gt;img src = http://www.winapi.co.kr/win32lec/lecnew/21-5-3.files/image002.jpg&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;&lt;/ins&gt;img src = http://www.winapi.co.kr/win32lec/lecnew/21-5-3.files/image002.jpg&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;&lt;/del&gt;img src = http://www.winapi.co.kr/win32lec/lecnew/21-5-3.files/image004.jpg&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;&lt;/ins&gt;img src = http://www.winapi.co.kr/win32lec/lecnew/21-5-3.files/image004.jpg&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;&lt;/del&gt;img src = http://www.winapi.co.kr/win32lec/lecnew/21-5-3.files/image006.jpg&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;&lt;/ins&gt;img src = http://www.winapi.co.kr/win32lec/lecnew/21-5-3.files/image006.jpg&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff::1.12:old-83171:rev-83988 --&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=5%EC%9D%B8%EC%9A%A9C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94/%EB%8D%94%EB%B8%94%EB%B2%84%ED%8D%BC%EB%A7%81&amp;diff=83171&amp;oldid=prev</id>
		<title>Maintenance script: Repair MoniWiki formatting after migration</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=5%EC%9D%B8%EC%9A%A9C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94/%EB%8D%94%EB%B8%94%EB%B2%84%ED%8D%BC%EB%A7%81&amp;diff=83171&amp;oldid=prev"/>
		<updated>2026-03-26T14:01:35Z</updated>

		<summary type="html">&lt;p&gt;Repair MoniWiki formatting after migration&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:01, 26 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l319&quot;&gt;Line 319:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 319:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[5인용C++스터디]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[5인용C++스터디]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=5%EC%9D%B8%EC%9A%A9C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94/%EB%8D%94%EB%B8%94%EB%B2%84%ED%8D%BC%EB%A7%81&amp;diff=26815&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:22, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=5%EC%9D%B8%EC%9A%A9C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94/%EB%8D%94%EB%B8%94%EB%B2%84%ED%8D%BC%EB%A7%81&amp;diff=26815&amp;oldid=prev"/>
		<updated>2021-02-07T05:22:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;* 발표에 꼭 들어가야 할 것들&lt;br /&gt;
** 더블버퍼링이 무엇인가?&lt;br /&gt;
** 더블버퍼링은 어떻게 하는가?&lt;br /&gt;
== 더블버퍼링이란&amp;gt;?? ==&lt;br /&gt;
더블 버퍼링은 이미지를 화면에 바로 그리는 것이 아니라, 메모리(버퍼)에 먼저 그리고 화면에 나중에 그리는 방법이다. 더블 버퍼링은 화면의 깜빡임을 줄이고, 자연스러운 애니메이션을 위해서 많이 사용된다. &lt;br /&gt;
&lt;br /&gt;
그렇다면 더블 버퍼링을 과연 언제 어떻게 사용해야 할까? 더블 버퍼링의 용도는 꼭 화면 깜박임을 제거하는데만 있는 것은 아니다. 내부 버퍼에서 틈틈이 작업을 할 수 있으므로 아이들(Idle) 시간을 활용하기 위해서 사용할 수도 있고 내부 버퍼를 외부 버퍼보다 더 크게 만들어 스크롤에 활용할 수도 있다.&lt;br /&gt;
&lt;br /&gt;
여기서는 더블 버퍼링의 원리에 대해서만 이해하도록 하고 실무를 할 때 더블 버퍼링을 쓰면 좋겠다는 생각이 들면 적극적으로 활용해 보기 바란다. 다음 예제는 더블 버퍼링을 활용한 갱 화면이다. 갱(Gang) 화면이란 프로그램 제작자를 소개하는 용도를 가지며 일반적으로 숨겨져 있지만 제작자 자신을 표현한다는 면에 있어 다소 멋을 좀 부리는 경향이 있다. 이 예제는 배경 비트맵을 깔고 그 위에서 제작자 목록을 위로 스크롤하는 예를 보여준다.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;resource.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 HBITMAP hBit, hBaby;&lt;br /&gt;
 &lt;br /&gt;
 TCHAR szGang[]=&amp;quot;Gang Version 1.0\r\n\r\n총 감독 : 김 정수\r\n&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;개발자 : 김 상형\r\n사진 모델 : 김 한슬\r\n협찬 : 박 미영&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 int my;&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 void DrawBitmap(HDC hdc,int x,int y,HBITMAP hBit)&lt;br /&gt;
 &lt;br /&gt;
 {&lt;br /&gt;
 &lt;br /&gt;
 HDC MemDC;&lt;br /&gt;
 &lt;br /&gt;
 HBITMAP OldBitmap;&lt;br /&gt;
 &lt;br /&gt;
 int bx,by;&lt;br /&gt;
 &lt;br /&gt;
 BITMAP bit;&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 MemDC=CreateCompatibleDC(hdc);&lt;br /&gt;
 &lt;br /&gt;
 OldBitmap=(HBITMAP)SelectObject(MemDC, hBit);&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 GetObject(hBit,sizeof(BITMAP),&amp;amp;amp;bit);&lt;br /&gt;
 &lt;br /&gt;
 bx=bit.bmWidth;&lt;br /&gt;
 &lt;br /&gt;
 by=bit.bmHeight;&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 BitBlt(hdc,0,0,bx,by,MemDC,0,0,SRCCOPY);&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 SelectObject(MemDC,OldBitmap);&lt;br /&gt;
 &lt;br /&gt;
 DeleteDC(MemDC);&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 void OnTimer()&lt;br /&gt;
 &lt;br /&gt;
 {&lt;br /&gt;
 &lt;br /&gt;
 RECT crt;&lt;br /&gt;
 &lt;br /&gt;
 HDC hdc,hMemDC;&lt;br /&gt;
 &lt;br /&gt;
 HBITMAP OldBit;&lt;br /&gt;
 &lt;br /&gt;
 HFONT font, oldfont;&lt;br /&gt;
 &lt;br /&gt;
 RECT grt;&lt;br /&gt;
 &lt;br /&gt;
 int i,j;&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 GetClientRect(hWndMain,&amp;amp;amp;crt);&lt;br /&gt;
 &lt;br /&gt;
 hdc=GetDC(hWndMain);&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 if (hBit==NULL) {&lt;br /&gt;
 &lt;br /&gt;
     hBit=CreateCompatibleBitmap(hdc,crt.right,crt.bottom);&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 hMemDC=CreateCompatibleDC(hdc);&lt;br /&gt;
 &lt;br /&gt;
 OldBit=(HBITMAP)SelectObject(hMemDC,hBit);&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 DrawBitmap(hMemDC,0,0,hBaby);&lt;br /&gt;
 &lt;br /&gt;
 SetBkMode(hMemDC,TRANSPARENT);&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 font=CreateFont(30,0,0,0,0,0,0,0,HANGEUL_CHARSET,3,2,1,&lt;br /&gt;
 &lt;br /&gt;
     VARIABLE_PITCH | FF_ROMAN,&amp;quot;궁서&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 oldfont=(HFONT)SelectObject(hMemDC,font);&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 my--;&lt;br /&gt;
 &lt;br /&gt;
 if (my==20) {&lt;br /&gt;
 &lt;br /&gt;
     KillTimer(hWndMain,1);&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 SetTextColor(hMemDC,RGB(192,192,192));&lt;br /&gt;
 &lt;br /&gt;
 for (i=-1;i&amp;amp;lt;=1;i++) {&lt;br /&gt;
 &lt;br /&gt;
     for (j=-1;j&amp;amp;lt;=1;j++) {&lt;br /&gt;
 &lt;br /&gt;
        SetRect(&amp;amp;amp;grt,10+i,my+j,400+i,my+300+j);&lt;br /&gt;
 &lt;br /&gt;
        DrawText(hMemDC,szGang,-1,&amp;amp;amp;grt,DT_WORDBREAK);&lt;br /&gt;
 &lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 SetTextColor(hMemDC,RGB(32,32,32));&lt;br /&gt;
 &lt;br /&gt;
 SetRect(&amp;amp;amp;grt,10,my,400,my+300);&lt;br /&gt;
 &lt;br /&gt;
 DrawText(hMemDC,szGang,-1,&amp;amp;amp;grt,DT_WORDBREAK);&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 SelectObject(hMemDC,oldfont);&lt;br /&gt;
 &lt;br /&gt;
 DeleteObject(font);&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 SelectObject(hMemDC,OldBit);&lt;br /&gt;
 &lt;br /&gt;
 DeleteDC(hMemDC);&lt;br /&gt;
 &lt;br /&gt;
 ReleaseDC(hWndMain,hdc);&lt;br /&gt;
 &lt;br /&gt;
 InvalidateRect(hWndMain,NULL,FALSE);&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)&lt;br /&gt;
 &lt;br /&gt;
 {&lt;br /&gt;
 &lt;br /&gt;
 HDC hdc,hMemDC;&lt;br /&gt;
 &lt;br /&gt;
 PAINTSTRUCT ps;&lt;br /&gt;
 &lt;br /&gt;
 HBITMAP OldBit;&lt;br /&gt;
 &lt;br /&gt;
 RECT crt;&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 switch(iMessage) {&lt;br /&gt;
 &lt;br /&gt;
 case WM_CREATE:&lt;br /&gt;
 &lt;br /&gt;
     hBaby=LoadBitmap(g_hInst,MAKEINTRESOURCE(IDB_BITMAP1));&lt;br /&gt;
 &lt;br /&gt;
 case WM_LBUTTONDOWN:&lt;br /&gt;
 &lt;br /&gt;
     SetTimer(hWnd,1,70,NULL);&lt;br /&gt;
 &lt;br /&gt;
     my=310;&lt;br /&gt;
 &lt;br /&gt;
     return 0;&lt;br /&gt;
 &lt;br /&gt;
 case WM_TIMER:&lt;br /&gt;
 &lt;br /&gt;
     OnTimer();&lt;br /&gt;
 &lt;br /&gt;
     return 0;&lt;br /&gt;
 &lt;br /&gt;
 case WM_PAINT:&lt;br /&gt;
 &lt;br /&gt;
     hdc=BeginPaint(hWnd, &amp;amp;amp;ps);&lt;br /&gt;
 &lt;br /&gt;
     GetClientRect(hWnd,&amp;amp;amp;crt);&lt;br /&gt;
 &lt;br /&gt;
     hMemDC=CreateCompatibleDC(hdc);&lt;br /&gt;
 &lt;br /&gt;
     OldBit=(HBITMAP)SelectObject(hMemDC, hBit);&lt;br /&gt;
 &lt;br /&gt;
     BitBlt(hdc,0,0,crt.right,crt.bottom,hMemDC,0,0,SRCCOPY);&lt;br /&gt;
 &lt;br /&gt;
     SelectObject(hMemDC, OldBit);&lt;br /&gt;
 &lt;br /&gt;
     DeleteDC(hMemDC);&lt;br /&gt;
 &lt;br /&gt;
     EndPaint(hWnd, &amp;amp;amp;ps);&lt;br /&gt;
 &lt;br /&gt;
     return 0;&lt;br /&gt;
 &lt;br /&gt;
 case WM_DESTROY:&lt;br /&gt;
 &lt;br /&gt;
     if (hBit) {&lt;br /&gt;
 &lt;br /&gt;
        DeleteObject(hBit);&lt;br /&gt;
 &lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     DeleteObject(hBaby);&lt;br /&gt;
 &lt;br /&gt;
     PostQuitMessage(0);&lt;br /&gt;
 &lt;br /&gt;
     KillTimer(hWnd,1);&lt;br /&gt;
 &lt;br /&gt;
     return 0;&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 return(DefWindowProc(hWnd,iMessage,wParam,lParam));&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
실행 결과는 다음과 같다. 움직이는 화면이므로 직접 실행해 봐야 결과를 볼 수 있다. 예쁜 아기 그림이 있고 아래에서 문자열이 천천히 위로 올라오는 동작을 한다.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;img src = http://www.winapi.co.kr/win32lec/lecnew/21-5-3.files/image002.jpg&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;img src = http://www.winapi.co.kr/win32lec/lecnew/21-5-3.files/image004.jpg&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;#91;&amp;amp;#91;HTML(&amp;amp;lt;img src = http://www.winapi.co.kr/win32lec/lecnew/21-5-3.files/image006.jpg&amp;amp;gt;)&amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
문자열은 바깥쪽에 회색 테두리를 가지도록 했으며 보기 편하도록 큼직한 폰트를 사용했다. 비트맵 위에서 글자가 움직이지만 깜박임은 전혀 없으며 아주 부드럽게 스크롤되는 것을 볼 수 있다. 만약 이런 화면을 더블 버퍼링으로 처리하지 않는다면 배경 비트맵과 그림이 계속 반복적으로 화면에 나타나기 때문에 깜박임이 심해지고 갱 화면으로서 가치가 떨어질 것이다.&lt;br /&gt;
&lt;br /&gt;
좀 더 코드를 작성한다면 글자들이 오른쪽에서 왼쪽으로 한 줄씩 날라 오도록 할 수도 있고 점점 확대되는 모양으로 만들 수도 있다. 또는 약간의 애니메이션을 첨가한다거나 글자의 색상을 조작하여 Fade In, Fade Out 등의 장면 전환 효과를 낼 수도 있다. 아뭏든 더블 버퍼링을 쓰기만 하면 어떠한 모양도 깔끔하게 화면으로 구현할 수 있으므로 기발한 상상력을 발휘해 볼만하다.&lt;br /&gt;
&lt;br /&gt;
 public:&lt;br /&gt;
 	CBitmap MemBitmap;&lt;br /&gt;
 	CDC MemDC;&lt;br /&gt;
 	CPoint Position;&lt;br /&gt;
&lt;br /&gt;
 CTestView::CTestView()&lt;br /&gt;
 {&lt;br /&gt;
 	// TODO: add construction code here&lt;br /&gt;
 	Position = CPoint(0, 0);&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 void CTestView::OnDraw(CDC* pDC)&lt;br /&gt;
 {&lt;br /&gt;
 	CTestDoc* pDoc = GetDocument();&lt;br /&gt;
 	ASSERT_VALID(pDoc);&lt;br /&gt;
 &lt;br /&gt;
 	MemDC.FillSolidRect(0, 0, 1024, 768, RGB(255, 255, 255));&lt;br /&gt;
 	MemDC.SelectStockObject(NULL_BRUSH);&lt;br /&gt;
 	for(int i = 5 ; i &amp;amp;lt;= 10 ; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		MemDC.Ellipse(Position.x - i, Position.y - i,&lt;br /&gt;
 			Position.x + i, Position.y + i);&lt;br /&gt;
 		MemDC.Rectangle(Position.x + 10 - i, Position.y + 10 - i,&lt;br /&gt;
 			Position.x + 10 + i, Position.y + 10 + i);&lt;br /&gt;
 	}&lt;br /&gt;
 	//pDC-&amp;amp;gt;StretchBlt(0, 0, 102, 77, &amp;amp;amp;MemDC, 0, 0, 1024, 768, SRCCOPY);&lt;br /&gt;
 	pDC-&amp;amp;gt;BitBlt(0, 0, 1024, 768, &amp;amp;amp;MemDC, 0, 0, SRCCOPY);&lt;br /&gt;
 	// TODO: add draw code for native data here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 int CTestView::OnCreate(LPCREATESTRUCT lpCreateStruct) &lt;br /&gt;
 {&lt;br /&gt;
 	if (CView::OnCreate(lpCreateStruct) == -1)&lt;br /&gt;
 		return -1;&lt;br /&gt;
 	&lt;br /&gt;
 	CDC *pDC = GetDC();&lt;br /&gt;
 	MemDC.CreateCompatibleDC(pDC);&lt;br /&gt;
 	MemBitmap.CreateCompatibleBitmap(pDC, 1024, 768);&lt;br /&gt;
 	MemDC.SelectObject(&amp;amp;amp;MemBitmap);&lt;br /&gt;
 	ReleaseDC(pDC);&lt;br /&gt;
 	SetTimer(1, 1000, NULL);&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	// TODO: Add your specialized creation code here&lt;br /&gt;
 	&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void CTestView::OnTimer(UINT nIDEvent) &lt;br /&gt;
 {&lt;br /&gt;
 	// TODO: Add your message handler code here and/or call default&lt;br /&gt;
 	Invalidate();&lt;br /&gt;
 	Position.x += 2;&lt;br /&gt;
 	Position.y += 1;&lt;br /&gt;
 	&lt;br /&gt;
 	CView::OnTimer(nIDEvent);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[5인용C++스터디]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>