<?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%EC%97%90%EB%94%94%ED%8A%B8%EB%B0%95%EC%8A%A4%EC%99%80%EC%BD%A4%EB%B3%B4%EB%B0%95%EC%8A%A4</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%EC%97%90%EB%94%94%ED%8A%B8%EB%B0%95%EC%8A%A4%EC%99%80%EC%BD%A4%EB%B3%B4%EB%B0%95%EC%8A%A4"/>
	<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/%EC%97%90%EB%94%94%ED%8A%B8%EB%B0%95%EC%8A%A4%EC%99%80%EC%BD%A4%EB%B3%B4%EB%B0%95%EC%8A%A4&amp;action=history"/>
	<updated>2026-05-15T23:52:25Z</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/%EC%97%90%EB%94%94%ED%8A%B8%EB%B0%95%EC%8A%A4%EC%99%80%EC%BD%A4%EB%B3%B4%EB%B0%95%EC%8A%A4&amp;diff=83997&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/%EC%97%90%EB%94%94%ED%8A%B8%EB%B0%95%EC%8A%A4%EC%99%80%EC%BD%A4%EB%B3%B4%EB%B0%95%EC%8A%A4&amp;diff=83997&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-l121&quot;&gt;Line 121:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 121:&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;EN_MAXTEXT	/	지정한 문자열 길이를 초과하였다.&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;EN_MAXTEXT	/	지정한 문자열 길이를 초과하였다.&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;EN_UPDATE	/	문자열이 변경되기 직전이다.&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;EN_UPDATE	/	문자열이 변경되기 직전이다.&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/%EC%97%90%EB%94%94%ED%8A%B8%EB%B0%95%EC%8A%A4%EC%99%80%EC%BD%A4%EB%B3%B4%EB%B0%95%EC%8A%A4&amp;diff=26826&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/%EC%97%90%EB%94%94%ED%8A%B8%EB%B0%95%EC%8A%A4%EC%99%80%EC%BD%A4%EB%B3%B4%EB%B0%95%EC%8A%A4&amp;diff=26826&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;
** 콤보박스에는 어떤 종류가 있나?&lt;br /&gt;
** 콤보박스는 어떻게 만드나?&lt;br /&gt;
** 콤보박스에 어떻게 아이템을 추가하나?&lt;br /&gt;
** 콤보박스의 내용을 어떻게 얻어오나?&lt;br /&gt;
** 다이얼로그 박스에서 만들고 사용하는 방법을 발표하면 안됨!&lt;br /&gt;
* 발표에 들어가면 좋은 것들&lt;br /&gt;
** 리스트박스에 대하여...&lt;br /&gt;
&lt;br /&gt;
=== 1. 에디트 ===&lt;br /&gt;
&lt;br /&gt;
 에디트 컨트롤은 문자열을 보여주며 편집할 수 있도록 해주는 컨트롤이다. 주로 사용자에게 문자열을 입력받을 때 사용된다. &lt;br /&gt;
 에디트 컨트롤은 CEdit 클래스로 표현된다. 멤버함수는 다음과 같다.&lt;br /&gt;
&lt;br /&gt;
멤버함수	/	설명&lt;br /&gt;
CEdit		/	생성자&lt;br /&gt;
Clear		/	선택영역을 지운다.&lt;br /&gt;
Copy		/	선택영역을 클립보드로 복사한다.&lt;br /&gt;
Create		/	에디트를 만든다.&lt;br /&gt;
Cut		/	선택영역을 잘라낸다.&lt;br /&gt;
Paste		/	클립보드의 텍스트를 붙여넣는다.&lt;br /&gt;
Undo		/	최후 편집 동작을 취소한다.&lt;br /&gt;
&lt;br /&gt;
이 멤버함수들 중에서 Create 함수를 사용하면 대화상자 템플리트에 에디트를 배치하지 않고도 실행중에 에디트 컨트롤을 생성할 수 있다. &lt;br /&gt;
 CreateEdit라는 프로젝트를 만들어보자. 폼뷰가 아닌 일반 뷰에 에디트를 배치하려면 뷰가 생성될 때 (WM_CREATE) OnCreate에서 에디트를 생성시키면 된다. 우선 뷰의 헤더파일을 열어 CEdit형 포인터를 선언한다.&lt;br /&gt;
&lt;br /&gt;
 class CCreateEditView : public CView&lt;br /&gt;
 {&lt;br /&gt;
 protected:&lt;br /&gt;
 	CCreateEditView();&lt;br /&gt;
 	DECLARE_DYNCREATE(CCreateEditView)&lt;br /&gt;
 &lt;br /&gt;
 //Attributes&lt;br /&gt;
 public:&lt;br /&gt;
 	CCreateEditDoc* GetDocument();&lt;br /&gt;
 	CEdit *m_pEdit;&lt;br /&gt;
&lt;br /&gt;
 그리고 뷰의 WM_CREATE 메시지 핸들러인 OnCreate를 작성하고 이 핸들러에서 에디트를 생성한다.&lt;br /&gt;
&lt;br /&gt;
 #define IDC_MYEDIT 1000&lt;br /&gt;
 int CCreateEditView::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;
 	m_pEdit = new CEdit;&lt;br /&gt;
 	m_pEdit -&amp;amp;gt; Create(WS_CHILD | WS_VISIBLE | WS_BORDER,&lt;br /&gt;
 		CRect(10, 10, 300, 35), this, IDC_MYEDIT);&lt;br /&gt;
 &lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 m_Edit가 CEdit의 포인터로 선언되었으므로 일단 new 연산자로 CEdit객체를 만든다. 그리고 이 객체의 Create 멤버함수를 호출하여 에디트를 생성한다. Create 함수의 원형은 다음과 같다.&lt;br /&gt;
&lt;br /&gt;
 BOOL Create(DWORD dwstyle, const RECT&amp;amp;amp; rect, CWnd* pParentWnd, UINT nID);&lt;br /&gt;
&lt;br /&gt;
 첫 번째 인수로 에디트의 스타일을 주되 에디트는 메인 윈도우가 될 수 없으므로 WS_CHILD 스타일을 주어야 하고 생성하자마자 보여야 하므로 WS_VISIBLE 스타일을 주어야 한다. 또한 에디트는 디폴트로 경계선을 가지지 않으므로 WS_BORDER 스타일을 주어야 보이게 된다. 두 번째 인수로 에디트가 차지할 사각영역을 주고 세 번째 인수로 에디트의 부모 윈도우의 포인터를 준다. 마지막 인수인 nID는 에디트 컨트롤의 ID이되 통지 메시지를 처리하지 않을 경우는 ID를 주지 않아도 상관없다.&lt;br /&gt;
 &lt;br /&gt;
 예제에서는 (10, 10, 300, 35) 사각 영역에 에디트를 생성하였으며 통지 메시지를 사용할 것이므로 IDC_MYEDIT라는 매크로 상수를 1000으로 정의하여 ID로 주었다. 여기서 1000이라는 ID는 임의로 준 것이다.&lt;br /&gt;
&lt;br /&gt;
 new 연산자로 에디트 객체를 만들었으므로 프로그램이 종료될 때 이 객체를 파괴해 주어야 한다. WM_DESTROY 메시지의 핸들러에 다음 코드를 작성하면 된다.&lt;br /&gt;
&lt;br /&gt;
 void CCreateEditView::OnDestroy()&lt;br /&gt;
 {&lt;br /&gt;
 	CView::OnDestroy();&lt;br /&gt;
 	&lt;br /&gt;
 	delete m_pEdit;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 이렇게 Create 함수로 만든 에디트의 통지 메시지는 어떻게 처리해야 할까. 클래스 위저드가 메시지 핸들러를 만들 때 해주는 세가지 동작을 프로그래머가 직접 해줘야 한다. 우선 메시지 맵에서 메시지와 메시지 핸들러를 연결시켜 준다. ON_EN_CHANGE 매크로에 의해 IDC_MYEDIT 에디트가 EN_CHANGE 메시지를 보내올 때 OnChangeEdit1 함수가 호출된다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 BEGIN_MESSAGE_MAP(CCreateEditView, CView)&lt;br /&gt;
 	//{{AFX_MSG_MAP((CCreateEditView)&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 	//Standard printing commands&lt;br /&gt;
 	ON_EN_CHANGE(IDC_MYEDIT, OnChangeEdit1)&lt;br /&gt;
 	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
&lt;br /&gt;
 두 번째로 헤더파일에 메시지 핸들러의 함수의 원형을 선언한다.&lt;br /&gt;
 &lt;br /&gt;
 //Generated message map functions&lt;br /&gt;
 protected:&lt;br /&gt;
 	//{{AFX_MSG(CCreateEditView)&lt;br /&gt;
 	.&lt;br /&gt;
 	.&lt;br /&gt;
 	//}}AFX_MSG&lt;br /&gt;
 	afx_msg void OnChangeEdit1();&lt;br /&gt;
 	DECLARE_MESSAGE_MAP()&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 세 번째로 메시지 핸들러 함수 OnChangeEdit1 함수를 작성한다. 함수의 본체 코드는 물론이고 함수명까지 직접 입력해 주어야 한다. 이 함수는 에디트 컨트롤의 문자열을 읽어 들이는 함수이다.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 void CCreateEditView::OnChangeEdit1()&lt;br /&gt;
 {&lt;br /&gt;
 	CString str;&lt;br /&gt;
 	m_pEdit-&amp;amp;gt;GetWindowText(str);&lt;br /&gt;
 	AfxGetMainWnd()-&amp;amp;gt;SetWindowText(str);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 예제에서 에디트의 EN_CHANGE 통지 메시지를 사용해 보았다. 통지 메시지란 컨트롤에 어떤 변화가 발생했을 때 부모 윈도우에게 자신의 변화를 알리기 위해 보내는 메시지를 말한다.&lt;br /&gt;
 에디트의 통지 메시지는 다음과 같다.&lt;br /&gt;
&lt;br /&gt;
메시지		/	설명&lt;br /&gt;
EN_CHANGE	/	에디트의 문자열이 변경되었다.&lt;br /&gt;
EN_ERRSPACE	/	메모리가 부족하다.&lt;br /&gt;
EN_HSCROLL	/	사용자가 수평스크롤 바를 클릭하였다.&lt;br /&gt;
EN_VSCROLL	/	사용자가 수직스크롤 바를 클릭하였다.&lt;br /&gt;
EN_KILLFOCUS/	포커스를 잃었다.&lt;br /&gt;
EN_SETFOCUT	/	포커스를 얻었다.&lt;br /&gt;
EN_MAXTEXT	/	지정한 문자열 길이를 초과하였다.&lt;br /&gt;
EN_UPDATE	/	문자열이 변경되기 직전이다.&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>