<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4187212371018175208</id><updated>2011-12-13T09:15:02.456+09:00</updated><category term='C#'/><category term='MFC-Function'/><category term='Horror Moive'/><category term='Cartoon'/><category term='DICOM'/><category term='Trackback'/><category term='Software development methodology'/><category term='C/C++'/><category term='Info'/><category term='Heart'/><category term='육아'/><category term='개인'/><category term='SCRAP'/><category term='Talking to oneself'/><category term='NEWS'/><category term='***방명록'/><category term='Blogging'/><category term='Horror Cartoon'/><title type='text'>GhostSheep's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>74</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-2289407054271491595</id><published>2009-04-15T10:15:00.006+09:00</published><updated>2009-04-15T10:35:43.307+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[Visual C++]윈도우에서 정의된 데이터 형</title><content type='html'>&lt;pre&gt;&lt;br /&gt;데이터 형                    의미&lt;br /&gt;BOOL                           논리형. TRUE 또는 FALSE 값만 가질 수 있음&lt;br /&gt;BYTE                            unsigned char (8 bit)&lt;br /&gt;DWORD                        unsigned long (32 bit)&lt;br /&gt;DWORDLONG                unsigned double (64 bit)&lt;br /&gt;FLOAT                          float&lt;br /&gt;LONG                            signed long (32 bit)&lt;br /&gt;LONGLONG                    signed double (64 bit)&lt;br /&gt;LPARAM                        32 bit 메시지 파라미터&lt;br /&gt;LPCSTR                        널 문자로 끝나는 윈도우 문자열 상수의 포인터&lt;br /&gt;LPCTSTR                      널 문자로 끝나는 유니코드 또는 윈도우 문자열 상수의 포인터&lt;br /&gt;LPSTR                          널 문자로 끝나는 윈도우 문자열의 포인터&lt;br /&gt;LPTSTR                        널 문자로 끝나는 유니코드 또는 윈도우 문자열의 포인터&lt;br /&gt;TCHAR                         유니코드 또는 윈도우 문자&lt;br /&gt;UINT                            unsigned int (32 bit)&lt;br /&gt;WORD                          unsigned short (16 bit)&lt;br /&gt;WPARAM                      16 bit 메시지 파라미터&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-2289407054271491595?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/2289407054271491595/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/04/blog-post_15.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2289407054271491595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2289407054271491595'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/04/blog-post_15.html' title='[Visual C++]윈도우에서 정의된 데이터 형'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-5211887935135083302</id><published>2009-04-13T13:35:00.002+09:00</published><updated>2009-04-13T13:42:11.975+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='개인'/><title type='text'>[잡설] 와이프의 한마디</title><content type='html'>어제 가족끼리 어린이 대공원에 소풍을 다녀와서 너무 피곤해 그냥 골아떨어져 잠들었다.&lt;br /&gt;그러다 오늘 아침에 일어나 아침이랑 도시락(아들 반찬 포함해서)만들다 7시에 와이프 깨웠지.&lt;br /&gt;많이 피곤했는지 뒤척이며 일어나 켜놨던 뉴스를 가만히 쳐다본다.&lt;br /&gt;한참 가만히 있다 한마디 건넨다.&lt;br /&gt;&lt;br /&gt;마눌님: "MB가 올해 몇 년차지..?"&lt;br /&gt;나: (버섯 삶다가) 음.. 2년차지..&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;나: ".....;; "&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;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-5211887935135083302?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/5211887935135083302/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/04/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/5211887935135083302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/5211887935135083302'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/04/blog-post.html' title='[잡설] 와이프의 한마디'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-9034940174858531975</id><published>2009-03-31T16:28:00.003+09:00</published><updated>2009-03-31T16:33:50.544+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Heart'/><title type='text'>[심장]17번 심장수술 이긴 ‘기적의 소녀’ 감동</title><content type='html'>뉴스: &lt;a href="http://nownews.seoul.co.kr/news/newsView.php?id=20090331601007"&gt;17번 심장수술 이긴 ‘기적의 소녀’ 감동&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;정말 대단하다. 뉴스에 나온 저 소녀(사라 하셀그로브)는 13살까지 무려 17번의 심장 수수을 받았단다. 내 아이도 태어난지 1주일만에 심장수술을 했기 때문에 그 고통이 어떤 것인지 알고 있다. 정말.. 사라의 부모님이 얼마나 큰 고통을 받았어야 했을지...&lt;br /&gt;한 번도 정말 힘든데 17번이라니..( 그 중에 태어난 해 받은 수술은 5번) 기가 막히다.&lt;br /&gt;&lt;br /&gt;정말 살고자 하는 의지가 강한 아이다. 부디... 계속 건강하게 잘 자라주기를 바란다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-9034940174858531975?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/9034940174858531975/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/03/17.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/9034940174858531975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/9034940174858531975'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/03/17.html' title='[심장]17번 심장수술 이긴 ‘기적의 소녀’ 감동'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-1584561763247003611</id><published>2009-03-30T17:29:00.002+09:00</published><updated>2009-03-30T17:33:44.102+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>[C#]입력된 int를 LWORD 또는 HWORD로 전환하기</title><content type='html'>다음 method를 이용하면 원하는 대로 수정이 가능하다.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public IntPtr MakeLParam(int LoWord, int HiWord)&lt;br /&gt;{&lt;br /&gt;    return (IntPtr)((HiWord &lt;&lt; 16) | (LoWord &amp; 0xffff));&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;이 method는 다음 처럼 사용하여야 한다.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;private void buttonSaveNNext_Click(object sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt;    public uint g_WMReqPACSOperation;&lt;br /&gt;    g_WMReqPACSOperation = RegisterWindowMessage("Save and Next");&lt;br /&gt;&lt;br /&gt;    if (Save() &amp;&amp; g_strStudyKey != string.Empty)&lt;br /&gt;    {&lt;br /&gt;        MakeLParam(0, 2);&lt;br /&gt;        IntPtr lParam = ICode.MakeLParam(0, 2);&lt;br /&gt;        SendMessage(g_WMReqPACSOperation, g_strStudyKey, lParam);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-1584561763247003611?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/1584561763247003611/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/03/c-int-lword-hword.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1584561763247003611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1584561763247003611'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/03/c-int-lword-hword.html' title='[C#]입력된 int를 LWORD 또는 HWORD로 전환하기'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-3243280912810573566</id><published>2009-03-30T16:09:00.008+09:00</published><updated>2009-03-30T16:56:25.417+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>[C#]주어진 문자(영문이든 한글이든) 원하는 길이 만큼 잘라내기</title><content type='html'>요즘 작업하는 일 중에 고객사의 요청으로 최대 6자(한글은 3자)까지만 허용할 수 있는 - 즉, 그 길이를 넘어가면 잘라내도록 - 기능을 추가했다.&lt;br /&gt;&lt;br /&gt;일단 아래 코드를 먼저 보자.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    public string GetWordByByte(string src, int Bytecount)&lt;br /&gt;    {&lt;br /&gt;        System.Text.Encoding myEncoding&lt;br /&gt;        = System.Text.Encoding.GetEncoding("ks_c_5601-1987");&lt;br /&gt;        byte[] buf = myEncoding.GetBytes(src);&lt;br /&gt;&lt;br /&gt;        string strResult = myEncoding.GetString(buf, 0, Bytecount);&lt;br /&gt;&lt;br /&gt;        if (Bytecount != strResult.Length)&lt;br /&gt;            strResult = myEncoding.GetString(buf, 0, Bytecount);&lt;br /&gt;&lt;br /&gt;        return strResult;&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;인터넷에 돌아다니던 method이다. 어떤 문자이든 일단 method에 넣어 원하는 길이를 넣으면 그 만큼 잘라낸다.&lt;br /&gt;&lt;br /&gt;여기서 문제가 발생하는데 한글인지 영문인지 단순 바이트로 구분할 수가 없다는 것이다. 쉽게 다른 블로거님이 작성한 내용을 참고해보자.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://newsoju.springnote.com/pages/1593230"&gt;"부연 설명&lt;br /&gt;유니코드 인코딩으로 GetBytes를 해보면 한글이나 영문이나 배열을 2칸씩 사용하면서 정보가 들어갑니다. 그러나 영문은 1 byte이기 때문에 2번째 칸에는 무조건 0이란 값만 들어가게 됩니다. 필요없는 데이터가 함께 들어가더군요.&lt;br /&gt;&lt;br /&gt;       아스키 인코딩으로 해보면 한글을 인식하지 못하기 때문에 한글 정보가 제대로 들어가지 않습니다. 한글을 1바이트 안에 넣으려고 하죠.&lt;br /&gt;&lt;br /&gt;       하지만 위에서 사용한 인코딩 방법은 한글은 배열을 2칸씩, 영문은 1칸씩 사용하면서 넣어줍니다. 덕분에 문자열이 한글이든 영문이든 바이트 단위로 잘 가져올 수 있더군요."&lt;/a&gt;                  &lt;br /&gt;&lt;br /&gt;위의 내용처럼 한글이든 영문이든 같은 크기의 바이트를 사용하기 때문에 바이트 크기로 구분할 수는 없다. (개인적으로 참고한 블로그이니 따로 참고할 자료가 필요하다면 글에 걸려있는 링크를 따라가 보기를 바란다.)&lt;br /&gt;즉, 6자(한글 3자)를 넘기면 무조건 길이에 맞게 잘라내야 한다고 가정해보자. 그러면 한글이 "가나다라바사"이면 분명 "가나다"까지만 check되어 잘라야 하지만 구분할 단순 length로는 판단이되지 않기 때문에 다른 방법이 필요하다는 것이다.&lt;br /&gt;&lt;br /&gt;그래서 다음과 같이 풀었다. 아예 code를 보면서 얘기하자.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;bool bHangul = false;&lt;br /&gt;&lt;br /&gt;char[] cLoginUserID = g_strLoginUserID.ToCharArray(0, g_strLoginUserID.Length);&lt;br /&gt;foreach (char c1 in cLoginUserID)&lt;br /&gt;{&lt;br /&gt;    if (char.GetUnicodeCategory(c1) ==&lt;br /&gt;         System.Globalization.UnicodeCategory.OtherLetter)  // 한글인지 check&lt;br /&gt;    {&lt;br /&gt;        bHangul = true;&lt;br /&gt;        break;&lt;br /&gt;    }&lt;br /&gt;    else&lt;br /&gt;        bHangul = false;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if (bHangul)&lt;br /&gt;    InsertCommand[iRow].Parameters.Add("@arg_UserId",&lt;br /&gt;        OleDbType.VarChar).Value = CommFunc.GetWordByByte(g_strLoginUserID, 6);&lt;br /&gt;else&lt;br /&gt;    InsertCommand[iRow].Parameters.Add("@arg_UserId",&lt;br /&gt;        OleDbType.VarChar).Value = g_strLoginUserID;&lt;br /&gt;&lt;br /&gt;char[] cLoginUserName =&lt;br /&gt;g_strLoginUserName.ToCharArray(0, g_strLoginUserName.Length);&lt;br /&gt;foreach (char c2 in cLoginUserName)&lt;br /&gt;{&lt;br /&gt;    if (char.GetUnicodeCategory(c2) ==&lt;br /&gt;         System.Globalization.UnicodeCategory.OtherLetter)  // 한글인지 check&lt;br /&gt;    {&lt;br /&gt;        bHangul = true;&lt;br /&gt;        break;&lt;br /&gt;    }&lt;br /&gt;    else&lt;br /&gt;        bHangul = false;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if (bHangul)&lt;br /&gt;    InsertCommand[iRow].Parameters.Add("@arg_UserName",&lt;br /&gt;        OleDbType.VarChar).Value = CommFunc.GetWordByByte(g_strLoginUserName, 6);&lt;br /&gt;else&lt;br /&gt;    InsertCommand[iRow].Parameters.Add("@arg_UserName",&lt;br /&gt;        OleDbType.VarChar).Value = g_strLoginUserName;&lt;/pre&gt;&lt;br /&gt;위의 code 처럼 char array로 복사하여 문자별로 비교하여 한글인지 check하고 만약 한글자라도 한글이 있다면 그에 맞게 처음 설명한 code를 이용하여 입력된 길이에 맞게 잘라내는 것이다.&lt;br /&gt;&lt;br /&gt;위의 code들은 실제 사용되고 있는 code로 사용자 id와 name을 한글은 3자, 영문은 6자를 넘어가면 잘라서 입력하기 위해 만들어진 code이다.&lt;br /&gt;InsertCommand는 OleDbCommand[] InsertCommand로 sql 명령문을 실행하기 위한 프로시져이다. 그리고 arg_UserId, arg_UserName는이 sql에서 사용하기 위한 아규먼트이다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-3243280912810573566?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/3243280912810573566/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/03/c.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/3243280912810573566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/3243280912810573566'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/03/c.html' title='[C#]주어진 문자(영문이든 한글이든) 원하는 길이 만큼 잘라내기'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-5078877247448748115</id><published>2009-03-30T12:39:00.002+09:00</published><updated>2009-03-30T12:44:52.432+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NEWS'/><title type='text'>[NEWS]세계피겨선수권대회에서 나라 망신시킨 전주시 -&gt; 뭐여.. 어쩌라고... -_-;;;</title><content type='html'>뉴스 : &lt;a href="http://www.kukinews.com/news2/article/view.asp?page=1&amp;amp;gCode=spo&amp;amp;arcid=0921238868&amp;amp;code=41161111"&gt;&lt;b&gt;세계피겨선수권대회에서 나라 망신시킨 전주시&lt;/b&gt;&lt;/a&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;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;그래도.. 김연아 선수~~ 축하해요..&lt;br /&gt;고생했어요.&lt;br /&gt;^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-5078877247448748115?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/5078877247448748115/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/03/news.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/5078877247448748115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/5078877247448748115'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/03/news.html' title='[NEWS]세계피겨선수권대회에서 나라 망신시킨 전주시 -&gt; 뭐여.. 어쩌라고... -_-;;;'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-1988263112034478565</id><published>2009-02-06T13:21:00.001+09:00</published><updated>2009-02-06T13:23:33.843+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cartoon'/><title type='text'>[Webtoon]악법 카툰 릴레이 11화: 사이버모욕죄 - 주호민</title><content type='html'>갑자기 제 10화라네..&lt;br /&gt;앞에 박철권 작가도 그러더니...&lt;br /&gt;&lt;br /&gt;작가들 착각했는가벼...&lt;br /&gt;&lt;br /&gt;//-----------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;div id="content_area" style="overflow: hidden;"&gt;        &lt;p align="center"&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=bXl1Z0BmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvOS5qcGc=&amp;amp;filename=homin.jpg" /&gt;&lt;/p&gt;&lt;center&gt;--------------------------------------------------------------------------&lt;/center&gt;&lt;br /&gt;&lt;center&gt; &lt;/center&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;strong&gt;&lt;span style="font-family:굴림;font-size:100%;"&gt; 형법일부개정법률안(발의 : 한나라당 장윤석 의원)&lt;/span&gt;&lt;/strong&gt; &lt;br /&gt;&lt;p class="바탕글"&gt;&lt;span style="font-size: 11pt; font-family: HCI Poppy;" lang="EN-US"&gt;&lt;span style="font-family:굴림;font-size:100%;"&gt;- 일명 ‘사이버 모욕죄’ 1호 법안. 인터넷상의 모욕죄를 가중 처벌하고 &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;비친고죄&lt;/strong&gt;&lt;/span&gt;로 한 것이 주요 내용 (인터넷상 모욕죄의 경우 3년 이하의 징역이나 금고 또는 1천만원 이하의 벌금에 처하도록 함. 이는 형법상 모욕죄가 1년 이하의 징역이나 금고 또는 200만원 이하의 벌금을 내리는 것에 비해 무거운 형량임)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="바탕글"&gt;&lt;span style="font-size: 11pt; font-family: HCI Poppy;" lang="EN-US"&gt;&lt;span style="font-family:굴림;font-size:100%;"&gt;- 모욕죄가 표현의 자유를 제한하는 점, ‘모욕의 감정’이 주관적이라는 점 때문에 현행법상 모욕죄는 친고죄로 규정되어 있을 뿐 아니라, 나아가 폐지해야 한다는 의견이 많음. 이러한 현실에서 오히려 모욕죄를 반의사불벌죄로 규정하여 ‘비친고죄’로 변형하여 규정할 경우, 수사기관의 자의적&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="본문"&gt;&lt;span style="font-family:굴림;"&gt;&lt;span style="font-size:100%;"&gt;  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="본문"&gt;&lt;span style="font-family:굴림;"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span style="font-size: 11pt; font-family: HCI Poppy;" lang="EN-US"&gt;  &lt;/span&gt;&lt;span style="font-weight: bold; font-size: 11pt; font-family: 휴먼명조;"&gt;정보통신망법 개정안1&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 11pt; font-family: HCI Poppy;" lang="EN-US"&gt;(발의 : 한나라당 나경원 의원)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="바탕글"&gt;&lt;span style="font-size: 11pt; font-family: 휴먼명조;"&gt;&lt;span style="font-family:굴림;font-size:100%;"&gt;일명 사이버 모욕죄 2호 법안 : 인터넷을 통해 공공연하게 사람을 모욕한 경우 2년 이하의 징역이나 금고, 또는 1000만원 이하의 벌금에 처하도록 하고, 친고죄가 아니라 반의사불벌죄로 도입하는 것을 주요 골자로 하고 있다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="바탕글"&gt;&lt;span style="font-size: 11pt; font-family: 휴먼명조;"&gt;&lt;span style="font-family:굴림;"&gt;&lt;span style="font-size:100%;"&gt;이 미 형법상의 모욕죄가 있어 법률 공백이 존재하지 않는다. 또한, 모욕의 감정이 주관적이라는 점 때문에 현행법상 모욕죄는 친고죄로 규정되어 있을 뿐 아니라, 모욕죄의 폐지는 세계적 추세이다. 이러한 상황에서 친고죄가 아닌 반의사불벌죄로 바꾸는 것은 &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;피해자의 고소 없이 수사기관의 자의적 판단에 의해 인터넷 사용자에 대한 수사나 처벌이 가능하게 된다.&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="바탕글"&gt;&lt;span style="font-family:굴림;"&gt;&lt;span style="font-size:100%;"&gt;  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="개조식"&gt;&lt;span style="font-weight: bold; font-size: 11pt;" lang="EN-US"&gt;&lt;span style="font-family:굴림;font-size:100%;"&gt;  정보통신망법 개정안2(발의 : 방송통신위원회 제출)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="개조식"&gt;&lt;span style="font-size: 11pt;" lang="EN-US"&gt;&lt;span style="font-family:굴림;font-size:100%;"&gt;- 인터넷 상의 본인확인제(인터넷실명제) 의무대상 사업자룰 확대하는 것이 골자&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="바탕글"&gt;&lt;span style="font-family:굴림;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size: 11pt; font-family: HCI Poppy;" lang="EN-US"&gt;- 본인확인조치 의무대상사업자를 현행 일일평균 이용자수 20~30만명 &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: 휴먼명조;"&gt;이 상(조사기준일 직전년도 3개월간)에서, 10만명 이상의 모든 게시판 운영 정보통신서비스제공자로 확대. 이 법에 따르면, 인터넷 실명제 적용 사이트는 현행 37개에서 210개로 확대되고, 국민이 이용하는 거의 모든 사이트가 해당됨.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="바탕글"&gt;&lt;span style="font-size: 11pt; font-family: HCI Poppy;" lang="EN-US"&gt;&lt;span style="font-family:굴림;font-size:100%;"&gt;- 이 법은 &lt;span style="color:#ff0000;"&gt;네티즌을 잠정 범죄자로 취급한 것으로&lt;/span&gt;, 인터넷 공동체의 자율성을 침해하고, 원활하게 운영되는 수많은 익명 게시판에 족쇄를 채우는 법안임.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p align="center"&gt; &lt;/p&gt;&lt;p align="center"&gt;모든 만화는 동의없이 사용 가능합니다/인쇄가능/수정금지&lt;/p&gt;   &lt;/div&gt;&lt;br /&gt;출처: &lt;a href="http://bbs1.agora.media.daum.net/gaia/do/debate/read?bbsId=D003&amp;amp;articleId=2257437"&gt;악법 카툰릴레이 10화 (사이버모욕죄) - 주호민&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-1988263112034478565?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/1988263112034478565/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/02/webtoon-11.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1988263112034478565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1988263112034478565'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/02/webtoon-11.html' title='[Webtoon]악법 카툰 릴레이 11화: 사이버모욕죄 - 주호민'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-6270164437315342107</id><published>2009-02-06T13:18:00.001+09:00</published><updated>2009-02-06T13:20:39.395+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cartoon'/><title type='text'>[Webtoon]악법 카툰 릴레이 10화: 금산분리법 - 박철권</title><content type='html'>&lt;p&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=bXl1Z0BmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvNy5qcGc=&amp;amp;filename=gumsan1.jpg" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=bXl1Z0BmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvOC5qcGc=&amp;amp;filename=gumsan2.jpg" /&gt;&lt;/p&gt;&lt;p&gt;MB악법 카툰 릴레이의 모든 만화는 무한펌질 가능합니다.&lt;br /&gt;내용수정금지/동의없이 사용 가능/인쇄 가능/적극 권장&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;출처: &lt;a href="http://bbs1.agora.media.daum.net/gaia/do/debate/read?bbsId=D003&amp;amp;articleId=2249338"&gt;악법 카툰릴레이 10화 (금산분리법) - 박철권&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-6270164437315342107?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/6270164437315342107/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/02/webtoon-10.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6270164437315342107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6270164437315342107'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/02/webtoon-10.html' title='[Webtoon]악법 카툰 릴레이 10화: 금산분리법 - 박철권'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-7237332294766167098</id><published>2009-02-06T13:15:00.001+09:00</published><updated>2009-02-06T13:18:38.064+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cartoon'/><title type='text'>[Webtoon]악법 카툰 릴레이 9화: 의료법2 - 석정현</title><content type='html'>영리법인 병원 허용....&lt;br /&gt;사람들은 모른다.&lt;br /&gt;이게 얼마나 무서운 소린지..&lt;br /&gt;&lt;br /&gt;인간의 목숨은 장난칠 수 있는 대상이 아니다.&lt;br /&gt;&lt;br /&gt;//-----------------------------------------------------&lt;br /&gt;&lt;p&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=NUdZNUBmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvNDcuanBn&amp;amp;filename=stone02%28web%29-1.jpg" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=NUdZNUBmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvNDguanBn&amp;amp;filename=stone02%28web%29-2.jpg" /&gt;&lt;/p&gt;출처: &lt;a href="http://bbs1.agora.media.daum.net/gaia/do/debate/read?bbsId=D003&amp;amp;articleId=2241844"&gt;악법 카툰릴레이 9화 (의료법2) - 석정현&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-7237332294766167098?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/7237332294766167098/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/02/webtoon-9-2.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/7237332294766167098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/7237332294766167098'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/02/webtoon-9-2.html' title='[Webtoon]악법 카툰 릴레이 9화: 의료법2 - 석정현'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-6508958446041822885</id><published>2009-02-06T13:13:00.001+09:00</published><updated>2009-02-06T13:15:18.071+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cartoon'/><title type='text'>[Webtoon]악법 카툰 릴레이 8화: 의료법 - 석정현</title><content type='html'>내 입장 때문일까..&lt;br /&gt;가장 관심가는 분야가 바로 이 의료법...&lt;br /&gt;이거 통과되면 진짜 막장이다!!&lt;br /&gt;&lt;br /&gt;//-----------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:void(newWindowOpen('http://thimg.dreamwiz.com/page/view_image.php?upfile_url=http://thimg.dreamwiz.com/upfile&amp;amp;upfile_folder=200901&amp;amp;file=1233287285279_1.jpg','','scrollbars=yes,resizable=yes,width=300,height=100'));"&gt;&lt;img src="http://thimg.dreamwiz.com/upfile/200901/1233287285279_1.jpg" name="upfile1" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="javascript:void(newWindowOpen('http://thimg.dreamwiz.com/page/view_image.php?upfile_url=http://thimg.dreamwiz.com/upfile&amp;amp;upfile_folder=200901&amp;amp;file=1233287285279_2.jpg','','scrollbars=yes,resizable=yes,width=300,height=100'));"&gt;&lt;img src="http://thimg.dreamwiz.com/upfile/200901/1233287285279_2.jpg" name="upfile2" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;출처: &lt;a href="http://todayhumor.paran.com/board/view.php?table=bestofbest&amp;amp;no=27139&amp;amp;page=1&amp;amp;keyfield=&amp;amp;keyword=&amp;amp;sb"&gt;&lt;b&gt;&lt;span style="font-size:130%;"&gt;악법 카툰릴레이 8화 (의료법) - 석정현&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-6508958446041822885?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/6508958446041822885/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/02/webtoon-8.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6508958446041822885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6508958446041822885'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/02/webtoon-8.html' title='[Webtoon]악법 카툰 릴레이 8화: 의료법 - 석정현'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-8840985710385732222</id><published>2009-02-06T13:10:00.001+09:00</published><updated>2009-02-06T13:12:36.614+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cartoon'/><title type='text'>[Webtoon]악법 카툰 릴레이 7화: 방송법2 - 김용민</title><content type='html'>.&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=NUdZNUBmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvMjcuanBn&amp;amp;filename=media1_mirxmirx.jpg" /&gt;&lt;br /&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=NUdZNUBmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvMjguanBn&amp;amp;filename=media2_mirxmirx.jpg" /&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=NUdZNUBmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvMjkuanBn&amp;amp;filename=media3_mirxmirx.jpg" /&gt;&lt;/p&gt;모든 만화는 동의없이 사용 가능합니다/인쇄가능/수정금지&lt;br /&gt;&lt;br /&gt;출처: &lt;a href="http://bbs1.agora.media.daum.net/gaia/do/debate/read?bbsId=D003&amp;amp;articleId=2232736"&gt;악법 카툰릴레이 7화 (방송법2) - 김용민&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-8840985710385732222?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/8840985710385732222/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/02/webtoon-7-2.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8840985710385732222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8840985710385732222'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/02/webtoon-7-2.html' title='[Webtoon]악법 카툰 릴레이 7화: 방송법2 - 김용민'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-2661517822837921782</id><published>2009-02-06T13:08:00.002+09:00</published><updated>2009-02-06T13:10:20.271+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cartoon'/><title type='text'>[Webtoon]악법 카툰 릴레이 6화: 언론법(조중동, 재벌방송법) - 김용민</title><content type='html'>참 웃기게 돌아가는 세상이에요~~~ㅋ&lt;br /&gt;&lt;br /&gt;//---------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=NUdZNUBmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvMjYuanBn&amp;amp;filename=kym.jpg" /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;출처: &lt;a href="http://bbs1.agora.media.daum.net/gaia/do/debate/read?bbsId=D003&amp;amp;articleId=2229870"&gt;악법 카툰릴레이 6화 : 언론법(조중동.재벌방송법) - 김용민&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-2661517822837921782?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/2661517822837921782/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/02/webtoon-6.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2661517822837921782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2661517822837921782'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/02/webtoon-6.html' title='[Webtoon]악법 카툰 릴레이 6화: 언론법(조중동, 재벌방송법) - 김용민'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-5497496493729237492</id><published>2009-02-06T13:04:00.001+09:00</published><updated>2009-02-06T13:07:31.820+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cartoon'/><title type='text'>[Webtoon]악법 카툰 릴레이 5화: 지옥의 묵시록 - 김태권</title><content type='html'>그 동안 연휴와 일 때문에 바빠서 못올렸던 악법 카툰을 모조리 퍼온다...&lt;br /&gt;&lt;br /&gt;언제나 말하지만 참 짜증나는 세상이 되어가는 거 같다.&lt;br /&gt;//------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;MB악법 카툰 릴레이의 모든 만화는 무한펌질 가능합니다.&lt;br /&gt;내용수정금지/동의없이 사용 가능/인쇄 가능/적극 권장.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-size: 9pt; font-family: 굴림;"&gt;&lt;a href="java-script:void%28newWindowOpen%28%27http://thimg.dreamwiz.com/page/view_image.php?upfile_url=http://thimg.dreamwiz.com/upfile&amp;amp;upfile_folder=200901&amp;amp;file=1232672463202_1.jpg%27,%27%27,%27scrollbars=yes,resizable=yes,width=300,height=100%27%29%29;"&gt;&lt;img src="http://thimg.dreamwiz.com/upfile/200901/1232672463202_1.jpg" name="upfile1" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-size: 9pt; font-family: 굴림;"&gt; &lt;/p&gt;&lt;p style="font-size: 9pt; font-family: 굴림;"&gt;&lt;a href="java-script:void%28newWindowOpen%28%27http://thimg.dreamwiz.com/page/view_image.php?upfile_url=http://thimg.dreamwiz.com/upfile&amp;amp;upfile_folder=200901&amp;amp;file=1232672463202_2.jpg%27,%27%27,%27scrollbars=yes,resizable=yes,width=300,height=100%27%29%29;"&gt;&lt;img src="http://thimg.dreamwiz.com/upfile/200901/1232672463202_2.jpg" name="upfile2" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-size: 9pt; font-family: 굴림;"&gt; &lt;/p&gt;&lt;a href="java-script:void%28newWindowOpen%28%27http://thimg.dreamwiz.com/page/view_image.php?upfile_url=http://thimg.dreamwiz.com/upfile&amp;amp;upfile_folder=200901&amp;amp;file=1232672463202_3.jpg%27,%27%27,%27scrollbars=yes,resizable=yes,width=300,height=100%27%29%29;"&gt;&lt;img src="http://thimg.dreamwiz.com/upfile/200901/1232672463202_3.jpg" name="upfile3" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;출처: &lt;a href="http://bbs1.agora.media.daum.net/gaia/do/debate/read?bbsId=D117&amp;amp;articleId=419931"&gt;악법 카툰릴레이 5화 (지옥의 묵시록) - 김태권.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-5497496493729237492?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/5497496493729237492/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/02/webtoon-5.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/5497496493729237492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/5497496493729237492'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/02/webtoon-5.html' title='[Webtoon]악법 카툰 릴레이 5화: 지옥의 묵시록 - 김태권'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-6928358342784524250</id><published>2009-02-06T12:58:00.001+09:00</published><updated>2009-02-06T12:59:58.483+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='개인'/><title type='text'>[근황] 바쁘네...</title><content type='html'>최근 회사에서 일이 제법 바빠졌다.&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;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-6928358342784524250?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/6928358342784524250/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/02/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6928358342784524250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6928358342784524250'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/02/blog-post.html' title='[근황] 바쁘네...'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-1782529684342297013</id><published>2009-01-22T14:59:00.001+09:00</published><updated>2009-01-22T15:02:05.281+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cartoon'/><title type='text'>[Webtoon]악법 카툰 릴레이 4화: 비정규직법 + 최저임금법 - 야마꼬</title><content type='html'>&lt;p&gt; 말도 안되지만... 대한민국에선 언제나 현실화된다!&lt;/p&gt;&lt;p&gt;//------------------------------------------------------------&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=NUdZNUBmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvMjIuanBn&amp;amp;filename=yamako.jpg" /&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;MB악법 반대 카툰릴레이는 계속 됩니다.&lt;/p&gt;&lt;p&gt;많이 도와주세요. &lt;/p&gt;&lt;p&gt;되도록 많은 분들이 볼수 있게.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;더욱 암담한 대한민국이 되지 않도록.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;출처: &lt;a href="http://bbs1.agora.media.daum.net/gaia/do/debate/read?bbsId=D003&amp;amp;articleId=2207546"&gt;악법 카툰릴레이 4화 (비정규직법+최저임금법) - 야마꼬.&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-1782529684342297013?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/1782529684342297013/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/01/webtoon-4.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1782529684342297013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1782529684342297013'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/01/webtoon-4.html' title='[Webtoon]악법 카툰 릴레이 4화: 비정규직법 + 최저임금법 - 야마꼬'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-1768402658640551794</id><published>2009-01-22T13:02:00.002+09:00</published><updated>2009-01-22T13:28:28.569+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Trackback'/><title type='text'>[Trackback] 현대판 "난장이가 쏘아올린 작은 공"</title><content type='html'>우선 이번 용산 철거민 참사의 희생자 모든 분들의 명복을 빌며 상처입은 모든 분들의 쾌유를 빕니다.&lt;br /&gt;&lt;br /&gt;이미 MB 정부가 시작되면서 소시민을 위한 보호장치는 전무해지고 상위1%를 위한 사회가 될 것이란 것을 알고 있었지만 이번 사건을 계기로 그 정도가 생각했던 것보다 더 심하다는 것을 알았습니다.&lt;br /&gt;&lt;br /&gt;누군가 내 재산과 가족의 안전을 해치려는 사람이 있다면 전 모든 수단을 동원하여 싸울 것입니다. 그건 어떤 누구라도 다 마찬가지이지요. 어떤 상황에 따라선 제가 가진 모든 걸 걸고 싸워야할 때도 있을 것입니다. 하지만... 싸울 수 있는 수단이 전무하다면 어쩌시렵니까? 법의 도움을 받자니 돈이 없고(솔직히 당장 먹고 살기도 벅찬데 어떻게 변호사를 선임하겠습니까..) 정부의 도움을 기대해보지만 그들도 결국 있는 자들의 편이라면... 결국 용산 철거민들과 같은 결정에 어쩔 수 없이 내몰리게 되는 겁니다.&lt;br /&gt;&lt;br /&gt;용산 철거민들은 이미 이길 수 없는 싸움이라는 것을 알고 있었습니다. 하지만 더 이상 잃을 것이 없었지요. 큰 것을 바라는 것이 아니었습니다. 그저... 내가 이 땅에 살고 있는 동안.. 잠시라도 편히 쉴 수 있는 집이 필요한 것 뿐이었습니다.&lt;br /&gt;하지만 없는 자들이 이런 소망을 갖는 다는 것은 대한민국에서는 사치이며 이제는 죄입니다. 이제는 없는 자들이 내 권리를 찾겠다고 주장하면 경찰한테 맞는 시대지요.&lt;br /&gt;지금이 21세기가 맞는 건지요. 어찌 이리도 과거에 벌어졌던 독재 정권의 향기가 이리도 독하게 남아 있는 겁니까...&lt;br /&gt;&lt;br /&gt;MB의 정치는 누구를 위한 것입니까. 대운하니.. 의료법 개정이니.. 금산분리법 완화니.. 모두가 상위 1%를 위하는 것들입니다. 건설족들의 배를 불리고.. 있는 자들의 재산을 더욱 늘리기 위한 수단입니다.&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;이런 글을 올렸으니 전 그들의 기준에서 불순분자이며 좌빨이겠네요.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;TrackBack: &lt;a href="http://blog.ohmynews.com/gkfnzl/156805" onfocus="this.blur()" class="title_link"&gt;난쏘공' 조세희의 울분 "죽을 걸 뻔히 알면서... 잔인해"&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-1768402658640551794?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/1768402658640551794/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/01/trackback.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1768402658640551794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1768402658640551794'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/01/trackback.html' title='[Trackback] 현대판 &quot;난장이가 쏘아올린 작은 공&quot;'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-7827805049991462313</id><published>2009-01-21T16:32:00.002+09:00</published><updated>2009-01-21T16:40:26.024+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Talking to oneself'/><title type='text'>이제는 생활이 공포</title><content type='html'>세상이 미쳤다.&lt;br /&gt;국가에서 개인이 지키고자 하는 최소한의 권리까지도 밟아버린다.&lt;br /&gt;내 가족의 안위를 지키는 것이 죄가 되는 세상이다.&lt;br /&gt;그것도 상위 1%를 위해 내 권리를 포기해야 한다니...&lt;br /&gt;이제 곧 내 태생이 원망스러운 순간이 다가올까 두렵다.&lt;br /&gt;&lt;br /&gt;하루하루 시간이 지나가면서 하도 어처구니없는 일이 많이 일어나니 내가 지금 꿈을 꾸는듯한 느낌이다.&lt;br /&gt;&lt;br /&gt;정말 돈이 없어 가족에게 미안한 상황이 올까봐 무섭다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-7827805049991462313?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/7827805049991462313/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/01/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/7827805049991462313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/7827805049991462313'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/01/blog-post.html' title='이제는 생활이 공포'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-1501671184251202151</id><published>2009-01-21T14:49:00.003+09:00</published><updated>2009-01-21T14:59:44.450+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[Visual C++]void*란 무엇을 뜻하는가?</title><content type='html'>어떤 형의 포인터든 모두 받아주겠다는 의미.&lt;br /&gt;다시 활용하려면 캐스팅을 거쳐야만 한다.&lt;br /&gt;&lt;br /&gt;(예제 1)&lt;br /&gt;char *p;&lt;br /&gt;void *c;&lt;br /&gt;c=p;&lt;br /&gt;&lt;br /&gt;char *v;&lt;br /&gt;v=(char*)c;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;(예제 2)&lt;br /&gt;#include "stdafx.h"&lt;br /&gt;#include &lt;iostream&gt;&lt;br /&gt;&lt;iostream&gt;using namespace std;  &lt;p&gt;&lt;strong&gt;void printit(void* pData, char cOption);&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;int main(int argc, char* argv[])&lt;/strong&gt;&lt;br /&gt;{&lt;br /&gt;     char cOption;&lt;/p&gt;&lt;p&gt;      char* pChar;&lt;br /&gt;     int* piValue;&lt;br /&gt;     float* pfValue;&lt;/p&gt;&lt;p&gt;      cout   &lt;&lt; "input output option\n" &lt;&lt; " press c for char, i for int or f for float:";&lt;/p&gt;&lt;p&gt;      cin     &gt;&gt; cOption;&lt;/p&gt;&lt;p&gt;      switch(cOption)&lt;br /&gt;     {&lt;br /&gt;           case 'c':&lt;br /&gt;                 pChar = new char;&lt;br /&gt;                 cout &lt;&lt; "\nEnter a character:";                   cin &gt;&gt; *pChar;&lt;br /&gt;                 printit(pChar, cOption);&lt;br /&gt;                 break;&lt;br /&gt;           case 'i':&lt;br /&gt;                 piValue = new int;&lt;br /&gt;                 cout &lt;&lt; "\nEnter a interger:";                   cin &gt;&gt; *piValue;&lt;br /&gt;                 printit(piValue, cOption);&lt;br /&gt;                 break;&lt;br /&gt;           default:&lt;br /&gt;                 pfValue = new float;&lt;br /&gt;                 cout &lt;&lt; "\nEnter a float:";                   cin &gt;&gt; *pfValue;&lt;br /&gt;                 printit(pfValue, cOption);&lt;br /&gt;     }&lt;/p&gt;&lt;p&gt;      return 0;&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;&lt;strong&gt;void printit(void* pData, char cOption)&lt;br /&gt;&lt;/strong&gt;{&lt;br /&gt;     cout &lt;&lt; "\nDaynamic data type entered was ";&lt;/p&gt;&lt;p&gt;      switch(cOption)&lt;/p&gt;&lt;p&gt;     {&lt;/p&gt;&lt;p&gt;           case 'c':&lt;/p&gt;&lt;p&gt;                cout &lt;&lt; "char and a value of " &lt;&lt; *(char*)pData;&lt;/p&gt;&lt;p&gt;                break;&lt;/p&gt;&lt;p&gt;           case 'i':&lt;/p&gt;&lt;p&gt;                cout &lt;&lt; "int and a value of " &lt;&lt; *(int*)pData;&lt;/p&gt;&lt;p&gt;                break;&lt;/p&gt;&lt;p&gt;           default:&lt;/p&gt;&lt;p&gt;                cout &lt;&lt; "float and a value of " &lt;&lt; *(float*)pData;&lt;/p&gt;&lt;p&gt;       }&lt;/p&gt;&lt;p&gt;      cout &lt;&lt; "\n";&lt;/p&gt;&lt;p&gt;      delete pData;&lt;br /&gt;}&lt;/p&gt;&lt;/iostream&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;추가: static void의 개념은?&lt;br /&gt;&lt;br /&gt;관련 내용 답변:&lt;br /&gt;Submitted by &lt;a href="http://kldp.org/user/1400" title="사용자 프로필 보기"&gt;정장혁&lt;/a&gt; on 수, 2003/06/25 - 10:01am.&lt;br /&gt;static void 선언은 리턴값은 void고, 함수의 형태가 static인것을 말하는것 같습니다.&lt;br /&gt;기본 C에서는 (ANSI표준인지는 모르겠는데) 함수선언시 명시하지 않으면,extern으로 선언 됩니다.&lt;br /&gt;static함수이므로, 당연히 선언된 파일 *.c에서만 call할수 있지요. :D&lt;br /&gt;&lt;br /&gt;Submitted by &lt;a href="http://kldp.org/user/2389" title="사용자 프로필 보기"&gt;anfl&lt;/a&gt; on 수, 2003/06/25 - 10:02am.&lt;br /&gt;함수의 선언부에 static이 붙어 있어면 그 함수의 사용범위를 그 파일내에 한정 짓겠다는 말입니다.  &lt;p&gt;즉&lt;br /&gt;a.c&lt;br /&gt;static void func() {}&lt;/p&gt;  &lt;p&gt;이말은 func 함수의 범위를 a.c내로 한정 짓겠다는 말입니다.&lt;/p&gt;  &lt;p&gt;b.c&lt;br /&gt;int main() {&lt;br /&gt;func();&lt;/p&gt;  &lt;p&gt;return 0;&lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;gcc -o test a.c b.c&lt;/p&gt;  &lt;p&gt;이렇게 하면 컴파일 오류가 나죠.&lt;br /&gt;b.c에서는 func가 안보이니깐요.&lt;/p&gt;  &lt;p&gt;주로 커널 같이 수많은 심볼이 등록되어 있어서 symbol의 충돌이 발생할수 있는 경우에 static로 범위를 파일내로 한정해서 많이 사용한답니다.&lt;/p&gt;답변 출처:  &lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;a href="http://kldp.org/node/20575#comment-42726"&gt;static void 의 개념은?&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-1501671184251202151?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/1501671184251202151/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/01/visual-cvoid.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1501671184251202151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1501671184251202151'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/01/visual-cvoid.html' title='[Visual C++]void*란 무엇을 뜻하는가?'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-42027323444822935</id><published>2009-01-21T13:29:00.001+09:00</published><updated>2009-01-21T13:31:56.629+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cartoon'/><title type='text'>[Webtoon]악법 카툰 릴레이 3화: 수도법 - 곽백수</title><content type='html'>&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=bXl1Z0BmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvMS5qcGc=&amp;amp;filename=twoman2_1.jpg" /&gt;&lt;br /&gt;&lt;div id="content_area" style="overflow: hidden;"&gt;&lt;p&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=bXl1Z0BmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvMi5qcGc=&amp;amp;filename=twoman2_2.jpg" /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;출처: &lt;a href="http://bbs1.agora.media.daum.net/gaia/do/debate/read?bbsId=D003&amp;amp;articleId=2201104&amp;amp;pageIndex=1&amp;amp;searchKey=subjectNcontent&amp;amp;searchValue=%C3%AC%C2%95%C2%85%C3%AB%C2%B2%C2%95%20%C3%AC%C2%B9%C2%B4%C3%AD%C2%88%C2%B0&amp;amp;sortKey=depth&amp;amp;limitDate=0&amp;amp;agree=F"&gt;악법 카툰릴레이 3화 (수도법) - 곽백수 &lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-42027323444822935?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/42027323444822935/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/01/webtoon-3.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/42027323444822935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/42027323444822935'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/01/webtoon-3.html' title='[Webtoon]악법 카툰 릴레이 3화: 수도법 - 곽백수'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-4305977257528482460</id><published>2009-01-21T13:26:00.001+09:00</published><updated>2009-01-21T13:28:25.113+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cartoon'/><title type='text'>[Webtoon]악법 카툰 릴레이 2화:집시법2 - 최규석</title><content type='html'>&lt;p&gt;최규석 작가님의 릴레이 카툰...&lt;/p&gt;&lt;p&gt;아래부터 이어집니다.&lt;/p&gt;&lt;p&gt;//----&lt;br /&gt;&lt;/p&gt;&lt;p&gt;최규석작가님의 악법릴레이카툰 2화 (불법행위집단소송법안) 편입니다.&lt;/p&gt; &lt;p&gt;부탁 드립니다 많이 퍼날라주십시오. &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=NUdZNUBmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvMjAuanBn&amp;amp;filename=law1.jpg" /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=NUdZNUBmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvMjEuanBn&amp;amp;filename=law2.jpg" /&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;용산, 그리고 대한민국.&lt;/p&gt; &lt;p&gt;고인의 명복을 빕니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;출처: &lt;a href="http://bbs1.agora.media.daum.net/gaia/do/debate/read?bbsId=D003&amp;amp;articleId=2192853&amp;amp;pageIndex=1&amp;amp;searchKey=subjectNcontent&amp;amp;searchValue=%C3%AC%C2%95%C2%85%C3%AB%C2%B2%C2%95%20%C3%AC%C2%B9%C2%B4%C3%AD%C2%88%C2%B0&amp;amp;sortKey=depth&amp;amp;limitDate=0&amp;amp;agree=F"&gt;강풀입니다. 악법 카툰릴레이 2화 (집시법2) - 최규석작가.&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-4305977257528482460?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/4305977257528482460/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/01/webtoon-22.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/4305977257528482460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/4305977257528482460'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/01/webtoon-22.html' title='[Webtoon]악법 카툰 릴레이 2화:집시법2 - 최규석'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-7272248517847759688</id><published>2009-01-21T13:19:00.003+09:00</published><updated>2009-01-21T13:26:05.709+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cartoon'/><title type='text'>[Webtoon]악법 카툰 릴레이 1화:집시법 - 강풀</title><content type='html'>마음껏 퍼다 날라달라는 여러 작가들의 요청에 따라 퍼왔습니다.&lt;br /&gt;원하시는 모든 분들.... 다 퍼가세요.&lt;br /&gt;&lt;br /&gt;대한민국~~~ 요즘 정말 맘에 안들어!!&lt;br /&gt;&lt;script type="text/javascript"&gt;//&amp;reloadTemplate=T    var isRecom = false;     var isOwner =  false ;    var isLogin =  false ;     //로그인페이지 이동    function chkLogin(type){          if(type == 1){      url="loginAgreeArticle?bbsId=D003&amp;commentId=0&amp;type=R&amp;articleId=2190093&amp;$parameter";     }else{      url="loginDisagreeArticle?bbsId=D003&amp;commentId=0&amp;type=R&amp;articleId=2190093&amp;$parameter";     }          top.location.href=url;         }     function readRecom1(type){     //로그인체크     if(!isLogin){chkLogin(type);return;}     //본인여부체크     if(isOwner){      alert("자신의 글에는 투표하실 수 없습니다");      return false;     }      if(isRecom){      alert("이미 평가하셨습니다");      return;     }      var url = (type==1) ? 'agreeArticle':'disagreeArticle';     var ftype = (type==1) ? 'A':'D';      //로딩이미지 보여주기     UI.$('bt_rcmd').style.display = "none";     UI.$('bt_oppo').style.display = "none";     UI.$('ld_image').style.display = "";     document.getElementById('ld_image').innerHTML = "&lt;img src="'http://img-section.daum-img.net/agora2/common/loading_100_43.gif'" width="'100'" /&gt;";     new UI.Ajax( { url:url, param:'bbsId=D003&amp;feedback.bbsId=D003&amp;feedback.articleId=2190093&amp;feedback.commentId=0&amp;feedback.type='+ftype+'&amp;articleId=2190093', onComplete:readRecom2 } );    }     function readRecom2(req)    {     var result = eval('(' + req.responseText + ')');     //alert(result.status)      UI.$('ld_image').style.display = "none";     UI.$('bt_rcmd').style.display = "";     UI.$('bt_oppo').style.display = "";     //로딩이미지 삭제      if (result.status == '500'){      alert("이미 찬성 혹은 반대를 하셨습니다");      isRecom = true;      return false;     }else if(result.status == '600'){      alert("이미 찬성하셨습니다");      isRecom = true;      return false;     }else if (result.status == '700'){      alert("이미 반대하셨습니다");      isRecom = true;      return false;     }else if (result.status == '300'){      alert("잘못된 오류입니다. 다시한번 시도해 주세요.");      return false;     }else if (result.status == '200'){      UI.$('bt_rcmd').innerHTML = "&lt;span&gt;"+result.agreeCount+"&lt;/span&gt;";      UI.$('bt_oppo').innerHTML = "&lt;span&gt;"+result.disagreeCount+"&lt;/span&gt;";      //UI.$('bt_result').innerHTML = result.agreeRate +"%";      //setSwfScore(result.agreeRate);      //alert("투표가 성공적으로 되었습니다");      isRecom = true;     }else      return false;          //alert(req.responseText)     //status 체크     /* status     200 : 성공     500 : 중복 선택한 경우     600:찬성     700:반대     300 : 실패     {status:"500", bbsId:"K152", articleId:"58367", agreeCount:"3", disagreeCount:"0", agreeRate:"100"}     */    }   &lt;/script&gt;  &lt;div id="content_area" style="overflow: hidden;"&gt; &lt;p&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=NUdZNUBmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvMTMuanBn&amp;amp;filename=%EA%B0%95%ED%92%80%28%EC%9B%B9%EB%B3%B8%ED%8C%8C%EC%9D%BC%2901_01.jpg" /&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=NUdZNUBmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvMTQuanBn&amp;amp;filename=%EA%B0%95%ED%92%80%28%EC%9B%B9%EB%B3%B8%ED%8C%8C%EC%9D%BC%2901_02.jpg" /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=NUdZNUBmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvMTUuanBn&amp;amp;filename=%EA%B0%95%ED%92%80%28%EC%9B%B9%EB%B3%B8%ED%8C%8C%EC%9D%BC%2901_03.jpg" /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=NUdZNUBmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvMTYuanBn&amp;amp;filename=%EA%B0%95%ED%92%80%28%EC%9B%B9%EB%B3%B8%ED%8C%8C%EC%9D%BC%2901_04.jpg" /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://file.agora.media.daum.net/pcp_download.php?fhandle=NUdZNUBmaWxlLmFnb3JhLm1lZGlhLmRhdW0ubmV0Oi9EMDAzLzAvMTcuanBn&amp;amp;filename=%EA%B0%95%ED%92%80%28%EC%9B%B9%EB%B3%B8%ED%8C%8C%EC%9D%BC%2901_05.jpg" /&gt;&lt;/p&gt; &lt;p&gt;만화 그리는 강풀입니다.&lt;/p&gt; &lt;p&gt;오늘부터 아고라에 카툰 릴레이가 매일(일정표참조)  연재가 시작됩니다.&lt;/p&gt; &lt;p&gt;많이 퍼날라주시고 많이 알려주세요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;출처: &lt;a href="http://bbs1.agora.media.daum.net/gaia/do/debate/read?bbsId=D003&amp;amp;articleId=2190093"&gt;악법 카툰릴레이 1화 (집시법) - 강풀입니다.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-7272248517847759688?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/7272248517847759688/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/01/webtoon-1.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/7272248517847759688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/7272248517847759688'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/01/webtoon-1.html' title='[Webtoon]악법 카툰 릴레이 1화:집시법 - 강풀'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-7952072277613134792</id><published>2009-01-16T11:21:00.002+09:00</published><updated>2009-01-16T11:28:51.445+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[Visual C++]LPSTR, LPCSTR, LPTSTR, LPCTSTR , LPWSTR, LPCWSTR 분석</title><content type='html'>&lt;span id="blogitcontentbody" name="blogitcontentbody"&gt;&lt;p&gt;요즘 가장 짜증나는게 바로 이 내용... 그래도 찾아보니 관련 내용이 이렇게 posting되어 있어 올려본다. 다행이며 미리 올려주신 '데브쇼'님 잘 참고하도록 하겠습니다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;LP : long pointer(.Net 에선 64bit, VC++ 은 32bit)&lt;br /&gt;STR : string자료형(char* 배열의 NULL 값종료를 나타냄)&lt;br /&gt;T : unicode 적용&lt;br /&gt;W : wide char 2byte를 나타낸다.&lt;br /&gt;C : constant (인자값변경 불가를 나타냄)&lt;/p&gt; &lt;div style="padding: 10px; background-color: rgb(208, 255, 157);"&gt;풀이&lt;br /&gt;LPSTR = long pointer + string = char*&lt;br /&gt;LPCSTR = long pointer + constant + string = const char*&lt;br /&gt;LPCTSTR = long pointer + constant + t_char = const w_char*&lt;br /&gt;LPWSTR = long pointer + wide string = w_char *&lt;br /&gt;LPCWSTR = long pointer + constant + wide string = const w_char * &lt;/div&gt; &lt;p&gt;window 환경에서 유니코드를 표현하기 위해 TCHAR, t_char 를 쓰는데 컴파일러는 운영체제에서 MBCS환경이면, char형으로 unicode 환경이면 w_char, wide char형으로 type casting한다.&lt;br /&gt;LPWSTR 에 W는 MBCS,unicode 두 환경에서 모두 unicode 문자열을 쓴다.&lt;br /&gt;하지만 LPCTSTR 에 T는 환경설정에 따라서 선택해서 쓸수 있다.&lt;br /&gt;그러므로 언어에 좀더 자유롭게 개발할려면 T 를 사용하는게 더 좋을것이다.&lt;br /&gt;&lt;br /&gt;흔히 CString 를 char* 로 캐스팅할때 (LPSTR)(LPCTSTR)strWord 쓴다.&lt;br /&gt;(LPCTSTR) 은 연산자 오버로딩(operator overloading)으로 const char* 를 반환한다.&lt;br /&gt;그리고 const char* 를 char* 에 대입할수 없기 때문에 (LPSTR) 강제 캐스팅을 한번 더해준다.&lt;/p&gt; &lt;p&gt;//////////////////////////////////////////////////////////////////////////////////////////&lt;/p&gt; &lt;p&gt;LPSTR :  A 32-bit pointer to a character string.&lt;br /&gt;         이 데이터 형같은 경우 예전에 우리가 사용하던 방식으로 선언하면&lt;br /&gt;         char *&lt;br /&gt;         와 같은 경우이죠. 유니코드를 지원하지 않기 때문에 각각의&lt;br /&gt;         문자는 1바이트를 가집니다.&lt;br /&gt;&lt;br /&gt;LPCSTR :  A 32-bit pointer to a constant character string.&lt;br /&gt;         이 데이터 형같은 경우 예전에 우리가 사용하던 방식으로 선언하면&lt;br /&gt;        const char *&lt;br /&gt;         와 같은 경우이죠. const 형이 어떤건지는 아시죠? 이것역시&lt;br /&gt;         유니코드를 지원하지 않기 때문에 각각의 문자는 1바이트를 가집니다.        &lt;br /&gt;&lt;br /&gt;LPTSTR : A 32-bit pointer to a character string that is&lt;br /&gt;           portable for Unicode and DBCS&lt;br /&gt;          이 데이터 형같은 경우, 윈도우즈가 유니코드를 지원하면서 새로&lt;br /&gt;          생긴형식으로 풀어쓰면 다음과 같습니다.&lt;br /&gt;          TCHAR *&lt;br /&gt;          이 형은 유니코드를 지원하기 때문에 각 문자가 2바이트를 가지게&lt;br /&gt;          됩니다. 실제로&lt;span id="callbacknestdevdevtistorycom997234" style="width: 1px; height: 1px; float: right;"&gt;&lt;embed allowscriptaccess="always" id="bootstrapperdevdevtistorycom997234" src="http://devdev.tistory.com/plugin/CallBack_bootstrapperSrc?nil_profile=tistory&amp;amp;nil_type=copied_post" wmode="transparent" type="application/x-shockwave-flash" enablecontextmenu="false" flashvars="&amp;amp;callbackId=devdevtistorycom997234&amp;amp;host=http://devdev.tistory.com&amp;amp;embedCodeSrc=http%3A%2F%2Fdevdev.tistory.com%2Fplugin%2FCallBack_bootstrapper%3F%26src%3Dhttp%3A%2F%2Fcfs.tistory.com%2Fblog%2Fplugins%2FCallBack%2Fcallback%26id%3D99%26callbackId%3Ddevdevtistorycom997234%26destDocId%3Dcallbacknestdevdevtistorycom997234%26host%3Dhttp%3A%2F%2Fdevdev.tistory.com%26float%3Dleft" swliveconnect="true" width="1" height="1"&gt;&lt;/embed&gt;&lt;/span&gt; 유니코드를 지원하는 프로그램을 작성하지 않는&lt;br /&gt;          이상 거의 사용하지 않습니다.&lt;br /&gt;&lt;br /&gt;LPCTSTR : A 32-bit pointer to a constant character string that&lt;br /&gt;            is portable for Unicode and DBCS.&lt;br /&gt;          이것 역시 윈도우즈가 유니코드를 지원하면서 새로 생긴형식으로&lt;br /&gt;          풀어쓰면 다음과 같습니다.&lt;br /&gt;         const TCHAR *&lt;br /&gt;          마찬가지로 유니코드를 지원하기 때문에 한문자가 2바이트 크기를&lt;br /&gt;          가지게 됩니다.&lt;br /&gt;&lt;br /&gt;함수뒤에 const 를 붙이는건 클래스 멤버함수내에서 this 사용을 제한하기 위해서 사용합니다.&lt;br /&gt;일반적으로 멤버 함수내에서 사용되는 this는 해당 클래스가 MyClass 인 경우에,&lt;br /&gt;&lt;br /&gt;MyClass * const this;&lt;br /&gt;&lt;br /&gt;와 같이 내부적으로 선언되어서 사용되는데, 함수의 뒤에 const를 붙이면&lt;br /&gt;&lt;br /&gt;const MyClass * const this;&lt;br /&gt;&lt;br /&gt;와 같이 속성이 바뀌어져서 사용됩니다. 즉 내부에 사용되는 데이터 멤버가 이 함수에서는 모조리&lt;br /&gt;읽기 전용으로 바뀌어져 버리는거죠...&lt;br /&gt;&lt;br /&gt;this 변수가 가리키는 멤버들이 모두 쓰기 불능으로 되어버리기 때문에... 즉, this는 우리가 직접&lt;br /&gt;변경할수 없기 때문에 함수뒤에 const를 붙여 간접적으로 this를 const형으로 변경하는 기능을&lt;br /&gt;구현한겁니다.&lt;br /&gt;&lt;br /&gt;//////////////////////////////////////////////////////////////////////////////////////////&lt;/p&gt; &lt;p&gt;[Windows Programming 기초편]&lt;/p&gt; &lt;p&gt;BOOL       -- Boolean 값을 나타내는 정수 값. 0 or 1&lt;/p&gt; &lt;p&gt;BSTR        -- 32비트 character 포인터 값을 의미&lt;/p&gt; &lt;p&gt;BYTE        -- unsigned 8비트 정수값  == unsigned char&lt;/p&gt; &lt;p&gt;WORD       -- 16비트 unsigned int&lt;/p&gt; &lt;p&gt;DWORD     -- 32비트 unsigned 정수   == unsigned int&lt;/p&gt; &lt;p&gt;LONG       -- 32비트 signed 정수값&lt;/p&gt; &lt;p&gt;LPCSTR    -- 32비트 문자열 포인터, const형  == const char*&lt;/p&gt; &lt;p&gt;LPSTR      -- 32비트 문자열 포인터&lt;/p&gt; &lt;p&gt;LPCTSTR  -- 유니 코드 문자열을 포인트할 수 있는 const 32비트 문자열 포인터&lt;/p&gt; &lt;p&gt;LPTSTR    -- 유니 코드 문자열을 포인트할 수 있는 32비트 문자열 포인터&lt;/p&gt; &lt;p&gt;LPVOID    -- 32비트 void 포인터&lt;/p&gt; &lt;p&gt;UINT        -- 32비트 unsigned int&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;출처: &lt;a href="http://devdev.tistory.com/99"&gt;개발자의 10년일기&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-7952072277613134792?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/7952072277613134792/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/01/visual-clpstr-lpcstr-lptstr-lpctstr.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/7952072277613134792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/7952072277613134792'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/01/visual-clpstr-lpcstr-lptstr-lpctstr.html' title='[Visual C++]LPSTR, LPCSTR, LPTSTR, LPCTSTR , LPWSTR, LPCWSTR 분석'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-6657281302365806437</id><published>2009-01-16T09:43:00.016+09:00</published><updated>2009-01-16T11:21:16.397+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Horror Moive'/><title type='text'>[Review]박쥐(Bats, 1999)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SW_Y9Tp5kbI/AAAAAAAAAP8/S9A-0lotWzo/s1600-h/poster_Bats.jpg"&gt;&lt;img style="cursor: pointer; width: 279px; height: 400px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SW_Y9Tp5kbI/AAAAAAAAAP8/S9A-0lotWzo/s400/poster_Bats.jpg" alt="" id="BLOGGER_PHOTO_ID_5291686634943254962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;감독: 루이스 모르노&lt;br /&gt;배우: 루 다이아몬드 필립스(에밋 킴제이 보안관), 디나 메이어(쉴라 캐스퍼 박사), 밥 건튼(알렉산더 맥케이브 박사), 레온(지미 샌즈),  칼로스 자코트(토드)&lt;br /&gt;장르: 스릴러, 공포&lt;br /&gt;국가: 미국&lt;br /&gt;시간: 91분&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;div style="text-align: right;"&gt;줄거리 출처: &lt;다음&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SW_a_FAYvyI/AAAAAAAAAQE/43asHyd3S-Q/s1600-h/3%EC%82%AC%EB%9E%8C.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 267px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SW_a_FAYvyI/AAAAAAAAAQE/43asHyd3S-Q/s400/3%EC%82%AC%EB%9E%8C.jpg" alt="" id="BLOGGER_PHOTO_ID_5291688864394034978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;오늘의 주인공 세 사람입니다. 왼쪽부터 레온(지미 샌즈), 디나 메이어(쉴라 캐스퍼 박사), 루 다이아몬드 필립스(에밋 킴제이 보안관)...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SW_bYNmSuQI/AAAAAAAAAQM/w2vs1z03cJg/s1600-h/%ED%9A%8C%EC%83%81%ED%95%98%EB%8A%94+%EB%94%94%EB%82%98+%EB%A9%94%EC%9D%B4%EC%96%B4.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 249px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SW_bYNmSuQI/AAAAAAAAAQM/w2vs1z03cJg/s400/%ED%9A%8C%EC%83%81%ED%95%98%EB%8A%94+%EB%94%94%EB%82%98+%EB%A9%94%EC%9D%B4%EC%96%B4.jpg" alt="" id="BLOGGER_PHOTO_ID_5291689296197236994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;아주 반가운 얼굴이죠. 스타쉽 트루퍼스에서 디지역을 맡았던 디나 메이어....&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SW_cSLOnbvI/AAAAAAAAAQU/1X49hBBfQJY/s1600-h/%EB%A3%A8+%EB%8B%A4%EC%9D%B4%EC%95%84%EB%AA%AC%EB%93%9C+%ED%95%84%EB%A6%BD%EC%8A%A4.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 264px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SW_cSLOnbvI/AAAAAAAAAQU/1X49hBBfQJY/s400/%EB%A3%A8+%EB%8B%A4%EC%9D%B4%EC%95%84%EB%AA%AC%EB%93%9C+%ED%95%84%EB%A6%BD%EC%8A%A4.jpg" alt="" id="BLOGGER_PHOTO_ID_5291690291993472754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;루 다이아몬드 필립스도 제가 좋아하는 배우중 한사람입니다.&lt;br /&gt;&lt;br /&gt;줄거리에 보셨듯이 텍사스의 외딴 마을에서 시체가 발견되고 박쥐의 소행임을 알게 되면서 그 원인이 어떤 실험에 의해 만들어진 돌연변이 박쥐 2 마리가 우리를 탈출했기 때문이라는 것을 알게 됩니다.&lt;br /&gt;그 박쥐들은 지능이 발달되었고 협력이 가능하며 공격적이면서(실험 대상이었던 박쥐가 야생에 있을 때도 매우 위험한 종이었습니다. 그걸 더 위험하게 만든거죠.) 잡식성으로 개량된 것들입니다.&lt;br /&gt;여기서 황당한 것은 실험용 박쥐가 가진 능력들이 다른 박쥐들에게도 전염이 된다는 거죠. 똑같이 머리가 좋아지고 공격적이며 모든 동물을 먹이로 보게 되는거죠.&lt;br /&gt;감염되는 속도도 매우 빨라서 6개월이면 북미 전역의 인간들이 전멸하게 되는 상황이죠.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SW_c-DGM_nI/AAAAAAAAAQc/6Ltx7jKX4yw/s1600-h/%EB%8F%84%EB%A7%9D%EA%B0%80%EB%8A%94+%EB%91%90+%EC%82%AC%EB%9E%8C.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 261px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SW_c-DGM_nI/AAAAAAAAAQc/6Ltx7jKX4yw/s400/%EB%8F%84%EB%A7%9D%EA%B0%80%EB%8A%94+%EB%91%90+%EC%82%AC%EB%9E%8C.jpg" alt="" id="BLOGGER_PHOTO_ID_5291691045724946034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;박쥐를 잡으려 하지만 숫자가 너무 많죠. 둘이 죽어라고 뛰어 도망가고 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SW_c-X5rbBI/AAAAAAAAAQk/HeKQ8_XIu0E/s1600-h/%EC%B0%A8%EC%95%88%EC%9D%98+%EB%A3%A8+%EB%8B%A4%EC%9D%B4%EC%95%84%EB%AA%AC%EB%93%9C+%ED%95%84%EB%A6%BD%EC%8A%A4.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 269px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SW_c-X5rbBI/AAAAAAAAAQk/HeKQ8_XIu0E/s400/%EC%B0%A8%EC%95%88%EC%9D%98+%EB%A3%A8+%EB%8B%A4%EC%9D%B4%EC%95%84%EB%AA%AC%EB%93%9C+%ED%95%84%EB%A6%BD%EC%8A%A4.jpg" alt="" id="BLOGGER_PHOTO_ID_5291691051309558802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SW_c-WevAII/AAAAAAAAAQs/aKO1EQtSwyY/s1600-h/%EB%B0%95%EC%A5%90%EC%97%90%EA%B2%8C+%EB%91%98%EB%9F%AC+%EC%8C%93%EC%9D%B8+%EC%B0%A8.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 226px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SW_c-WevAII/AAAAAAAAAQs/aKO1EQtSwyY/s400/%EB%B0%95%EC%A5%90%EC%97%90%EA%B2%8C+%EB%91%98%EB%9F%AC+%EC%8C%93%EC%9D%B8+%EC%B0%A8.jpg" alt="" id="BLOGGER_PHOTO_ID_5291691050928111746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;차에 숨어보지만 박쥐들이 너무 머리가 좋아서 차의 틈새를 이용해 차 안으로 들어가려 하죠. 배기구로 들어가는 모습이 인상적이었습니다.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SW_c-vtpCEI/AAAAAAAAAQ0/5-3oJOWFyVA/s1600-h/%EC%A7%80%EB%B6%95+%EC%9C%84%EC%9D%98+%EB%B0%95%EC%A5%90.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 293px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SW_c-vtpCEI/AAAAAAAAAQ0/5-3oJOWFyVA/s400/%EC%A7%80%EB%B6%95+%EC%9C%84%EC%9D%98+%EB%B0%95%EC%A5%90.jpg" alt="" id="BLOGGER_PHOTO_ID_5291691057701521474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;쉴라 박사와 킴제이 보안관은 박쥐들 중 한마리를 잡아 추적장치를 달아 박쥐들의 서식처를 알아내려 하지만 위의 사진처럼 숨어 있던 실험용 박쥐 2마리가 장치가 달린 박쥐를 놓아주자마자 쫓아가서 죽여버립니다. (오~~~ 졸라 강해...)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SW_c-j2fhnI/AAAAAAAAAQ8/bNKGm04Eq94/s1600-h/%EC%8A%88%ED%8D%BC%EB%A7%88%EC%BC%93%EC%9D%B4%EC%84%9C%EC%9D%98+%EB%94%94%EB%82%98+%EB%A9%94%EC%9D%B4%EC%96%B4.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 265px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SW_c-j2fhnI/AAAAAAAAAQ8/bNKGm04Eq94/s400/%EC%8A%88%ED%8D%BC%EB%A7%88%EC%BC%93%EC%9D%B4%EC%84%9C%EC%9D%98+%EB%94%94%EB%82%98+%EB%A9%94%EC%9D%B4%EC%96%B4.jpg" alt="" id="BLOGGER_PHOTO_ID_5291691054517421682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;결국 마을이 습격당하고 많은 사람들이 죽습니다. 고생하는 쉴라 박사...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SW_dk-f4TKI/AAAAAAAAARk/NiRvy_pRLlI/s1600-h/%EB%A0%88%EC%98%A8.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 267px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SW_dk-f4TKI/AAAAAAAAARk/NiRvy_pRLlI/s400/%EB%A0%88%EC%98%A8.jpg" alt="" id="BLOGGER_PHOTO_ID_5291691714505362594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SW_dk6-Su6I/AAAAAAAAARc/6IHx9ReURqc/s1600-h/%EB%94%94%EB%82%98%EB%A9%94%EC%9D%B4%EC%96%B4_%EB%A3%A8%EB%8B%A4%EC%9D%B4%EC%95%84%EB%AA%AC%EB%93%9C%ED%95%84%EB%A6%BD%EC%8A%A4.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 267px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SW_dk6-Su6I/AAAAAAAAARc/6IHx9ReURqc/s400/%EB%94%94%EB%82%98%EB%A9%94%EC%9D%B4%EC%96%B4_%EB%A3%A8%EB%8B%A4%EC%9D%B4%EC%95%84%EB%AA%AC%EB%93%9C%ED%95%84%EB%A6%BD%EC%8A%A4.jpg" alt="" id="BLOGGER_PHOTO_ID_5291691713559182242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SW_dktEvWrI/AAAAAAAAARU/hc_Q9yrNrDc/s1600-h/%EA%B5%B0%EB%8C%80+%EC%A0%84%EB%A9%B8.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 268px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SW_dktEvWrI/AAAAAAAAARU/hc_Q9yrNrDc/s400/%EA%B5%B0%EB%8C%80+%EC%A0%84%EB%A9%B8.jpg" alt="" id="BLOGGER_PHOTO_ID_5291691709828127410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;마을이 거의 초토화되고 다음날 아침 군대가 도착하지만 군대도 다 죽습니다. -_-;;;; 샹~~ 너무 강하자나.. 니들... (난 좋아~~~ ^^;;;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SW_dko1AtwI/AAAAAAAAARM/HIFQr1Ysa5Y/s1600-h/%EB%8F%99%EA%B5%B4+%EB%B0%96%EC%9D%98+%EB%91%90%EC%82%AC%EB%9E%8C.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 297px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SW_dko1AtwI/AAAAAAAAARM/HIFQr1Ysa5Y/s400/%EB%8F%99%EA%B5%B4+%EB%B0%96%EC%9D%98+%EB%91%90%EC%82%AC%EB%9E%8C.jpg" alt="" id="BLOGGER_PHOTO_ID_5291691708688414466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SW_dkfvoa1I/AAAAAAAAARE/Fiui6xCxEfs/s1600-h/%EB%8F%99%EA%B5%B4%EC%9D%98+%EB%94%94%EB%82%98+%EB%A9%94%EC%9D%B4%EC%96%B4_%EB%A3%A8+%EB%8B%A4%EC%9D%B4%EC%95%84%EB%AA%AC%EB%93%9C+%ED%95%84%EB%A6%BD%EC%8A%A4.jpg"&gt;&lt;img style="cursor: pointer; width: 266px; height: 400px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SW_dkfvoa1I/AAAAAAAAARE/Fiui6xCxEfs/s400/%EB%8F%99%EA%B5%B4%EC%9D%98+%EB%94%94%EB%82%98+%EB%A9%94%EC%9D%B4%EC%96%B4_%EB%A3%A8+%EB%8B%A4%EC%9D%B4%EC%95%84%EB%AA%AC%EB%93%9C+%ED%95%84%EB%A6%BD%EC%8A%A4.jpg" alt="" id="BLOGGER_PHOTO_ID_5291691706249931602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SW_d-SePxnI/AAAAAAAAAR0/l9o37D025EI/s1600-h/%EC%96%BC%EB%A6%AC%EB%8A%94+%EA%B8%B0%EA%B3%84.jpg"&gt;&lt;img style="cursor: pointer; width: 268px; height: 400px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SW_d-SePxnI/AAAAAAAAAR0/l9o37D025EI/s400/%EC%96%BC%EB%A6%AC%EB%8A%94+%EA%B8%B0%EA%B3%84.jpg" alt="" id="BLOGGER_PHOTO_ID_5291692149363951218" border="0" /&gt;&lt;/a&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;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SW_d-OK4J_I/AAAAAAAAARs/m7UW3U7q4ig/s1600-h/%EA%B0%90%EB%8F%85%EA%B3%BC+%ED%95%A8%EA%BB%98.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 265px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SW_d-OK4J_I/AAAAAAAAARs/m7UW3U7q4ig/s400/%EA%B0%90%EB%8F%85%EA%B3%BC+%ED%95%A8%EA%BB%98.jpg" alt="" id="BLOGGER_PHOTO_ID_5291692148208969714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;감독과 함께 두 사람입니당~~~ ^^&lt;br /&gt;&lt;div style="text-align: right;"&gt;이미지 출처: &lt;다음&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;예고편 동영상: &lt;a href="mms://mmc.daumcast.net/mmc/2/theater/trailers/T0000060.asf"&gt;Bats Trailer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-6657281302365806437?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/6657281302365806437/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/01/reviewbats-1999.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6657281302365806437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6657281302365806437'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/01/reviewbats-1999.html' title='[Review]박쥐(Bats, 1999)'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_VzhNBbWO1aE/SW_Y9Tp5kbI/AAAAAAAAAP8/S9A-0lotWzo/s72-c/poster_Bats.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-2088674025207233714</id><published>2009-01-14T16:43:00.002+09:00</published><updated>2009-01-14T17:00:52.083+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[Visual C++]VS2008에서 WM_INITDIALOG는 도대체 어디로?</title><content type='html'>열심히 VS2008깔고 책보면서 공부하고 있는데 아무리 찾아도 WM_INITDIALOG 메시지를 찾을 수 없었습니다.&lt;br /&gt;&lt;br /&gt;그래서 찾아보니... WM_INITDIALOG는 메시지가 아니라네요. -_-;;;;;;&lt;br /&gt;&lt;br /&gt;결국... OnInitDialog()를 쓰고 싶다면 직접 Code를 작성하는 수 밖에 없답니다.&lt;br /&gt;&lt;br /&gt;먼저 해당 '.h' 파일의 Protected 밑에&lt;br /&gt;&lt;br /&gt;virtual BOOL OnInitDialog();&lt;br /&gt;&lt;br /&gt;로 선언해주고...&lt;br /&gt;&lt;br /&gt;해당 '.cpp' 내에&lt;br /&gt;&lt;pre&gt;BOOL ClassName::OnInitDialog()&lt;br /&gt;{&lt;br /&gt;    CDialog::OnInitDialog();&lt;br /&gt;    // TODO: ... ...&lt;br /&gt;&lt;br /&gt;    return TRUE;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;이런 식으로 작성해줘야 합니다.&lt;br /&gt;&lt;br /&gt;이게 뭔 삽질이여.... -_-;;;;&lt;br /&gt;걍 냅두면 편한 것을... 머 따른 걸 사용해라 이런 것두 아니구... 쳇&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-2088674025207233714?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/2088674025207233714/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/01/visual-cvs2008-wminitdialog.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2088674025207233714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2088674025207233714'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/01/visual-cvs2008-wminitdialog.html' title='[Visual C++]VS2008에서 WM_INITDIALOG는 도대체 어디로?'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-9095479290086169793</id><published>2009-01-14T13:56:00.003+09:00</published><updated>2009-01-14T14:16:03.491+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Trackback'/><title type='text'>[News]조중동의 추악함</title><content type='html'>그들의 추악함이야 익히 알고 있었으나... 이번 소위 '미네르바' 사태를 지켜보면서는 그들은 추악한 정도가 아니라 이제는 한심해 보일 정도다.&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;&lt;br /&gt;&lt;br /&gt;TrackBack: &lt;a href="http://blog.ohmynews.com/sonseokchoon/rmfdurrl/246118"&gt;손석춘의 새로운 사회::미네르바는 '태어나서는 안될 동물'?&lt;/a&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-9095479290086169793?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/9095479290086169793/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/01/news_14.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/9095479290086169793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/9095479290086169793'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/01/news_14.html' title='[News]조중동의 추악함'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-6433199584428518311</id><published>2009-01-14T13:13:00.010+09:00</published><updated>2009-01-14T14:07:39.223+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='개인'/><title type='text'>[회사 행사]2009년도 사업계획 발표 및 창립 6주는 기념행사</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SW1nGWYWOSI/AAAAAAAAAO8/-nyQHJhmBHw/s1600-h/%EC%82%AC%EC%97%85%EA%B3%84%ED%9A%8D%26%EC%B0%BD%EB%A6%BD%EA%B8%B0%EB%85%90_004.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 266px; height: 400px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SW1nGWYWOSI/AAAAAAAAAO8/-nyQHJhmBHw/s400/%EC%82%AC%EC%97%85%EA%B3%84%ED%9A%8D%26%EC%B0%BD%EB%A6%BD%EA%B8%B0%EB%85%90_004.jpg" alt="" id="BLOGGER_PHOTO_ID_5290998496014776610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;지난 2008년 12월 30일...&lt;br /&gt;우리 회사 창립기념 및 종무식 행사를 했었다.&lt;br /&gt;장소는 삼성역 부근.. JBK 타워&lt;br /&gt;&lt;br /&gt;전에 있던 AIM에서도 회사 행사 같은 건 절대 참여하지 않았었는데...&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;출근했다가 오전 동안 일하고... 11시쯤 팀원들과 함께 출발...&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;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SW1ocQvo21I/AAAAAAAAAPE/LItClIQLVDc/s1600-h/%EC%82%AC%EC%97%85%EA%B3%84%ED%9A%8D%26%EC%B0%BD%EB%A6%BD%EA%B8%B0%EB%85%90_002.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px; height: 266px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SW1ocQvo21I/AAAAAAAAAPE/LItClIQLVDc/s400/%EC%82%AC%EC%97%85%EA%B3%84%ED%9A%8D%26%EC%B0%BD%EB%A6%BD%EA%B8%B0%EB%85%90_002.jpg" alt="" id="BLOGGER_PHOTO_ID_5290999971970603858" border="0" /&gt;&lt;/a&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;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;부서별 결산과 09년도 사업계획 등을 발표하고...&lt;br /&gt;이런저런 상을 수여하고서 기념행사가 시작되었다.&lt;br /&gt;&lt;br /&gt;나름 술도 있고 음식도 있는 Standing party였지만 너무 어설펐다.&lt;br /&gt;술의 종류는 부족했고 음식은 보관 장소가 없어서 모두 식고 딱딱하게 굳어있었다.&lt;br /&gt;다만... 기존에 알지 못했던 회사 식구들과 함께 자리할 수 있었다는 게 좋았다.&lt;br /&gt;모두들 좋은 사람들 같았다.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SW1rjRyHQYI/AAAAAAAAAPs/OJ4gFMpmJig/s1600-h/IMG_8883.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 267px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SW1rjRyHQYI/AAAAAAAAAPs/OJ4gFMpmJig/s400/IMG_8883.JPG" alt="" id="BLOGGER_PHOTO_ID_5291003391043387778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;다음엔 따로 술자리 한 번 합시다~!! ^^&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SW1rjD79JXI/AAAAAAAAAPk/pKPmSvqsH80/s1600-h/%EC%82%AC%EC%97%85%EA%B3%84%ED%9A%8D%26%EC%B0%BD%EB%A6%BD%EA%B8%B0%EB%85%90_420.jpg"&gt;&lt;img style="cursor: pointer; width: 266px; height: 400px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SW1rjD79JXI/AAAAAAAAAPk/pKPmSvqsH80/s400/%EC%82%AC%EC%97%85%EA%B3%84%ED%9A%8D%26%EC%B0%BD%EB%A6%BD%EA%B8%B0%EB%85%90_420.jpg" alt="" id="BLOGGER_PHOTO_ID_5291003387326571890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Dance time이었는데.. 피곤해 보인다... -_-;;; 뭐, 실제로도 피곤했고... ㅋ&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SW1riz7PXII/AAAAAAAAAPc/gkbLYnRmz1Q/s1600-h/%EC%82%AC%EC%97%85%EA%B3%84%ED%9A%8D%26%EC%B0%BD%EB%A6%BD%EA%B8%B0%EB%85%90_395.jpg"&gt;&lt;img style="cursor: pointer; width: 266px; height: 400px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SW1riz7PXII/AAAAAAAAAPc/gkbLYnRmz1Q/s400/%EC%82%AC%EC%97%85%EA%B3%84%ED%9A%8D%26%EC%B0%BD%EB%A6%BD%EA%B8%B0%EB%85%90_395.jpg" alt="" id="BLOGGER_PHOTO_ID_5291003383028604034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;이제는 내 나이가 실감이 되는구나. 사진을 찍으면 급 늙어보인다.ㅋㅋㅋ&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SW1riw5JlzI/AAAAAAAAAPU/c-IxarK6N2Y/s1600-h/%EC%82%AC%EC%97%85%EA%B3%84%ED%9A%8D%26%EC%B0%BD%EB%A6%BD%EA%B8%B0%EB%85%90_319.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 266px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SW1riw5JlzI/AAAAAAAAAPU/c-IxarK6N2Y/s400/%EC%82%AC%EC%97%85%EA%B3%84%ED%9A%8D%26%EC%B0%BD%EB%A6%BD%EA%B8%B0%EB%85%90_319.jpg" alt="" id="BLOGGER_PHOTO_ID_5291003382214530866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;노래한다고 따라나가서 뭐 하나 한게 없다... -_-;;; 여자 노래였거덩... ㅋㅋ&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SW1rinWnxkI/AAAAAAAAAPM/JkYkrF3KgDc/s1600-h/%EC%82%AC%EC%97%85%EA%B3%84%ED%9A%8D%26%EC%B0%BD%EB%A6%BD%EA%B8%B0%EB%85%90_298.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 266px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SW1rinWnxkI/AAAAAAAAAPM/JkYkrF3KgDc/s400/%EC%82%AC%EC%97%85%EA%B3%84%ED%9A%8D%26%EC%B0%BD%EB%A6%BD%EA%B8%B0%EB%85%90_298.jpg" alt="" id="BLOGGER_PHOTO_ID_5291003379653789250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;ㅋㅋㅋ 너무 어두운 곳에 있었나... 너무 칙칙해보여....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;아무튼... 좋은 경험이었던 거 같다. 솔직히 회사 다니면서 따로 술자리 마련하지 않으면 회사 사람들과 교류하기가 얼마나 힘이 들던지...&lt;br /&gt;좋은 사람들이라는 확신이 생길 수 있어서 다행이다.&lt;br /&gt;다음엔... 따로 술자리 한 번 만들었으면 좋겠다. ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-6433199584428518311?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/6433199584428518311/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/01/2009-6.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6433199584428518311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6433199584428518311'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/01/2009-6.html' title='[회사 행사]2009년도 사업계획 발표 및 창립 6주는 기념행사'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VzhNBbWO1aE/SW1nGWYWOSI/AAAAAAAAAO8/-nyQHJhmBHw/s72-c/%EC%82%AC%EC%97%85%EA%B3%84%ED%9A%8D%26%EC%B0%BD%EB%A6%BD%EA%B8%B0%EB%85%90_004.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-5411471162127529780</id><published>2009-01-12T16:21:00.007+09:00</published><updated>2009-01-12T17:19:27.437+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[Visual C++]CMap 사용 방법</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;CMap&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;key&gt;&lt;/key&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&lt; 'KEY, ARG_KEY, VALUE, ARG_VALUE &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;&gt;&lt;/span&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;typename&gt;&lt;/typename&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;typename&gt;&lt;typename&gt;m_map;&lt;/typename&gt;&lt;/typename&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;KEY: Map에 key로 사용될 Object class&lt;br /&gt;ARG_KEY: key참조값으로 사용&lt;br /&gt;VALUE: 저장할 값&lt;br /&gt;ARG_VALUE: value의 참조값으로 사용&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;CMap이란? &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Template collection class 중 하나로서, MFC의 일부로 제공되는 클래스입니다. 일종의 Hash table을 만듭니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;CMap의 장점은 data를 다루기 위한 다양한 기능의 함수가 존재한다는 것과 Key값으로 data를 handling하기 때문에 순서가 상관없는 경우 CMap이 조회 속도가 빠릅니다. 그리고 내부적으로 알아서 hash table을 만들어주며 이는 매번 달라집니다.(특징)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;CMap을 사용해서 변수를 만들 때 4가지의 type을 지정해줘야 하는데&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;첫번째는 CMap 내부에서 key를 관리할 때 사용하는 data type이고&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;두번째는 code에서 CMap에게 key를 전달할 때 어떤 type으로 전달하는지 입니다.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;세번째는 CMap 내부에서 값을 관리할 때 사용하는 data type이고&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;마지막 네번째는 code에서 CMap에게 값을 전달할 때 어떤 type으로 전달하는지 입니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;즉, CMap&lt;/span&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&lt; 'int, int, CString, CString &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;&gt;&lt;/span&gt; &lt;/span&gt;&lt;int,&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;m_map;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;이처럼 CMap이 만들어졌다면&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;이 map에게 key를 줄 때는 int형(두번째)으로 줄 것이고,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;map 안에서는 key를 int형으로 관리하게 됩니다.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;그리고 code에서 값을 줄 때 CString형(네번째)으로 줄 것이고,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;이 값을 받아서 map 안에서는 CString형을 관리하게 됩니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;또 다른 예..&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;CMap&lt;/span&gt;&lt;/int,&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&lt; 'CString, LPCSTR, CPerson, CPerson&amp;amp; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;int, style="color: rgb(0, 0, 0);"&gt; myMap2;&lt;br /&gt;// Key는 CString, Key Data type은 CStrng&amp;amp; (LPCSTR)&lt;br /&gt;// Data는 CPerson, Data - Data type은 CPerson&amp;amp; (보통 2,4번째&lt;br /&gt;// Type 인자는 각각 1,3번째의 reference형입니다.&lt;/int,&gt;&lt;/span&gt;&lt;div class="autosourcing-stub"&gt;&lt;p   style="margin: 11px 0pt 7px; padding: 0pt; font-style: normal; font-weight: normal;font-family:Dotum;font-size:12px;"&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;&lt;strong style="padding: 0pt 7px 0pt 0pt;"&gt;[출처]&lt;/strong&gt; &lt;a href="http://blog.naver.com/77004648/36746859" target="_blank"&gt;CMap 사용예&lt;/a&gt;&lt;span style="padding: 0pt 7px 0pt 5px;"&gt;|&lt;/span&gt;&lt;strong style="padding: 0pt 7px 0pt 0pt;"&gt;작성자&lt;/strong&gt; &lt;a href="http://blog.naver.com/77004648" target="_blank"&gt;러프&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;map에 값을 넣을 때: SetAt() / 배열처럼 [] 연산자 사용&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;map에서 값을 찾을 때: Lookup() 사용&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;m_map.Lookup(m_nMap, szOut);&lt;br /&gt;&lt;div style="text-align: left;"&gt;map에서 1개의 key와 그 key에 해당하는 값을 삭제할 때: RemoveKey() 사용&lt;br /&gt;map에 저장된 모든 key와 그 key들에 해당하는 값을 삭제할 때: RemoveAll() 사용&lt;br /&gt;map에 저장된 key-값의 쌍의 갯수를 알고 싶을 때: GetCount() 사용&lt;br /&gt;map이 비여 있는지 Check할 때: IsEmpty() 사용&lt;br /&gt;map에 저장된 값중 첫 key의 위치를 얻고 싶을 때: GetStartPosition() 사용&lt;br /&gt;map에 저장된 값중 임의의 위치로부터 순차적으로 값을 읽고 싶을 때: GetNextAssoc() 사용&lt;br /&gt;&lt;div style="text-align: center;"&gt;m_map.GetNextAssoc(pos, nMapMode, szMapMode);&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;CMap 사용 예제&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(128, 128, 0);"&gt;#include&lt;/span&gt; &lt;span style="color: rgb(0, 128, 128);"&gt;"stdafx.h"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 0);"&gt;#include&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0);"&gt;&lt;&lt;/span&gt;afxtempl.h&lt;span style="color: rgb(128, 0, 0);"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;int&lt;/span&gt; _tmain(&lt;span style="color: rgb(0, 128, 0);"&gt;int&lt;/span&gt; argc, TCHAR&lt;span style="color: rgb(128, 0, 0);"&gt;*&lt;/span&gt; argv[], TCHAR&lt;span style="color: rgb(128, 0, 0);"&gt;*&lt;/span&gt; envp[])&lt;br /&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;int&lt;/span&gt; nValue &lt;span style="color: rgb(128, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;;&lt;br /&gt;CString strKey;&lt;br /&gt;POSITION pos &lt;span style="color: rgb(128, 0, 0);"&gt;=&lt;/span&gt; NULL;&lt;br /&gt;CMap&lt;span style="color: rgb(128, 0, 0);"&gt;&lt;&lt;/span&gt;CString, LPCSTR, &lt;span style="color: rgb(0, 128, 0);"&gt;int&lt;/span&gt;, &lt;span style="color: rgb(0, 128, 0);"&gt;int&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&gt;&lt;/span&gt; m;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;/*&lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt; 1. add key and value &lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;*/&lt;/span&gt;&lt;br /&gt;m.SetAt(&lt;span style="color: rgb(0, 128, 128);"&gt;"AAA"&lt;/span&gt;, &lt;span style="color: rgb(128, 0, 128);"&gt;111&lt;/span&gt;);&lt;br /&gt;m.SetAt(&lt;span style="color: rgb(0, 128, 128);"&gt;"ABC"&lt;/span&gt;, &lt;span style="color: rgb(128, 0, 128);"&gt;123&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;/*&lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt; 2. lookup key 'AAA' &lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;if&lt;/span&gt; ( m.Lookup(&lt;span style="color: rgb(0, 128, 128);"&gt;"AAA"&lt;/span&gt;, nValue) )&lt;br /&gt;printf(&lt;span style="color: rgb(0, 128, 128);"&gt;"find 'AAA' = %d\n"&lt;/span&gt;, nValue);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;else&lt;/span&gt;&lt;br /&gt;printf(&lt;span style="color: rgb(0, 128, 128);"&gt;"no such key\n"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;/*&lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt; 3. replace key and value &lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;*/&lt;/span&gt;&lt;br /&gt;m.SetAt(&lt;span style="color: rgb(0, 128, 128);"&gt;"AAA"&lt;/span&gt;, &lt;span style="color: rgb(128, 0, 128);"&gt;333&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;if&lt;/span&gt; ( m.Lookup(&lt;span style="color: rgb(0, 128, 128);"&gt;"AAA"&lt;/span&gt;, nValue) )&lt;br /&gt;printf(&lt;span style="color: rgb(0, 128, 128);"&gt;"find 'AAA' = %d\n"&lt;/span&gt;, nValue);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;else&lt;/span&gt;&lt;br /&gt;printf(&lt;span style="color: rgb(0, 128, 128);"&gt;"no such key\n"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;/*&lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt; 4. iterate map &lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;*/&lt;/span&gt;&lt;br /&gt;pos &lt;span style="color: rgb(128, 0, 0);"&gt;=&lt;/span&gt; m.GetStartPosition();&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;while&lt;/span&gt; ( pos &lt;span style="color: rgb(128, 0, 0);"&gt;!=&lt;/span&gt; NULL )&lt;br /&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;{&lt;/span&gt;&lt;br /&gt;m.GetNextAssoc(pos, strKey, nValue);&lt;br /&gt;printf(&lt;span style="color: rgb(0, 128, 128);"&gt;"%s = %d\n"&lt;/span&gt;, strKey.&lt;span style="color: rgb(0, 0, 255);"&gt;operator&lt;/span&gt; LPCTSTR(), nValue);&lt;br /&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;/*&lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt; 5. remove 'AAA' key &lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;*/&lt;/span&gt;&lt;br /&gt;m.RemoveKey(&lt;span style="color: rgb(0, 128, 128);"&gt;"AAA"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;/*&lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt; 6. iterate map after removing 'AAA' key &lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;*/&lt;/span&gt;&lt;br /&gt;pos &lt;span style="color: rgb(128, 0, 0);"&gt;=&lt;/span&gt; m.GetStartPosition();&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;while&lt;/span&gt; ( pos &lt;span style="color: rgb(128, 0, 0);"&gt;!=&lt;/span&gt; NULL )&lt;br /&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;{&lt;/span&gt;&lt;br /&gt;m.GetNextAssoc(pos, strKey, nValue);&lt;br /&gt;printf(&lt;span style="color: rgb(0, 128, 128);"&gt;"%s = %d\n"&lt;/span&gt;, strKey.&lt;span style="color: rgb(0, 0, 255);"&gt;operator&lt;/span&gt; LPCTSTR(), nValue);&lt;br /&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;/*&lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt; 7. print map count &lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;*/&lt;/span&gt;&lt;br /&gt;printf(&lt;span style="color: rgb(0, 128, 128);"&gt;"a saved number of key in map is %d\n"&lt;/span&gt;, m.GetCount());&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;/*&lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt; 8. remove all existing key pair &lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;*/&lt;/span&gt;&lt;br /&gt;m.RemoveAll();&lt;br /&gt;printf(&lt;span style="color: rgb(0, 128, 128);"&gt;"a saved number of key in map is %d\n"&lt;/span&gt;, m.GetCount());&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;CMap 사용 예제 출처 -&lt;/span&gt; &lt;a href="http://blog.daum.net/aswip/6957183"&gt;Software information provider&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-5411471162127529780?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/5411471162127529780/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/01/visual-ccmap.html#comment-form' title='1개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/5411471162127529780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/5411471162127529780'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/01/visual-ccmap.html' title='[Visual C++]CMap 사용 방법'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-7109050299165452020</id><published>2009-01-12T14:58:00.002+09:00</published><updated>2009-01-12T15:05:17.812+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NEWS'/><title type='text'>[NEWS]진중권 "미네르바 체포, 위기의식 때문" -&gt; 헐... 할 말이 없다</title><content type='html'>뉴스:  &lt;span style="font-size:100%;"&gt;&lt;a href="http://news.moneytoday.co.kr/view/mtview.php?no=2009011213214371201&amp;amp;type=2"&gt;진중권 "미네르바 체포, 위기의식 때문"(머니투데이)&lt;/a&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;뭐... 보아하니.... 다음투표 때도 비슷한 인간 나와도 돈만 벌어준다 그럼 또 그럴거 같어... ;;&lt;br /&gt;다들 제정신이 아니지 뭐...&lt;br /&gt;&lt;br /&gt;그나저나.. 진중권 교수 걱정되네...&lt;br /&gt;언젠가 잠잠해지면 소리소문 없이 사라지는 거 아닌가 모르겠네... ;;&lt;br /&gt;요즘 상상하는 건 뭐든지(?) 이뤄지니까 그런 상황이 없으리란 법이없어..&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-7109050299165452020?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/7109050299165452020/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2009/01/news.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/7109050299165452020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/7109050299165452020'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2009/01/news.html' title='[NEWS]진중권 &quot;미네르바 체포, 위기의식 때문&quot; -&gt; 헐... 할 말이 없다'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-4971725210632953525</id><published>2008-12-30T09:58:00.020+09:00</published><updated>2009-01-02T09:14:23.876+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Horror Cartoon'/><title type='text'>[Review]피안도(彼岸島)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVl3r1t7b-I/AAAAAAAAANc/CTWDIV0Vxzc/s1600-h/%ED%91%9C%EC%A7%80.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 368px; height: 536px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVl3r1t7b-I/AAAAAAAAANc/CTWDIV0Vxzc/s400/%ED%91%9C%EC%A7%80.bmp" alt="" id="BLOGGER_PHOTO_ID_5285387232733786082" border="0" /&gt;&lt;/a&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;&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;&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;작가: Koji Matsumoto&lt;br /&gt;내용 평가: 한 번 보면 멈출수 없다~!! 초강력 추천!!&lt;br /&gt;&lt;br /&gt;줄거리:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVl0j0fVWnI/AAAAAAAAAMs/QxwLL-wACME/s1600-h/%EC%95%84%ED%82%A4%EB%9D%BC_%EC%A0%84.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 150px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVl0j0fVWnI/AAAAAAAAAMs/QxwLL-wACME/s320/%EC%95%84%ED%82%A4%EB%9D%BC_%EC%A0%84.jpg" alt="" id="BLOGGER_PHOTO_ID_5285383796430297714" border="0" /&gt;&lt;/a&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;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVl09R5ahQI/AAAAAAAAAM0/Xy_UftIBg_E/s1600-h/%EC%95%84%ED%82%A4%EB%9D%BC_%ED%9B%84.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 147px; height: 144px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVl09R5ahQI/AAAAAAAAAM0/Xy_UftIBg_E/s320/%EC%95%84%ED%82%A4%EB%9D%BC_%ED%9B%84.jpg" alt="" id="BLOGGER_PHOTO_ID_5285384233821046018" border="0" /&gt;&lt;/a&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;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVl1YxHlsdI/AAAAAAAAAM8/tSQN9Ry_7RI/s1600-h/%EC%95%84%EC%B8%A0%EC%8B%9C.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 147px; height: 156px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVl1YxHlsdI/AAAAAAAAAM8/tSQN9Ry_7RI/s320/%EC%95%84%EC%B8%A0%EC%8B%9C.jpg" alt="" id="BLOGGER_PHOTO_ID_5285384706058465746" border="0" /&gt;&lt;/a&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;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVl14ZW56gI/AAAAAAAAANE/2BnC5wEYWTk/s1600-h/%EB%AF%B8%EC%95%BC%EB%B9%84+%EC%96%BC%EA%B5%B4.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 144px; height: 158px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVl14ZW56gI/AAAAAAAAANE/2BnC5wEYWTk/s320/%EB%AF%B8%EC%95%BC%EB%B9%84+%EC%96%BC%EA%B5%B4.jpg" alt="" id="BLOGGER_PHOTO_ID_5285385249436068354" border="0" /&gt;&lt;/a&gt;흡혈귀들의 우두머리이자 모든 문제의 근원~!! 미야비&lt;br /&gt;거의 무적이죠. 머리가 떨어져도 살아남아요!!-_-;;;&lt;br /&gt;어째 나오는 것들마다 이러냐.. 다 Cheet key mode냐?&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;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVl2aySk4hI/AAAAAAAAANM/t4YCWhmTfZg/s1600-h/%EC%95%84%ED%82%A4%EB%9D%BC+%EC%B9%9C%EA%B5%AC%EB%93%A4.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 84px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVl2aySk4hI/AAAAAAAAANM/t4YCWhmTfZg/s320/%EC%95%84%ED%82%A4%EB%9D%BC+%EC%B9%9C%EA%B5%AC%EB%93%A4.jpg" alt="" id="BLOGGER_PHOTO_ID_5285385840244351506" border="0" /&gt;&lt;/a&gt;불쌍한... 단지 아키라를 따라갔을 뿐인 아키라의 친구들... ;;;&lt;br /&gt;괜히 따라갔다가 완전 개고생... 피 빨리지 칼맞지 똥통(?)에 빠지지.... -_-;;;;&lt;br /&gt;그래도 의리있는 아키라의 친구들.. ㅋㅋ&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVl3DZywqCI/AAAAAAAAANU/aGU6vGvyhbw/s1600-h/%EB%A0%88%EC%9D%B4.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 143px; height: 142px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVl3DZywqCI/AAAAAAAAANU/aGU6vGvyhbw/s320/%EB%A0%88%EC%9D%B4.jpg" alt="" id="BLOGGER_PHOTO_ID_5285386538043090978" border="0" /&gt;&lt;/a&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;줄거리는 친구들과 무료한 시간을 보내던 아키라가 레이를 만나고 레이를 위협하는 흡혈귀와 싸움을 계기로 2년 전 사라졌던 형(아츠시)의 소재를 알아내죠. 그래서 형을 찾을 수 있다는 레이의 꼬임(?)에 넘어가 친구들과 함께 피안도로 들어갑니다.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVl6UVfbF0I/AAAAAAAAANk/aBjTq_WNEOg/s1600-h/%EC%84%AC+%EC%9E%85%EA%B5%AC.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 577px; height: 411px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVl6UVfbF0I/AAAAAAAAANk/aBjTq_WNEOg/s400/%EC%84%AC+%EC%9E%85%EA%B5%AC.jpg" alt="" id="BLOGGER_PHOTO_ID_5285390127480903490" border="0" /&gt;&lt;/a&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;&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;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;제가 제일 좋아하는 부분이죠. 섬들어가는 장면... 돌잡이부터 노인까지 전부 흡혈귀에요. 속수무책으로 당하던 아키라들은 섬에 남아 있던 인간그룹과 조우를 하면서 겨우 살아나죠. 아츠시도 그들과 함께 게릴라 활동을 하고 있다는 사실도 알아내구요.&lt;br /&gt;그렇게 열심히 살아나기 위해 싸우면서 아키라는 성장하게 됩니다. 그러고 보니까 반지의 제왕과 비슷한 이야기 구조를 가지고 있네요.&lt;br /&gt;어리숙하던 아키라가 극한의 공포를 접하고 어려움을 겪으며 친구를 잃으가면서 점점 강해집니다. 미야비와 싸워도 호각일 정도로 강해집니다.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVl-jpbQ-cI/AAAAAAAAANs/OLC_9Mc1Hjc/s1600-h/%EB%AF%B8%EC%95%BC%EB%B9%84.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 308px; height: 581px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVl-jpbQ-cI/AAAAAAAAANs/OLC_9Mc1Hjc/s400/%EB%AF%B8%EC%95%BC%EB%B9%84.jpg" alt="" id="BLOGGER_PHOTO_ID_5285394788576721346" border="0" /&gt;&lt;/a&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;&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;&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;&lt;br /&gt;흡혈귀들은 규칙적으로 흡혈을 하지 않으면 "악귀"라는 것으로 변화를 하는데 그 모습이 참 이쁘죠... -_-;;;; (죄송.. 제 취향이라.... )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVmAQUQ3OfI/AAAAAAAAAOs/X-TaufgzUTM/s1600-h/%EC%95%85%EA%B7%801.jpg"&gt;&lt;img style="cursor: pointer; width: 495px; height: 445px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVmAQUQ3OfI/AAAAAAAAAOs/X-TaufgzUTM/s400/%EC%95%85%EA%B7%801.jpg" alt="" id="BLOGGER_PHOTO_ID_5285396655501687282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;악귀가 또 무쟈게 쎕니다. 씨알도 안먹히죠... ;;;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVmAQeGoEnI/AAAAAAAAAOk/Rs67SsRRlFQ/s1600-h/%EC%95%85%EA%B7%802.jpg"&gt;&lt;img style="cursor: pointer; width: 425px; height: 433px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVmAQeGoEnI/AAAAAAAAAOk/Rs67SsRRlFQ/s400/%EC%95%85%EA%B7%802.jpg" alt="" id="BLOGGER_PHOTO_ID_5285396658143105650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVmAQAw9dbI/AAAAAAAAAOc/MJvcza55Wco/s1600-h/%EC%95%85%EA%B7%803.jpg"&gt;&lt;img style="cursor: pointer; width: 280px; height: 419px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVmAQAw9dbI/AAAAAAAAAOc/MJvcza55Wco/s400/%EC%95%85%EA%B7%803.jpg" alt="" id="BLOGGER_PHOTO_ID_5285396650267604402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;무조건 흡혈을 못했다고 다 악귀가 되는 것은 아닙니다. 위처럼 "망자"가 되가도 하죠. 안쓰럽기는 한데 걸리면...... 악귀보다 더 짜증날 거 가테.... -_-;;;;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVmAClvJuqI/AAAAAAAAAOU/hQi_oE63x9Q/s1600-h/%EC%95%85%EA%B7%804.jpg"&gt;&lt;img style="cursor: pointer; width: 335px; height: 536px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVmAClvJuqI/AAAAAAAAAOU/hQi_oE63x9Q/s400/%EC%95%85%EA%B7%804.jpg" alt="" id="BLOGGER_PHOTO_ID_5285396419673963170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVmACWIxehI/AAAAAAAAAOM/vbHdorIRnhU/s1600-h/%EC%95%85%EA%B7%805.jpg"&gt;&lt;img style="cursor: pointer; width: 359px; height: 495px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVmACWIxehI/AAAAAAAAAOM/vbHdorIRnhU/s400/%EC%95%85%EA%B7%805.jpg" alt="" id="BLOGGER_PHOTO_ID_5285396415486458386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVmACCkNjjI/AAAAAAAAAOE/vLIPsZt2Ny0/s1600-h/%EC%95%85%EA%B7%806.jpg"&gt;&lt;img style="cursor: pointer; width: 389px; height: 414px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVmACCkNjjI/AAAAAAAAAOE/vLIPsZt2Ny0/s400/%EC%95%85%EA%B7%806.jpg" alt="" id="BLOGGER_PHOTO_ID_5285396410232835634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;저 놀라운 재생력... 머리를 잘라도 또 튀어나와요... -_-;;;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVmACPkmWqI/AAAAAAAAAN8/Qc_rCYBzXqE/s1600-h/%EC%95%85%EA%B7%807.jpg"&gt;&lt;img style="cursor: pointer; width: 326px; height: 475px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVmACPkmWqI/AAAAAAAAAN8/Qc_rCYBzXqE/s400/%EC%95%85%EA%B7%807.jpg" alt="" id="BLOGGER_PHOTO_ID_5285396413724121762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;이제는 때거리로.... ;;;; 커헉...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVmAB52IVrI/AAAAAAAAAN0/IdbqBinLPrE/s1600-h/%EC%95%85%EA%B7%80_%EA%B3%B5%EC%A3%BC.jpg"&gt;&lt;img style="cursor: pointer; width: 406px; height: 461px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVmAB52IVrI/AAAAAAAAAN0/IdbqBinLPrE/s400/%EC%95%85%EA%B7%80_%EA%B3%B5%EC%A3%BC.jpg" alt="" id="BLOGGER_PHOTO_ID_5285396407892072114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;악귀중의 악귀 "공주"까지.... 얘는 다른 악귀까지 막 잡아먹어요. -_-;;;; 특히 눈 마주치면... 바로 공격~!!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SV1YZeoTNHI/AAAAAAAAAO0/SLakg4bTrwE/s1600-h/%EB%AA%A9%EC%A7%9C%EB%A5%B4%EA%B8%B0.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 344px; height: 397px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SV1YZeoTNHI/AAAAAAAAAO0/SLakg4bTrwE/s400/%EB%AA%A9%EC%A7%9C%EB%A5%B4%EA%B8%B0.jpg" alt="" id="BLOGGER_PHOTO_ID_5286478732344898674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;이 책의 장점은 긴장감의 강약을 조절할줄 안다는 겁니다.&lt;br /&gt;&lt;br /&gt;시작부터 흡혈귀의 목을 잘라버리는 등 충격적인 장면이 연출되기도 하지만 스토리를 이어가기 위한 전체적인 구성이 매우 탄탄하여 어색하지 않다는 거죠.&lt;br /&gt;&lt;br /&gt;다만 좀 아쉬운 건 주인공이 고생하면서 성장하는 것은 좋지만 거의 Cheet key mode라는 거... 너무 강하다보니 일반 흡혈귀 정도는 아무것도 아니죠. 그래서 흡혈귀들과의 싸움에서 발생되는 긴장감이 나름 죽었다는게 좀 아쉽죠.(물론 그래도 아직은 그 긴장감이 나름 유지가 되고 있지만 이런류의 작품을 좋아하는 저만의 이기적 욕심이랄까요... ^^;;;;)&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;이 피안도를 한일합작으로 영화화한다고 합니다. -_-;;;;&lt;br /&gt;Good job~!!&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img class="image_mid" onmouseover="this.style.cursor='pointer'" style="cursor: pointer;" onclick="Control.Modal.openDialog(this, event, 'http://pds6.egloos.com/pds/200808/03/50/f0046050_4895b0a772d70.jpg');" alt="" src="http://pds6.egloos.com/pds/200808/03/50/f0046050_4895b0a772d70.jpg" width="520" border="0" height="366" /&gt;&lt;/span&gt;&lt;br /&gt;올 해 개봉 예정이라고 하니 무척 기대되면서 걱정입니다.&lt;br /&gt;잘 되야할텐데 말이죠.. ^^&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/span&gt;이미지 출처: &lt;a href="http://kdaq.empas.com/qna/view.html?n=8433880&amp;amp;sq=%C7%C7%BE%C8%B5%B5"&gt;엠파스 열린지식&lt;/a&gt;&lt;br /&gt;              &lt;a href="http://blog.naver.com/miaka123/110039049849"&gt;미아카 블로그&lt;/a&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-4971725210632953525?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/4971725210632953525/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/review.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/4971725210632953525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/4971725210632953525'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/review.html' title='[Review]피안도(彼岸島)'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_VzhNBbWO1aE/SVl3r1t7b-I/AAAAAAAAANc/CTWDIV0Vxzc/s72-c/%ED%91%9C%EC%A7%80.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-2713235139364520104</id><published>2008-12-29T15:46:00.005+09:00</published><updated>2009-01-13T17:13:55.562+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCRAP'/><title type='text'>[동영상]Dancing</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/zlfKdbWwruY&amp;amp;hl=ko&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/zlfKdbWwruY&amp;amp;hl=ko&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;이분 참 대단하다. 저 영상 몇년 전인데...(정확한 기억은 안난다.. -_-;;;;) 계속 Update되고 있었다. ㅋㅋㅋ&lt;br /&gt;정말... 소장하고 싶어서 유튜브에서 퍼왔다.ㅋㅋ&lt;br /&gt;&lt;br /&gt;출처: &lt;a href="http://kr.youtube.com/watch?v=zlfKdbWwruY&amp;amp;eurl=http://www.blogger.com/post-create.g?blogID=4187212371018175208#"&gt;Where the Hell is Matt? (2008)&lt;/a&gt; - YouTube&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-2713235139364520104?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/2713235139364520104/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/dancing.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2713235139364520104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2713235139364520104'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/dancing.html' title='[동영상]Dancing'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-522711199070052136</id><published>2008-12-26T10:42:00.002+09:00</published><updated>2008-12-26T16:25:46.436+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NEWS'/><title type='text'>[NEWS]“언론법안 벼락치기, 정권연장 음모 증명” - 독재의 악취가 피어오른다...</title><content type='html'>기사 - &lt;a href="http://www.hani.co.kr/arti/society/media/329769.html"&gt;“언론법안 벼락치기, 정권연장 음모 증명”&lt;/a&gt;(한겨레 신문)&lt;br /&gt;&lt;br /&gt;MB가 드디어 독재의 길로 걸어가는구나. 은근히 어리버리하게 보이면서 할 거 다한다. 가장 위협이 될만한 모든 요소를 차근차근 짖밟고 있다. 지 맘에 안드는 것... 반대하는 것... 모든 것을 용납하지 않는다.&lt;br /&gt;&lt;br /&gt;이제는 언론을 자기 맘대로 주무르려 한다. 소위 '언론법안'이라는 것은 힘있고 권력있는 세력에게(대기업이나.... 조중동 같은 언론 제벌들) 방송을 장악할 수 있는 권한을 주고 내 입맛에 맞는 언론만 양산하도록 하겠다는 것이다. 이미 권력과 언론을 싹 주워 삼키겠다는 뜻을 아예 대놓고 보여준다. 저런 언론에서 무슨 입바른 소리가 나오겠나?&lt;br /&gt;&lt;br /&gt;위의 뉴스처럼 이제는 장기집권하면서 독재를 해보겠다 하는 의도가 보인다. 지금은 여론이 무서워 잠잠하지만 언젠가 박정희, 전두환처럼 총/칼로 사람들을 억누르려 할 것이다. 이제 임기 1년이 지났다. 아직 4년이 남았다는 소리다. 벌써부터 이렇게 나온다면... 2, 3년이 지나면 어떻게 나올지 참으로 암담하다.&lt;br /&gt;&lt;br /&gt;&lt;img alt="http://img.hani.co.kr/imgdb/resize/2008/1226/7000157013_20081226.JPG" src="http://img.hani.co.kr/imgdb/resize/2008/1226/7000157013_20081226.JPG" /&gt;&lt;br /&gt;만평 출처: &lt;a href="http://www.hani.co.kr/arti/cartoon/hanicartoon/329738.html"&gt;12월 26일 한겨레 만평(장봉군 작)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-522711199070052136?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/522711199070052136/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/news.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/522711199070052136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/522711199070052136'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/news.html' title='[NEWS]“언론법안 벼락치기, 정권연장 음모 증명” - 독재의 악취가 피어오른다...'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-2717045938522287195</id><published>2008-12-24T15:34:00.001+09:00</published><updated>2008-12-24T15:45:15.062+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='육아'/><title type='text'>[개인]동건이 돌잔치 앨범2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHaXVKP0II/AAAAAAAAALg/7z2Dv9lVduY/s1600-h/0065.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHaXVKP0II/AAAAAAAAALg/7z2Dv9lVduY/s400/0065.jpg" alt="" id="BLOGGER_PHOTO_ID_5283243932234272898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHaXZRDZ8I/AAAAAAAAALY/pftLmknnSeg/s1600-h/0064.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHaXZRDZ8I/AAAAAAAAALY/pftLmknnSeg/s400/0064.jpg" alt="" id="BLOGGER_PHOTO_ID_5283243933336561602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHaXFe2k-I/AAAAAAAAALQ/UFk2fyPsMN8/s1600-h/0063.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHaXFe2k-I/AAAAAAAAALQ/UFk2fyPsMN8/s400/0063.jpg" alt="" id="BLOGGER_PHOTO_ID_5283243928025732066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHaXHcyQ5I/AAAAAAAAALI/sE7QoJoY2iM/s1600-h/0062.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHaXHcyQ5I/AAAAAAAAALI/sE7QoJoY2iM/s400/0062.jpg" alt="" id="BLOGGER_PHOTO_ID_5283243928553931666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHaILn6fEI/AAAAAAAAALA/zAUM3AhNrIg/s1600-h/0061.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHaILn6fEI/AAAAAAAAALA/zAUM3AhNrIg/s400/0061.jpg" alt="" id="BLOGGER_PHOTO_ID_5283243671976311874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHaIHll6DI/AAAAAAAAAK4/HHBozZVmUu8/s1600-h/0060.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHaIHll6DI/AAAAAAAAAK4/HHBozZVmUu8/s400/0060.jpg" alt="" id="BLOGGER_PHOTO_ID_5283243670892832818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHaH6JyzyI/AAAAAAAAAKw/qfoljdV_KP4/s1600-h/0059.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHaH6JyzyI/AAAAAAAAAKw/qfoljdV_KP4/s400/0059.jpg" alt="" id="BLOGGER_PHOTO_ID_5283243667286576930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHaH51w39I/AAAAAAAAAKo/age1ew3zLng/s1600-h/0058.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHaH51w39I/AAAAAAAAAKo/age1ew3zLng/s400/0058.jpg" alt="" id="BLOGGER_PHOTO_ID_5283243667202564050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHaHrKc6bI/AAAAAAAAAKg/8KZc5dewmlU/s1600-h/0057.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHaHrKc6bI/AAAAAAAAAKg/8KZc5dewmlU/s400/0057.jpg" alt="" id="BLOGGER_PHOTO_ID_5283243663262804402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHZ0UQl7QI/AAAAAAAAAKY/n5JVaImD17Q/s1600-h/0056.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHZ0UQl7QI/AAAAAAAAAKY/n5JVaImD17Q/s400/0056.jpg" alt="" id="BLOGGER_PHOTO_ID_5283243330697030914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHZ0WC6vcI/AAAAAAAAAKQ/cvTlLEXcNZU/s1600-h/0055.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHZ0WC6vcI/AAAAAAAAAKQ/cvTlLEXcNZU/s400/0055.jpg" alt="" id="BLOGGER_PHOTO_ID_5283243331176545730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHZ0IRaQsI/AAAAAAAAAKI/yuVi4qktlBI/s1600-h/0054.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHZ0IRaQsI/AAAAAAAAAKI/yuVi4qktlBI/s400/0054.jpg" alt="" id="BLOGGER_PHOTO_ID_5283243327479235266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHZ0GEpjPI/AAAAAAAAAKA/6CSal1-krcw/s1600-h/0053.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHZ0GEpjPI/AAAAAAAAAKA/6CSal1-krcw/s400/0053.jpg" alt="" id="BLOGGER_PHOTO_ID_5283243326888840434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHZ0I1w1qI/AAAAAAAAAJ4/zucYsKGNq7Y/s1600-h/0052.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHZ0I1w1qI/AAAAAAAAAJ4/zucYsKGNq7Y/s400/0052.jpg" alt="" id="BLOGGER_PHOTO_ID_5283243327631709858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHZgfebCZI/AAAAAAAAAJw/2C0sknAQHAY/s1600-h/0051.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHZgfebCZI/AAAAAAAAAJw/2C0sknAQHAY/s400/0051.jpg" alt="" id="BLOGGER_PHOTO_ID_5283242990110443922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHZgFKvu8I/AAAAAAAAAJo/s4zdwxPqD5Q/s1600-h/0050.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHZgFKvu8I/AAAAAAAAAJo/s4zdwxPqD5Q/s400/0050.jpg" alt="" id="BLOGGER_PHOTO_ID_5283242983048592322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHZfwDLthI/AAAAAAAAAJg/O4SRofYlgxM/s1600-h/0049.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHZfwDLthI/AAAAAAAAAJg/O4SRofYlgxM/s400/0049.jpg" alt="" id="BLOGGER_PHOTO_ID_5283242977379726866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHZfoa10vI/AAAAAAAAAJY/-3H5wFCwSTI/s1600-h/0048.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHZfoa10vI/AAAAAAAAAJY/-3H5wFCwSTI/s400/0048.jpg" alt="" id="BLOGGER_PHOTO_ID_5283242975331472114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHZfsSPtPI/AAAAAAAAAJQ/PFwgUYutBHw/s1600-h/0047.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHZfsSPtPI/AAAAAAAAAJQ/PFwgUYutBHw/s400/0047.jpg" alt="" id="BLOGGER_PHOTO_ID_5283242976369161458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHZHZTg5SI/AAAAAAAAAJI/0DNxG6grz9E/s1600-h/0046.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHZHZTg5SI/AAAAAAAAAJI/0DNxG6grz9E/s400/0046.jpg" alt="" id="BLOGGER_PHOTO_ID_5283242558957348130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHZHDEtRcI/AAAAAAAAAJA/ufICJwZZrWU/s1600-h/0045.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHZHDEtRcI/AAAAAAAAAJA/ufICJwZZrWU/s400/0045.jpg" alt="" id="BLOGGER_PHOTO_ID_5283242552989664706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHZHECJK-I/AAAAAAAAAI4/vmqSZdEe0x4/s1600-h/0044.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHZHECJK-I/AAAAAAAAAI4/vmqSZdEe0x4/s400/0044.jpg" alt="" id="BLOGGER_PHOTO_ID_5283242553247345634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHZGqO_CkI/AAAAAAAAAIw/3ApRUDz_I8A/s1600-h/0043.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHZGqO_CkI/AAAAAAAAAIw/3ApRUDz_I8A/s400/0043.jpg" alt="" id="BLOGGER_PHOTO_ID_5283242546321885762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHZGg7tNJI/AAAAAAAAAIo/E4VD5RNLnOs/s1600-h/0042.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHZGg7tNJI/AAAAAAAAAIo/E4VD5RNLnOs/s400/0042.jpg" alt="" id="BLOGGER_PHOTO_ID_5283242543825106066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHYwvmeHgI/AAAAAAAAAIg/pgfD_O0Jnwo/s1600-h/0041.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHYwvmeHgI/AAAAAAAAAIg/pgfD_O0Jnwo/s400/0041.jpg" alt="" id="BLOGGER_PHOTO_ID_5283242169805446658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHYwWzggyI/AAAAAAAAAIY/iH-khvAGyjk/s1600-h/0040.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHYwWzggyI/AAAAAAAAAIY/iH-khvAGyjk/s400/0040.jpg" alt="" id="BLOGGER_PHOTO_ID_5283242163149243170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHYwDbk0xI/AAAAAAAAAIQ/IFaTE-Kzyi8/s1600-h/0039.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHYwDbk0xI/AAAAAAAAAIQ/IFaTE-Kzyi8/s400/0039.jpg" alt="" id="BLOGGER_PHOTO_ID_5283242157948588818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHYwO2oMvI/AAAAAAAAAII/fVwKsspsEcA/s1600-h/0038.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHYwO2oMvI/AAAAAAAAAII/fVwKsspsEcA/s400/0038.jpg" alt="" id="BLOGGER_PHOTO_ID_5283242161014846194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHYvicD-ZI/AAAAAAAAAIA/aFG22vxowPE/s1600-h/0037.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHYvicD-ZI/AAAAAAAAAIA/aFG22vxowPE/s400/0037.jpg" alt="" id="BLOGGER_PHOTO_ID_5283242149092260242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHYcgGchHI/AAAAAAAAAH4/2Q4jZtZkOOc/s1600-h/0036.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHYcgGchHI/AAAAAAAAAH4/2Q4jZtZkOOc/s400/0036.jpg" alt="" id="BLOGGER_PHOTO_ID_5283241822047208562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHYckwfWsI/AAAAAAAAAHw/y7cTStvwypM/s1600-h/0035.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHYckwfWsI/AAAAAAAAAHw/y7cTStvwypM/s400/0035.jpg" alt="" id="BLOGGER_PHOTO_ID_5283241823297297090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHYcaCVwmI/AAAAAAAAAHo/N6dDh93sKB4/s1600-h/0034.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHYcaCVwmI/AAAAAAAAAHo/N6dDh93sKB4/s400/0034.jpg" alt="" id="BLOGGER_PHOTO_ID_5283241820419375714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHYcKkeFNI/AAAAAAAAAHg/Dac_JR9VbKU/s1600-h/0033.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHYcKkeFNI/AAAAAAAAAHg/Dac_JR9VbKU/s400/0033.jpg" alt="" id="BLOGGER_PHOTO_ID_5283241816267560146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHYbxovQdI/AAAAAAAAAHY/AovZePwqXOI/s1600-h/0032.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHYbxovQdI/AAAAAAAAAHY/AovZePwqXOI/s400/0032.jpg" alt="" id="BLOGGER_PHOTO_ID_5283241809574576594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHYKti_neI/AAAAAAAAAHQ/9gaCePtZnn4/s1600-h/0031.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHYKti_neI/AAAAAAAAAHQ/9gaCePtZnn4/s400/0031.jpg" alt="" id="BLOGGER_PHOTO_ID_5283241516418964962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHYKnl2WuI/AAAAAAAAAHI/RAes9NWp01E/s1600-h/0030.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHYKnl2WuI/AAAAAAAAAHI/RAes9NWp01E/s400/0030.jpg" alt="" id="BLOGGER_PHOTO_ID_5283241514820328162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHYKJOAdII/AAAAAAAAAHA/evPqX16a4Ok/s1600-h/0029.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHYKJOAdII/AAAAAAAAAHA/evPqX16a4Ok/s400/0029.jpg" alt="" id="BLOGGER_PHOTO_ID_5283241506667263106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHYJwpyFZI/AAAAAAAAAG4/lkUcEqw6aIo/s1600-h/0028.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHYJwpyFZI/AAAAAAAAAG4/lkUcEqw6aIo/s400/0028.jpg" alt="" id="BLOGGER_PHOTO_ID_5283241500072875410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHYJrBfw_I/AAAAAAAAAGw/doDNdbQyv6U/s1600-h/0027.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHYJrBfw_I/AAAAAAAAAGw/doDNdbQyv6U/s400/0027.jpg" alt="" id="BLOGGER_PHOTO_ID_5283241498561725426" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-2717045938522287195?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2717045938522287195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2717045938522287195'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/2.html' title='[개인]동건이 돌잔치 앨범2'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHaXVKP0II/AAAAAAAAALg/7z2Dv9lVduY/s72-c/0065.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-8137217592814855883</id><published>2008-12-24T15:23:00.001+09:00</published><updated>2008-12-24T15:34:01.660+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='육아'/><title type='text'>[개인]동건이 돌잔치 앨범1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHXMbdi8oI/AAAAAAAAAGo/gd_bKVJP7q0/s1600-h/0026.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHXMbdi8oI/AAAAAAAAAGo/gd_bKVJP7q0/s400/0026.jpg" alt="" id="BLOGGER_PHOTO_ID_5283240446412386946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHXMGjzwPI/AAAAAAAAAGg/YCSfc4eZTCM/s1600-h/0025.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHXMGjzwPI/AAAAAAAAAGg/YCSfc4eZTCM/s400/0025.jpg" alt="" id="BLOGGER_PHOTO_ID_5283240440801509618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHXL7NE8DI/AAAAAAAAAGY/xGO3vjiQVz8/s1600-h/0024.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHXL7NE8DI/AAAAAAAAAGY/xGO3vjiQVz8/s400/0024.jpg" alt="" id="BLOGGER_PHOTO_ID_5283240437753376818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHXLkip5ZI/AAAAAAAAAGQ/ApTtznr0jgE/s1600-h/0023.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHXLkip5ZI/AAAAAAAAAGQ/ApTtznr0jgE/s400/0023.jpg" alt="" id="BLOGGER_PHOTO_ID_5283240431669863826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHXLSJ74KI/AAAAAAAAAGI/9HA_gAU_K6k/s1600-h/0022.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHXLSJ74KI/AAAAAAAAAGI/9HA_gAU_K6k/s400/0022.jpg" alt="" id="BLOGGER_PHOTO_ID_5283240426734346402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHWzu6tkiI/AAAAAAAAAGA/KdT4wo-9rR4/s1600-h/0021.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHWzu6tkiI/AAAAAAAAAGA/KdT4wo-9rR4/s400/0021.jpg" alt="" id="BLOGGER_PHOTO_ID_5283240022138262050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHWzXL2qZI/AAAAAAAAAF4/7CN58Hmf5FM/s1600-h/0020.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHWzXL2qZI/AAAAAAAAAF4/7CN58Hmf5FM/s400/0020.jpg" alt="" id="BLOGGER_PHOTO_ID_5283240015767710098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHWzNjCUdI/AAAAAAAAAFw/fPBXBnF7vp4/s1600-h/0019.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHWzNjCUdI/AAAAAAAAAFw/fPBXBnF7vp4/s400/0019.jpg" alt="" id="BLOGGER_PHOTO_ID_5283240013180588498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHWy0OMyDI/AAAAAAAAAFo/18-DUgxLdUw/s1600-h/0018.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHWy0OMyDI/AAAAAAAAAFo/18-DUgxLdUw/s400/0018.jpg" alt="" id="BLOGGER_PHOTO_ID_5283240006382307378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHWymJqybI/AAAAAAAAAFg/7HFCTVfAq4w/s1600-h/0016.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHWymJqybI/AAAAAAAAAFg/7HFCTVfAq4w/s400/0016.jpg" alt="" id="BLOGGER_PHOTO_ID_5283240002605205938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHWeuPPK6I/AAAAAAAAAFY/c9qLCF8Q11I/s1600-h/0015.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHWeuPPK6I/AAAAAAAAAFY/c9qLCF8Q11I/s400/0015.jpg" alt="" id="BLOGGER_PHOTO_ID_5283239661178661794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHWeepPM0I/AAAAAAAAAFQ/Cz2EcN_klrA/s1600-h/0014.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHWeepPM0I/AAAAAAAAAFQ/Cz2EcN_klrA/s400/0014.jpg" alt="" id="BLOGGER_PHOTO_ID_5283239656992748354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHWeNNteEI/AAAAAAAAAFI/CelWChD8GQc/s1600-h/0013.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHWeNNteEI/AAAAAAAAAFI/CelWChD8GQc/s400/0013.jpg" alt="" id="BLOGGER_PHOTO_ID_5283239652313888834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHWd_FF2BI/AAAAAAAAAFA/0EBZF72JFMg/s1600-h/0012.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHWd_FF2BI/AAAAAAAAAFA/0EBZF72JFMg/s400/0012.jpg" alt="" id="BLOGGER_PHOTO_ID_5283239648519641106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHWdmuIfKI/AAAAAAAAAE4/0jWU8Avqp1M/s1600-h/0011.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHWdmuIfKI/AAAAAAAAAE4/0jWU8Avqp1M/s400/0011.jpg" alt="" id="BLOGGER_PHOTO_ID_5283239641980894370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHV-KFrJjI/AAAAAAAAAEw/ksmpxsCyhWo/s1600-h/0010.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHV-KFrJjI/AAAAAAAAAEw/ksmpxsCyhWo/s400/0010.jpg" alt="" id="BLOGGER_PHOTO_ID_5283239101719062066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHV9h3SE1I/AAAAAAAAAEo/GAh7yrZ3ptA/s1600-h/0009.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHV9h3SE1I/AAAAAAAAAEo/GAh7yrZ3ptA/s400/0009.jpg" alt="" id="BLOGGER_PHOTO_ID_5283239090921280338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHV9U1IjaI/AAAAAAAAAEg/V7AolgCpeuQ/s1600-h/0008.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHV9U1IjaI/AAAAAAAAAEg/V7AolgCpeuQ/s400/0008.jpg" alt="" id="BLOGGER_PHOTO_ID_5283239087422606754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHV9VtddiI/AAAAAAAAAEY/erEXSh_9sIY/s1600-h/0007.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHV9VtddiI/AAAAAAAAAEY/erEXSh_9sIY/s400/0007.jpg" alt="" id="BLOGGER_PHOTO_ID_5283239087658858018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHV9BnIcHI/AAAAAAAAAEQ/DmP2iQxSIls/s1600-h/0006.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHV9BnIcHI/AAAAAAAAAEQ/DmP2iQxSIls/s400/0006.jpg" alt="" id="BLOGGER_PHOTO_ID_5283239082263605362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHVojVolyI/AAAAAAAAAEI/D1eLzMhRonA/s1600-h/0005.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHVojVolyI/AAAAAAAAAEI/D1eLzMhRonA/s400/0005.jpg" alt="" id="BLOGGER_PHOTO_ID_5283238730539767586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHVotlE4xI/AAAAAAAAAEA/reKGDE-yzMY/s1600-h/0004.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://2.bp.blogspot.com/_VzhNBbWO1aE/SVHVotlE4xI/AAAAAAAAAEA/reKGDE-yzMY/s400/0004.jpg" alt="" id="BLOGGER_PHOTO_ID_5283238733288891154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHVoUuY_uI/AAAAAAAAAD4/b9K0LL6Vkak/s1600-h/0003.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://1.bp.blogspot.com/_VzhNBbWO1aE/SVHVoUuY_uI/AAAAAAAAAD4/b9K0LL6Vkak/s400/0003.jpg" alt="" id="BLOGGER_PHOTO_ID_5283238726617071330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHVoFWQMcI/AAAAAAAAADw/jprEm9vkER8/s1600-h/0002.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SVHVoFWQMcI/AAAAAAAAADw/jprEm9vkER8/s400/0002.jpg" alt="" id="BLOGGER_PHOTO_ID_5283238722489299394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHVoCOXGII/AAAAAAAAADo/ETmtdVZTvuU/s1600-h/0001.jpg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 400px;" src="http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHVoCOXGII/AAAAAAAAADo/ETmtdVZTvuU/s400/0001.jpg" alt="" id="BLOGGER_PHOTO_ID_5283238721650890882" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-8137217592814855883?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8137217592814855883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8137217592814855883'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/1.html' title='[개인]동건이 돌잔치 앨범1'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VzhNBbWO1aE/SVHXMbdi8oI/AAAAAAAAAGo/gd_bKVJP7q0/s72-c/0026.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-6739179403907685212</id><published>2008-12-19T12:59:00.000+09:00</published><updated>2008-12-19T16:06:31.236+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>[C#] 파일 읽기와 쓰기 처리</title><content type='html'>&lt;PRE&gt;&lt;br /&gt;여러 개의 문자를 순차적으로 읽어오도록 프로그램을 짜보겠습니다.&lt;br /&gt;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Xml;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;string strSaveFilePath = "C:\\Save.txt"; // 파일의 경로입니다.&lt;br /&gt;&lt;br /&gt;StreamReader SRead = new StreamReader(strSaveFilePath, System.Text.Encoding.UTF8);&lt;br /&gt;&lt;br /&gt;string strFileLine = string.Empty;&lt;br /&gt;while((strFileLine = SRead.ReadLine()) != null)&lt;br /&gt;{&lt;br /&gt;    Console.WriteLine(strFileLine); // 읽어온 문자열을 뿌립니다.&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;SRead.Close();&lt;br /&gt;&lt;br /&gt;자, 이제 파일에 입력하고 싶은 string을 써볼까요?&lt;br /&gt;&lt;br /&gt;string strTest = "File 쓰기 TEST~!!";&lt;br /&gt;StreamWriter SWrite = new StreamWriter(strSaveFilePath,false,System.Text.Encoding.UTF8);&lt;br /&gt;&lt;br /&gt;SWrite.WriteLine(strTest);&lt;br /&gt;SWrite.Close();&lt;br /&gt;&lt;br /&gt;//--------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;C# 이 왜 그렇게 강력하고 편리한 개발 언어인지 여실히 증명해주는 부분입니다.&lt;br /&gt;너무 간단해서 할 말이 없네요. ㅋㅋ&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;/PRE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-6739179403907685212?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/6739179403907685212/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/c.html#comment-form' title='2개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6739179403907685212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6739179403907685212'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/c.html' title='[C#] 파일 읽기와 쓰기 처리'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-4542517055009960100</id><published>2008-12-19T12:53:00.000+09:00</published><updated>2008-12-19T13:57:52.056+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>[C#] XML 만들어 주는 Method</title><content type='html'>using System.Collections.Specialized;  // 반드시 추가해줘야 합니다.&lt;br /&gt;using System.Xml;  // Xml을 만들어야 하니까 역시 추가되어야겠죠.&lt;br /&gt;&lt;br /&gt;namespace Test&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public string XmlCreate(NameValueCollection NameValue)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (NameValue.Count &gt; 0)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;XmlDocument Doc = new XmlDocument();&lt;br /&gt;&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;XmlDeclaration newDec = Doc.CreateXmlDeclaration("1.0", "utf-8", null);&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;Doc.AppendChild(newDec);&lt;br /&gt;&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;XmlElement Worklist = Doc.CreateElement("worklist");&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;Doc.AppendChild(Worklist);&lt;br /&gt;&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;XmlElement Request = Doc.CreateElement("request");&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;Request.SetAttribute("object", "REPORT");&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;Request.SetAttribute("action", "SAVE");&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;Worklist.AppendChild(Request);&lt;br /&gt;&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;XmlElement Report = Doc.CreateElement("report");&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;Request.AppendChild(Report);&lt;br /&gt;&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;XmlElement ChildData = null;&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;for (int iIndex = 0; iIndex &lt; NameValue.Count; iIndex++)&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;{&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;ChildData = Doc.CreateElement(NameValue.GetKey(iIndex).ToString());&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;ChildData.InnerText = NameValue[iIndex].ToString();&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;Report.AppendChild(ChildData);&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;}&lt;br /&gt;&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;XmlElement User_Key = Doc.CreateElement("user_key");&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;User_Key.InnerText = "18";&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;Worklist.AppendChild(User_Key);&lt;br /&gt;&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;XmlElement Level_Code = Doc.CreateElement("level_code");&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;Level_Code.InnerText = "100";&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;Worklist.AppendChild(Level_Code);&lt;br /&gt;&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;return Doc.InnerXml.Replace(@"\", "");;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else&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;return "";&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;일단 Method(function)은 위와 같고 이 기능을 사용하려면...&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NameValueCollection NameValue = new NameValueCollection();&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NameValue.Add("study_key", "");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NameValue.Add("transcriber_key", "");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NameValue.Add("dictator_key", "");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NameValue.Add("approver_key", "");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NameValue.Add("reviser_key", "");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NameValue.Add("auto_update", "");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NameValue.Add("report_text", "");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NameValue.Add("user_comments", "");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NameValue.Add("study_comments", "");&lt;br /&gt;    &lt;br /&gt;    string strXml = XmlCreate(NameValue);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;이렇게 사용하면 됩니다.&lt;br /&gt;넣고자 하는 tag에 해당하는 data를 string형태로 입력하면 strXml에 Xml이 만들어져서 들어갑니다.&lt;br /&gt;//--------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;저처럼 XML 때문에 삽질하시는 분이 계실까봐... ^^;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-4542517055009960100?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/4542517055009960100/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/c-xml-method.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/4542517055009960100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/4542517055009960100'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/c-xml-method.html' title='[C#] XML 만들어 주는 Method'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-275820441429277509</id><published>2008-12-19T12:51:00.000+09:00</published><updated>2008-12-19T13:58:59.855+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>[C#] Windows Message를 수신하기 위한 WndProc의 이용</title><content type='html'>protected override void WndProc(ref Message m) &lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Listen for operating system messages.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch (m.Msg)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// The WM_ACTIVATEAPP message occurs when the application&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// becomes the active application or becomes inactive.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case WM_ACTIVATEAPP:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// The WParam value identifies what is occurring.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;appActive = (((int)m.WParam != 0));&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Invalidate to get new text painted.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.Invalidate();&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;                &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;base.WndProc(ref m);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;참고한 주소: &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.control.wndproc.aspx"&gt;Control.WndProc Method (System.Windows.Forms) &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-275820441429277509?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/275820441429277509/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/c-windows-message-wndproc.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/275820441429277509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/275820441429277509'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/c-windows-message-wndproc.html' title='[C#] Windows Message를 수신하기 위한 WndProc의 이용'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-8052186765260950683</id><published>2008-12-19T12:50:00.000+09:00</published><updated>2008-12-19T14:00:09.469+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>[C#] Mutex를 이용한 Application 중복실행 방지</title><content type='html'>using System;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;using System.Threading;  // Mutex를 사용하려면 반드시 포함시켜야 합니다.&lt;br /&gt;&lt;br /&gt;namespace Test&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/// &lt;summary&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/// Test를 위한 UI입니다.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/// &lt;/summary&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public class FormTest : System.Windows.Forms.Form&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//-----------------(중략)-----------------&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/// &lt;summary&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/// 해당 응용 프로그램의 주 진입점입니다. -&gt; 중복 실행 방지&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/// &lt;/summary&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[STAThread]&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;static void Main() &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bool bNew;&lt;br /&gt;&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;Mutex mutex = new Mutex(true, "Test", out bNew);&lt;br /&gt;&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;// 한번만 실행되도록...&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;if (bNew)&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;{&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;Application.EnableVisualStyles();&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;Application.Run(new FormTest());&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;mutex.ReleaseMutex();&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;}&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//-----------------(중략)-----------------&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-8052186765260950683?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/8052186765260950683/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/c-mutex-application.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8052186765260950683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8052186765260950683'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/c-mutex-application.html' title='[C#] Mutex를 이용한 Application 중복실행 방지'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-2856127678410559379</id><published>2008-12-19T12:49:00.000+09:00</published><updated>2008-12-19T12:50:45.706+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>[C#] ScrollBar Value changed event handler</title><content type='html'>참고: &lt;a href="http://www.java2s.com/Tutorial/CSharp/0460__GUI-Windows-Forms/ScrollBarValuechangedeventhandler.htm"&gt;ScrollBar Value changed event handler&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;C#의 Panel에 button들을 서로 다른 크기로 n개를 올린 다음 이 button들을 HScrollBar에 연동시켜 '좌우'로 이동 시키기 위해 위의 연결된 소스를 이용하였습니다.&lt;br /&gt;통째로 배껴오지는 않았지만 참고는 될듯합니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-2856127678410559379?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/2856127678410559379/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/c-scrollbar-value-changed-event-handler.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2856127678410559379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2856127678410559379'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/c-scrollbar-value-changed-event-handler.html' title='[C#] ScrollBar Value changed event handler'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-2336413721201193366</id><published>2008-12-19T12:48:00.000+09:00</published><updated>2008-12-19T14:12:03.540+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Info'/><title type='text'>[Microsoft]Office 제품군 PDF 파일로 저장할 수 있는 공짜 플러그인</title><content type='html'>회사에서 얻은 정보입니다.&lt;br /&gt;&lt;br /&gt;Office 제품군 PDF 파일로 저장할 수 있는 공짜 플러그인입니다.&lt;br /&gt;각종 문서를 PDF로 변환하여 배포할 때 매우 간단한 작업을 통해서 진행시킬 수 있습니다.&lt;br /&gt;&lt;br /&gt;용량도 914 KB로 매우 가볍습니다.&lt;br /&gt;&lt;br /&gt;사용방법은 아래 그림처럼 '다른 이름으로 저장(A)-&gt;PDF(P)'를 선택하시면 됩니다.&lt;br /&gt;단, Office 2007 제품군에서만 사용이 가능합니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;기타 자세한 내용은 마이크로 소프트 홈페이지를 참고하시기 바랍니다.&lt;br /&gt;&lt;br /&gt;참고: &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=ko&amp;amp;FamilyID=F1FC413C-6D89-4F15-991B-63B07BA5F2E5"&gt;2007 Microsoft Office 추가 기능: Microsoft PDF로 저장&lt;/a&gt;&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('48837537',%20'25434120')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/15/img_15_40_0?1227661982.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-2336413721201193366?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/2336413721201193366/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/microsoftoffice-pdf.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2336413721201193366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2336413721201193366'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/microsoftoffice-pdf.html' title='[Microsoft]Office 제품군 PDF 파일로 저장할 수 있는 공짜 플러그인'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-8743317045755456343</id><published>2008-12-19T12:47:00.001+09:00</published><updated>2008-12-19T14:02:08.011+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>[C#] OleDb를 이용하여 sql의 바인드 변수(bind values) 사용하는 방법</title><content type='html'>// UserID를 이용하여 정보를 얻어내는 함수&lt;br /&gt;private void InitPatientInfo(string strUserID)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;string strConn = "Provider=MSDAORA.1;User ID=eric;password=eric1212;Data Source=wslee;Persist Security Info=False";&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DataTable dt = new DataTable();&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OleDbConnection conn = new OleDbConnection(strConn);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conn.Open();&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;string strQuery = "SELECT REGISTER_DTTM, "&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ "USER_ID, "&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ "USER_NAME, "&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ "SPECIAL_NEEDS, "&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ "USER_BIRTH_DTTM, "&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ "USER_SEX, "&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ "SCHEDULED_PROC_ID, "&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ "SCHEDULED_PROC_DESC "&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ "FROM USER_INFO "&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ "WHERE USER_ID = ? "&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ "ORDER BY ACCESSION_NO";&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OleDbCommand comm = new OleDbCommand(strQuery, conn);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;comm.Parameters.Add("@p1", OleDbType.VarChar).Value = strUserID;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OleDbDataAdapter da = new OleDbDataAdapter(comm);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;da.Fill(dt);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(Exception ex)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MessageBox.Show(ex.ToString());&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;finally&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dt.Dispose();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;comm.Dispose();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conn.Close();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;textBoxReceiveDate.Text = dt.Rows[0]["REGISTER_DTTM"].ToString();  // 접수일자&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;textBoxSocialNumber.Text = dt.Rows[0]["USER_ID"].ToString();  // User id&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;textBoxPatientName.Text = dt.Rows[0]["USER_NAME"].ToString();  // User name&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;textBoxExamClassification.Text = dt.Rows[0]["SPECIAL_NEEDS"].ToString();  // 구분&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;textBoxBirthDate.Text = dt.Rows[0]["USER_BIRTH_DTTM"].ToString();  // 생년월일&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;textBoxSex.Text = dt.Rows[0]["USER_SEX"].ToString();  // 성별&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;///----------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;변수는 '?'가 받으며 순서대로 bind됨&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-8743317045755456343?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/8743317045755456343/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/c-oledb-sql-bind-values.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8743317045755456343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8743317045755456343'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/c-oledb-sql-bind-values.html' title='[C#] OleDb를 이용하여 sql의 바인드 변수(bind values) 사용하는 방법'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-2862764575253232326</id><published>2008-12-19T12:44:00.000+09:00</published><updated>2008-12-19T12:47:17.759+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Trackback'/><title type='text'>[Trackback]왜 우리 나라는 성폭행에 이리도 관대한가?</title><content type='html'>지나가다 우연히 보게 된 Bloger의 글(http://chirashism.com/50)을 읽게 되어 너무도 공감이 되어 이렇게 링크를 걸어봤습니다.&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;남자는 원래 그러니까 하는 판단으로 남자가 당하는 성폭력은 폭력으로 보지도 않습니다.&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;&lt;br /&gt;언제쯤이나 이 사회가 제대로 돌아갈까요? &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-2862764575253232326?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/2862764575253232326/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/trackback.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2862764575253232326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2862764575253232326'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/trackback.html' title='[Trackback]왜 우리 나라는 성폭행에 이리도 관대한가?'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-8713523572339036173</id><published>2008-12-19T11:54:00.000+09:00</published><updated>2008-12-19T11:57:37.857+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='개인'/><title type='text'>[영상]내 아들</title><content type='html'>&lt;embed src="http://image.fun.yahoo.co.kr/yhi/common/YammyPlayer_v1.swf?s=1&amp;p=3&amp;vid=1101582119" width="320" height="240" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;br /&gt;저도 예전에 저 영상을 본 기억이 있군요.&lt;br /&gt;결혼을 하기 전인데도 가슴이 아프고 먹먹해져서 눈물이 나더라구요.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;이제 전 결혼을 했고.. 13개월된 아들이 있습니다.&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;그러던 어느 여름날... 아이 심장에 이상이 있는 것을 알았습니다.&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;심실에 구멍이 하나 있고(심실중격결손)... 하지로 향하는 대동맥이 너무 얇으며(혹은 없는 듯... -&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;좀 더 정밀한 검사를 해보려구요.&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;&lt;br /&gt;결국 아이를 낳은지 일주일 만에 수술을 했습니다.&lt;br /&gt;병명이 오히려 늘었더군요.&lt;br /&gt;심실중격결손, 심방중격결손, 대동맥 축착, 대동맥 유출로 협착, 동맥관개존증, ...&lt;br /&gt;&lt;br /&gt;특히나... 대동맥 유출로 협착은 수술을 집도하신 이정렬 교수님도 무척이나 걱정하시던 부분이었습니다.&lt;br /&gt;너무 좋다고... 수술은 했는데... 어찌될지 모른다고...&lt;br /&gt;그러면서 지켜보자고 하서더군요.&lt;br /&gt;그렇게... 수술실에서 6시간... 회복실에서 2시간... 도합 8시간에 걸친 대수술 끝에 아이는 중환자실로 옮겨졌습니다.&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;아이가 살 수만 있다면 내 심장을 대시 내어줄 수도 있다고!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;지금... 그 때로부터 1년이 지났습니다.&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; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VzhNBbWO1aE/SUsNWbFlnSI/AAAAAAAAAAo/s0dYkK4wb80/s1600-h/%EC%9D%B4%EB%8F%99%EA%B1%B4+(28).JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="http://4.bp.blogspot.com/_VzhNBbWO1aE/SUsNWbFlnSI/AAAAAAAAAAo/s0dYkK4wb80/s320/%EC%9D%B4%EB%8F%99%EA%B1%B4+(28).JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5281329666901515554" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-8713523572339036173?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/8713523572339036173/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_3352.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8713523572339036173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8713523572339036173'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_3352.html' title='[영상]내 아들'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_VzhNBbWO1aE/SUsNWbFlnSI/AAAAAAAAAAo/s0dYkK4wb80/s72-c/%EC%9D%B4%EB%8F%99%EA%B1%B4+(28).JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-1996002881679616232</id><published>2008-12-19T11:53:00.000+09:00</published><updated>2008-12-19T11:54:11.313+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='개인'/><title type='text'>[개인]둘째라...</title><content type='html'>와이프가 둘째를 가져볼까 하고 요즘 부쩍 얘기를 꺼낸다.&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;&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;야휴 블로그에서 옮겨온 data입니다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-1996002881679616232?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/1996002881679616232/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_9048.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1996002881679616232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1996002881679616232'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_9048.html' title='[개인]둘째라...'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-5112888737234429288</id><published>2008-12-19T11:50:00.000+09:00</published><updated>2008-12-19T11:53:29.659+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NEWS'/><title type='text'>[NEWS]10만원권 보류 진짜 이유? ‘빨갱이 김구가 싫어’  -&gt; 이쯤되면 막 가자는 거지요?</title><content type='html'>이 나라가 진정 미쳤나봅니다.&lt;br /&gt;오늘 몸도 아프고 정신도 없고.. 일도 손에 안잡혀서 인터넷 좀 돌아다녔더니 이런 어이 없는 기사를 보게 됐네요.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;기사: &lt;a href="http://www.hani.co.kr/arti/specialsection/newspickup_section/321747.html"&gt;10만원권 보류 진짜 이유? ‘빨갱이 김구가 싫어’ (한겨레 신문)&lt;/a&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;&lt;br /&gt;이제는 뭐 대놓고 개기는 인간들 하나둘씩 잡아들일 모양이던데&lt;br /&gt;&lt;br /&gt;기사: &lt;a href="http://news.nate.com/Service/news/ShellView.asp?LinkID=740&amp;articleID=2008111413534651192&amp;sid=786"&gt;‘촛불 진압거부’ 의경 실형이 선고된 까닭? (헤럴드 생생 뉴스)&lt;/a&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;야휴 블로그에서 옮겨온 data입니다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-5112888737234429288?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/5112888737234429288/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/news10.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/5112888737234429288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/5112888737234429288'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/news10.html' title='[NEWS]10만원권 보류 진짜 이유? ‘빨갱이 김구가 싫어’  -&gt; 이쯤되면 막 가자는 거지요?'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-7459616268815209161</id><published>2008-12-19T11:49:00.002+09:00</published><updated>2008-12-19T11:50:10.886+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='개인'/><title type='text'>[개인]남의 일이 아니다?</title><content type='html'>어라....&lt;br /&gt;장난이 아니다...&lt;br /&gt;&lt;br /&gt;지난 번 아이를 위해서 반장난 삼아 들어놨던 펀드가 요즘 장난이 아니다.&lt;br /&gt;수익률 -49%...&lt;br /&gt;많이 넣지를 않아서 200만원 정도 있었는데...&lt;br /&gt;오늘 보니 100만원 쪼금 넘는다.&lt;br /&gt;헐...&lt;br /&gt;&lt;br /&gt;그래서.. 부랴부랴 CMA에 있는 돈 안전한 은행으로 옮기고..(이것도 까먹고 있더라구... -_-)&lt;br /&gt;와이프한테 얘기해서 제 2 금융권에 있는 돈도 마저 옮기기로 했다.&lt;br /&gt;물론 펀드도 해지했다.&lt;br /&gt;&lt;br /&gt;그런데... 그나마도 바로 나오지를 않는다.&lt;br /&gt;은행가서 해지했더니(오늘).... 11월 5일이나 되야 지급이 된단다.&lt;br /&gt;그 때 수익률로... -_-;;;;;;&lt;br /&gt;왠지 100만원도 못 건질 거 같으다.&lt;br /&gt;&lt;br /&gt;어떤 사람은 왜 이렇게 성급하게 빼느냐고 하는데... 솔직하게 지금 봐서는 1, 2년 안에 좋아지지 않을 거 같다.&lt;br /&gt;특히 이 정권 끝날 때까지는...&lt;br /&gt;누군가는 5 ~ 7년 이상 지나야 회복이 될 거 라고 한다.&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;야휴 블로그에서 옮겨온 data입니다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-7459616268815209161?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/7459616268815209161/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_1134.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/7459616268815209161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/7459616268815209161'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_1134.html' title='[개인]남의 일이 아니다?'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-4736905306137080644</id><published>2008-12-19T11:49:00.001+09:00</published><updated>2008-12-19T11:49:39.428+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='개인'/><title type='text'>[개인]기분 좋음...</title><content type='html'>어제 병원을 갔다 왔습니다.&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;주사기로 약을 먹여 왔는데... 아이가 얼마나 익숙해졌는지 넙죽넙죽 잘 받아먹어서 너무 맘이 아팠었죠.&lt;br /&gt;언제나 이 약을 끊을 수 있는지 고민도 해보구요.&lt;br /&gt;그런 약을 이제 더 안먹어도 됩니다.&lt;br /&gt;&lt;br /&gt;행복합니다.&lt;br /&gt;물론 6개월 뒤 다시 병원에 검사를 받으러 가야하지만...&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;그게... 이 아빠의 바램입니다.&lt;br /&gt;&lt;br /&gt;지금은 행복합니다. 그저... 행복할 따름입니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-4736905306137080644?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/4736905306137080644/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_6781.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/4736905306137080644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/4736905306137080644'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_6781.html' title='[개인]기분 좋음...'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-3682566249760603751</id><published>2008-12-19T11:46:00.000+09:00</published><updated>2008-12-19T11:48:21.875+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='개인'/><title type='text'>[개인]동건이 성장 동영상</title><content type='html'>&lt;DIV style="MARGIN: 10px 0px 16px; TEXT-ALIGN: center"&gt;&lt;A hideFocus style="selector-dummy: true" href="http://www.pepbox.com/main/pepbox/view.jsp?source=TRASFER&amp;DWISI=3iW&amp;amp;enc_seq=TDRMWlVN" target=_blank&gt;&lt;SPAN style="COLOR: black"&gt;성장동영상 :: 동건이의 엄마, 아빠 길들이기&lt;/SPAN&gt;&lt;/A&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV style="MARGIN: 10px 0px 16px; TEXT-ALIGN: center"&gt;&lt;SPAN id=pepbox_swf_html&gt;&lt;EMBED name=pepbox pluginspage=http://www.macromedia.com/go/getflashplayer align=LT src=http://www.pepbox.com/main/base.swf?partnerId=pepbox&amp;amp;styleConfig=/style/pepbox@mediachorus.com/0001B/config0001B.xml&amp;amp;service=0&amp;amp;userSeq=0&amp;amp;eventTransferSeq=0&amp;amp;pepboxSeq=121368&amp;amp;rootAccess=1&amp;amp;rootDomain=http://www.pepbox.com&amp;amp;autoPlay=0&amp;amp;musicPlay=0&amp;amp;potalName=99 width=640 height=520 type=application/x-shockwave-flash allowScriptAccess="always" scale="noScale" bgcolor="#ffffff" allowFullScreen="true" quality="high"&gt;&lt;/EMBED&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV style="MARGIN: 10px 0px 5px; TEXT-ALIGN: center"&gt;&lt;A hideFocus style="selector-dummy: true" href="http://www.pepbox.com/main/index.jsp?source=TRASFER&amp;amp;DWISI=3iW" target=_blank&gt;&lt;IMG src="http://www.pepbox.com/image/view/btn_home.gif" border=0&gt;&lt;/A&gt; &lt;A hideFocus style="selector-dummy: true" href="http://www.pepbox.com/main/info/setup.jsp?partnerId=pepbox&amp;amp;source=TRASFER&amp;amp;DWISI=3iW" target=_blank&gt;&lt;IMG src="http://www.pepbox.com/image/view/btn_install.gif" border=0&gt;&lt;/A&gt; &lt;A hideFocus style="selector-dummy: true" href="http://www.pepbox.com/main/pepboxlinkage/transfer.jsp?partnerId=pepbox&amp;amp;source=TRASFER&amp;amp;DWISI=3iW&amp;amp;enc_album_seq=TDRMWlVN" target=_blank&gt;&lt;IMG src="http://www.pepbox.com/image/view/btn_share.gif" border=0&gt;&lt;/A&gt; &lt;A hideFocus style="selector-dummy: true" href="http://www.pepbox.com/main/pepbox/auto_recommend.jsp?partnerId=pepbox&amp;amp;enc_album_seq=TDRMWlVN" target=_blank&gt;&lt;IMG src="http://www.pepbox.com/image/view/btn_recommend.gif" border=0&gt;&lt;/A&gt; &lt;A hideFocus style="selector-dummy: true" href="http://www.pepbox.com/main/brd/list.jsp?source=TRASFER&amp;amp;DWISI=3iW&amp;amp;brd_id=faq&amp;amp;brd_seq=57&amp;amp;mode=view" target=_blank&gt;&lt;IMG src="http://www.pepbox.com/image/view/btn_helps.gif" border=0&gt;&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;&lt;A hideFocus style="selector-dummy: true" href="http://www.pepbox.com/wslee13" target=_blank&gt;&lt;SPAN style="COLOR: blue"&gt;동건아빠&lt;/SPAN&gt; &lt;SPAN style="COLOR: black"&gt;님의 다른 PEPBOX 보기&lt;/SPAN&gt; &lt;/A&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV style="MARGIN: 0px 0px 16px; COLOR: blue; TEXT-ALIGN: center"&gt;오른쪽 하단에 보면 [크게보기] 버튼이 있습니다.&lt;BR&gt;"&lt;B&gt;꽉찬 화면&lt;/B&gt;"을 선택해서 영상을 크게 감상하세요. &lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-3682566249760603751?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/3682566249760603751/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_565.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/3682566249760603751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/3682566249760603751'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_565.html' title='[개인]동건이 성장 동영상'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-4588334952858758923</id><published>2008-12-19T11:44:00.000+09:00</published><updated>2008-12-19T16:14:09.721+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[Visual C++]더블 버퍼링 실제 예제</title><content type='html'>&lt;PRE&gt;&lt;br /&gt;void CWriteView::OnDraw(CDC* pDC)&lt;br /&gt;{&lt;br /&gt;    CRect rect;&lt;br /&gt;    GetClientRect(&amp;rect);&lt;br /&gt;&lt;br /&gt;    if (m_nGridX &gt; 0)&lt;br /&gt;    {&lt;br /&gt;        CDC memDC;&lt;br /&gt;        memDC.CreateCompatibleDC(pDC);&lt;br /&gt;&lt;br /&gt;        CBitmap Bitmap, *pOldBitmap;&lt;br /&gt;        Bitmap.CreateCompatibleBitmap(pDC, rect.Width(), rect.Height());&lt;br /&gt;        pOldBitmap = memDC.SelectObject(&amp;Bitmap);&lt;br /&gt;        memDC.PatBlt(0, 0, rect.Width(), rect.Height(), WHITENESS);&lt;br /&gt;&lt;br /&gt;        CPen pen;&lt;br /&gt;        pen.CreatePen(PS_SOLID, 1, RGB(192, 192, 192));&lt;br /&gt;        CPen *OldPen = (CPen *)memDC.SelectObject(&amp;pen);&lt;br /&gt;&lt;br /&gt;        // Grid Y 축 Line 그리기&lt;br /&gt;        for (int y = 0; y &lt; rect.bottom; y = y + m_nGridY)&lt;br /&gt;        {&lt;br /&gt;            memDC.MoveTo(rect.left, y); memDC.LineTo(rect.right, y);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        // Grid X 축 Line 그리기&lt;br /&gt;        for (int x = 0; x &lt; rect.right; x = x + m_nGridX)&lt;br /&gt;        {&lt;br /&gt;            memDC.MoveTo(x, rect.top); memDC.LineTo(x, rect.bottom);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        pDC-&gt;BitBlt(0, 0, rect.Width(), rect.Height(), &amp;memDC, 0, 0, SRCCOPY);&lt;br /&gt;&lt;br /&gt;        memDC.SelectObject(pOldBitmap);&lt;br /&gt;        memDC.SelectObject(OldPen);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;위의 예제는 지금 수행 중인 개인 프로젝트 중 사용한 더블 버퍼링이다.&lt;br /&gt;더블 버퍼링을 이용해서 격자 무늬를 배경에 그리도록 하는 것이다.&lt;br /&gt;int 변수 m_nGridX, m_nGridY의 값이 높아지면 격자의 크기도 커진다.&lt;br /&gt;&lt;br /&gt;OnDraw 함수에 기술하여 사용하고 있으며 실제 사용가능한 code이다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;/PRE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-4588334952858758923?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/4588334952858758923/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/4588334952858758923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/4588334952858758923'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c.html' title='[Visual C++]더블 버퍼링 실제 예제'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-1062175912770047539</id><published>2008-12-19T11:43:00.000+09:00</published><updated>2008-12-19T11:44:03.862+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Heart'/><title type='text'>[심장]개심술 환아의 퇴원후 주의사항</title><content type='html'>&lt;p align="justify"&gt;다음은 서울대병원에서 개심술 환아 퇴원시 주의사항에 대해서 나눠준 내용을 적은 것입니다.&lt;br /&gt;늘 지갑 속에 넣고  다니던 것이지만 그렇다고 항시 보는 것은 아니기에 차라리 공유를 하자는 뜻에서 적어봅니다.&lt;br /&gt;필요없는 내용은 지우고 반드시 필요하다고  생각되는 내용만 간추려 적어봤습니다.&lt;br /&gt;혹여 문제가 생긴다면 삭제를 하겠지만 그다지 문제가 될 것 같지는  않습니다.&lt;br /&gt;&lt;br /&gt;//----------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;개심수술  후 몸과 마음이 회복되는 시기는 대략 4-6주가 걸립니다.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. 외래방문&lt;/strong&gt;&lt;br /&gt; ① 퇴원 후 첫 외래  방문은 교수님마다 다릅니다.&lt;br /&gt;  - 퇴원하실 때 다음 방문 날짜를 예약해야 합니다.&lt;br /&gt; ② 심전도와 가슴사진은 외래 당일에 1-2시간  일찍 오셔서 하시면 됩니다.&lt;br /&gt;    피검사를 해야 하는 경우는 미리 예약 후 2일 전에 검사실에서 채혈하시면 됩니다.&lt;br /&gt;     (지방채혈 가능합니다. - 외래 채혈실에 문의)&lt;br /&gt; ③ 항응고제(와파린) 복용으로 PT(프로트롬빈) 검사를 해야 하는 경우는 지방채혈이  안됩니다.&lt;br /&gt;    검사 가능한 준 종합병원에서 검사 후 본원 항응고실(02-2072-3926)로 전화하시어 결과(PT INR) 상담하시면  됩니다.&lt;br /&gt;&lt;br /&gt; * 물론 서울대병원에 한해 적용되는 이야기입니다.&lt;br /&gt;   하지만 대부분의 대학병원도 이와 비슷할 것이라  생각됩니다.&lt;br /&gt;   그리고 대부분의 교수님들이 말이 통하시는 분들이 많아 적당히 자기 사정을 얘기하면 잘  조율해주십니다.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. 수술부위 상처관리&lt;/strong&gt;&lt;br /&gt; ① 수술부위 소독은 꼭 필요하지 않습니다.&lt;br /&gt;     그러나 실밥이 있는 경우, 상처부위에 물이 닿은 경우, 환아가 손으로 만진 경우에는&lt;br /&gt;    소독약(머큐롬, 포비돈, 베타딘 등)으로  1일  1회 소독하십시오.&lt;br /&gt; ② 수술부위에 거어즈 등을 사용하지 마시고 &lt;u&gt;수술부위가 빨갛게 붓거나 분비물이 있는지&lt;/u&gt; 자주  관찰하십시오.&lt;br /&gt;    분비물이 있는 경우 병원으로 연락하십시오.&lt;br /&gt;  - 시카케어를 사용하실 경우는 수술 한달 이후에 담당 교수님과  상의 후 사용하십시오.&lt;br /&gt; ③ &lt;u&gt;상처부위에 붙어있는 테이프(sterile strip tape)는 저절로 떨어질 때까지 (약 2주-4주 간  유지) 그대로 둡니다.&lt;/u&gt;&lt;br /&gt;    만약 테이프가 너무 일찍 떨어지면 새 테이프를 붙여주면 됩니다.&lt;br /&gt; ④ 수술부위는 제거해야 될  실밥이 없습니다.&lt;br /&gt;    흉관 뽑은 자리의 실밥은 흉관 제거일로부터 7-10일이 지나면 뽑을 수 있습니다.&lt;br /&gt;  - 시간이 누무  경과되는 경우 가까운 병원을 방문하여 뽑으시면 됩니다.&lt;br /&gt;&lt;br /&gt; * 만일의 경우라는 것이 있기 때문에 가급적이면 매 1일 1회 소독을  해주는 것이&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;&lt;br /&gt;&lt;strong&gt;3. 목욕시키기&lt;/strong&gt;&lt;br /&gt; ① &lt;u&gt;실밥 제거하고 3-4일이 지나 분비물이 없으면 가벼운  샤워가&lt;/u&gt; 가능합니다.&lt;br /&gt; ② 수술부위의 테이프가 있는 상태에서도 샤워가 가능합니다.&lt;br /&gt; ③ 수술 후 상처가 완전히 아물 때까지  통목욕은 하지 않습니다.&lt;br /&gt; ④ 공중목욕탕은 수술 후 4-6주 후에 하도록 합니다.&lt;br /&gt;&lt;br /&gt; * 상처에 물이 닿으면 안되기는 하지만  가제수건에 물을 적셔 닦아주는 정도는 좋습니다.&lt;br /&gt;   너무 씻지 않으면 오히려 위생상 좋지 않기 때문에 가볍게  닦아주세요.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. 자세&lt;/strong&gt;&lt;br /&gt; ① 수술 후 체형변화가 올 수 있으므로 바른자세를 유지해야  합니다.&lt;br /&gt; ② 4-6주 정도는 흉골에 무리가 가지 않도록 무거운 물건을 들거나 과격한 운동은 피해야 합니다.&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;&lt;strong&gt;5. 식사&lt;/strong&gt;&lt;br /&gt; ① 소화가 잘되고 위에 부담이  없는 음식을 조금씩 자주 먹도록 합니다.&lt;br /&gt;  - 기름진 음식은 소화가 안됩니다.&lt;br /&gt; ② 인스턴트 식품(라면, 햄버거, 피자 등)이나  염분이 많이 함유된 과자 등은 제한해야 합니다.&lt;br /&gt;  - 염분 제한, 수분섭취 제한이 중요합니다.&lt;br /&gt; ③ 모유 또는 분유를 먹는 경우  양을 조금씩 늘리되 환아가 숨쉬기 힘들어 하는지를 잘 관찰해야 합니다.&lt;br /&gt;  - 1일 최대 량: 몸무게 * 150cc&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;   결국 적당한 양의 식사와 적절한 영양분을  섭취하는 것이 더 좋겠죠.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;6. 투약&lt;/strong&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;strong&gt;7. 예방접종&lt;br /&gt;&lt;/strong&gt; ① 예방접종은 원칙적으로 수술 후 2개월이 지나 시작하면  됩니다.&lt;br /&gt;    환아의 상태에 따라 교수님과 상의 하시면 됩니다.&lt;br /&gt; ② 열, 감기, 폐렴 등의 증상이 있으면 연기  하십시오.&lt;br /&gt;&lt;br /&gt; * 수술 시 발생되는 수혈 때문에 예방접종이 거의 소용이 없다고 합니다.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;8. 심내막염  주의&lt;/strong&gt;&lt;br /&gt; ① 세균성 심내막염은 세균이 혈액으로 유입되어 비정상적인 판막이나 심장조직에 병변을 일으키는 것입니다.&lt;br /&gt;     구강, 상기도, 소화기, 비뇨기, 피부에는 정상적으로 세균이 존재합니다.&lt;br /&gt;    이러한 균의 일부가 치과치료 과정에서 혈액 내로 침투하여  심내막염을 일으키게 됩니다.&lt;br /&gt; ② 모든 개심술 환아는 수술 후 6개월 안에 발병도가 높습니다.&lt;br /&gt;    이 기간 중에는 감염의 노출과  외과적 수술은 피하는 것이 좋습니다.&lt;br /&gt; ③ 질환에 따라 중정도 위험군, 고위험군으로 나뉘어 지며 이 경우 유치발치를 제외한&lt;br /&gt;     &lt;u&gt;치과 치료를 할 때는 반드시 의사와 상의하여 미리 항생제를 복용해야&lt;/u&gt; 합니다.&lt;br /&gt;  - 아목시실린(Amoxicillin)  50mg/kg 용량을 치료 1시간 전에 경구 복용&lt;br /&gt; ④ &lt;u&gt;증상은 감기처럼 시작되나 고열(38도 이상)이 특징이며 해열제 효과가  없습니다.&lt;br /&gt;&lt;/u&gt;    &lt;u&gt;전신의 무력감, 근육통, 관절의 통증이 동반되기도 합니다.&lt;br /&gt;&lt;/u&gt;&lt;br /&gt; * 알아두셔야 할 것은 수술  안한 아이보다는 수술한 아이들이 심내막염에 더 안전하다는 것입니다.&lt;br /&gt;   그리고 가벼운 상처(입안이 조금 긁혀 피가 나거나, 넘어져 살짝  긁힌 경우)에는 발병확율이 적습니다.&lt;br /&gt;    가급적이면 소아과와 치과를 미리 지정하여 아이의 수술사실을 알리고,&lt;br /&gt;   항상 적절한  치료와 예방을 하는 것이 좋습니다.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;9. 일상 생활하기, 장거리 이동&lt;br /&gt;&lt;/strong&gt; ① 사람이 많은 곳은  가지 않으며 퇴원 후 2주 정도 지나서 유치원, 학교에 보내십시오.&lt;br /&gt;    실내에서 생활할 때 특히 환기에 신경 써주시고 가습기 등을  이용하여 적절한 습도를 유지시켜 주십시오.&lt;br /&gt; ② 퇴원 후 자동차, 기차, 비행기 등을 이용하는데 특별히 제한은 없으나&lt;br /&gt;    이동이  장시간 지속될 경우는 2시간 마다 쉴 수 있도록 하십시오.&lt;br /&gt;&lt;br /&gt; * 사람이 많은 곳은 필연적으로 세균이 많습니다.&lt;br /&gt;   약해져  있는 아이들이 감기 등을 앓기 쉬우므로 가지 마시기 바랍니다.&lt;br /&gt;&lt;br /&gt;--- 서울대 심장 관련 전화번호 및 홈페이지 ---&lt;br /&gt;흉부외과  전담간호사실: 02-747-0096(오전 8시 ~ 오후 6시)&lt;br /&gt;서5병동 간호사실: 02-2072-3473/3750&lt;br /&gt;서울대학교병원  소아흉부외과 간호사실 홈페이지(Friends in heart): cafe.naver.com/westfive&lt;br /&gt;이정렬 교수님 홈페이지: &lt;a href="http://www.kidheart.com/" target="_blank"&gt;www.kidheart.com&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family: webdings; font-size: 100%;"&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;/span&gt;&lt;a href="http://www.kidheart.com/" target="_blank"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-1062175912770047539?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/1062175912770047539/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_1455.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1062175912770047539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1062175912770047539'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_1455.html' title='[심장]개심술 환아의 퇴원후 주의사항'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-2581470500621358913</id><published>2008-12-19T11:42:00.000+09:00</published><updated>2008-12-19T11:43:18.556+09:00</updated><title type='text'>[Visual C++]CClientDC dc(this)</title><content type='html'>&lt;p align="justify"&gt;CClientDC dc(this);&lt;br /&gt;// CClientDC의 dc 객체 생성&lt;br /&gt;// 그림 그릴 스케지북을  준비한다.&lt;br /&gt;&lt;br /&gt;* DC: Device Context라고 하며 그래픽에 필요한 모든 옵션을 한곳에 모아둔 구조체이다.&lt;br /&gt; - DC는  화면 정보를 총괄하는 구조이다.&lt;br /&gt;&lt;br /&gt;* MFC에서는 DC를 CDC라는 이름의 클래스로 제공하고 있다. 따라서 이 클래스가 해야할 가장  기본적인 일은 GDI 오브젝트를 통해 그래픽에 관련된 옵션을 저장하는 것이다.&lt;br /&gt;&lt;br /&gt;* 윈도우에서 DC 얻기&lt;br /&gt;    CDC *pDC  = GetDC();&lt;br /&gt;    pDC-&gt;Rectangle(100, 100, 100, 100);&lt;br /&gt;     ReleaseDC(pDC);&lt;br /&gt;&lt;br /&gt;* 위의 복잡한 과정을 한번에 끝내기 위해 CClientDC 클래스를 사용&lt;br /&gt;     CClientDC dc(this);&lt;br /&gt;    dc.Rectangle(100, 100, 100, 100);&lt;br /&gt;&lt;br /&gt;위의 this를  매개변수로 넘겨준 것은 현재 윈도우의 DC를 얻겠다는 말이다.&lt;br /&gt;dc를 얻은 후 그래픽을 처리하려면 함수에 dc를 매개변수로 넘기거나 dc의  method를 사용하면 된다.&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family: webdings; font-size: 100%;"&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-2581470500621358913?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/2581470500621358913/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-ccclientdc-dcthis.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2581470500621358913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2581470500621358913'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-ccclientdc-dcthis.html' title='[Visual C++]CClientDC dc(this)'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-6291542326419342471</id><published>2008-12-19T11:40:00.000+09:00</published><updated>2008-12-19T11:42:34.274+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[Visual C++]Double buffering(더블 버퍼링)</title><content type='html'>&lt;p align="justify"&gt;&lt;span class="green"&gt;// 더블 버퍼링을 위한 DC과 &lt;span class="blue"&gt;BITMAP&lt;/span&gt; 생성&lt;br /&gt;&lt;/span&gt;&lt;span class="blue"&gt;CDC&lt;/span&gt; mDC;&lt;br /&gt;&lt;span class="blue"&gt;CBitmap&lt;/span&gt; mBitmap, *pOldBitmap;&lt;br /&gt;&lt;span class="blue"&gt;CRect&lt;/span&gt;  m_rtCtrlSize;&lt;br /&gt;&lt;br /&gt;&lt;span class="green"&gt;// 윈도우 크기를  알아내자.&lt;br /&gt;&lt;/span&gt;GetClientRect(&amp;amp;m_rtCtrlSize);&lt;br /&gt;&lt;br /&gt;&lt;span class="green"&gt;//  MDC와 비트맵에 현재 dc를 정의 및  설정&lt;br /&gt;&lt;/span&gt;mDC.CreateCompatibleDC(&amp;amp;dc);&lt;br /&gt;mBitmap.CreateCompatibleBitmap(&amp;amp;dc,  m_rtCtrlSize.Width(), m_rtCtrlSize.Height());   &lt;br /&gt;pOldBitmap =  mDC.SelectObject(&amp;amp;mBitmap);&lt;br /&gt;&lt;br /&gt;&lt;span class="green"&gt;// 펜 설정&lt;br /&gt;&lt;/span&gt;&lt;span class="blue"&gt;CPen&lt;/span&gt; my&lt;span class="blue"&gt;Pen&lt;/span&gt;,  *pOldPen;&lt;br /&gt;myPen.CreatePen(PS_SOLID, 1, RGB(103, 99, 114)); &lt;span class="green"&gt;// 굵기 1 픽셀의 그레이 솔리드 펜 생성&lt;br /&gt;&lt;/span&gt;pOld&lt;span class="blue"&gt;Pen&lt;/span&gt; =  mDC.SelectObject(&amp;amp;my&lt;span class="blue"&gt;Pen&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span class="green"&gt;// 메모리 dc에 내용을  그리고&lt;br /&gt;&lt;/span&gt;mDC.Rectangle(m_rtCtrlSize);&lt;br /&gt;&lt;br /&gt;&lt;span class="green"&gt;// 일반 dc에서  메모리 dc의 내용을 가져온다.&lt;br /&gt;&lt;/span&gt;dc.BitBlt(0, 0, m_rtCtrlSize.Width(),  m_rtCtrlSize.Height(), &amp;amp;mDC, 0, 0, SRCCOPY);&lt;br /&gt;&lt;br /&gt;&lt;span class="green"&gt;// 설정한  객체를 원상태로  복귀&lt;br /&gt;&lt;/span&gt;mDC.SelectObject(pOldBitmap);&lt;br /&gt;mDC.SelectObject(pOld&lt;span class="blue"&gt;Pen&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;//----------------------------------------------------------------------------------&lt;br /&gt;어떠한  기술이든 정확한 사용 방법에 맞게 사용하자.&lt;br /&gt;내가 볼 때 위의 기술이 가장 정확하게 더블 버퍼링을 사용했다고  생각된다.&lt;br /&gt;참고~~~~&lt;br /&gt;&lt;br /&gt;출처: &lt;a href="http://sarangnamu.net/basic/basic_view.php?no=2809" target="_blank"&gt;http://sarangnamu.net/basic/basic_view.php?no=2809&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family: webdings; font-size: 100%;"&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;/span&gt;&lt;a href="http://sarangnamu.net/basic/basic_view.php?no=2809" target="_blank"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-6291542326419342471?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/6291542326419342471/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-cdouble-buffering.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6291542326419342471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6291542326419342471'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-cdouble-buffering.html' title='[Visual C++]Double buffering(더블 버퍼링)'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-631427989646560703</id><published>2008-12-19T11:39:00.001+09:00</published><updated>2008-12-19T11:39:45.215+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='개인'/><title type='text'>동건이 돌잔치-2008년 10월 12일 저녁 6시 구로 알레스카</title><content type='html'>&lt;img src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_22_0?1222041846.jpg" vspace="5" border="0" hspace="5" /&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;span style="font-family: webdings; font-size: 100%;"&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-631427989646560703?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/631427989646560703/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/2008-10-12-6.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/631427989646560703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/631427989646560703'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/2008-10-12-6.html' title='동건이 돌잔치-2008년 10월 12일 저녁 6시 구로 알레스카'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-296725677898840239</id><published>2008-12-19T11:38:00.000+09:00</published><updated>2008-12-24T14:51:09.123+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[초보자를 위한 Visual C++ 6]에 대한 Study 정리7</title><content type='html'>&lt;p&gt;제 21강. 프린터를 통한 출력&lt;br /&gt;&lt;br /&gt;* WYSIWIG&lt;br /&gt;&lt;br /&gt;* CView class 중 인쇄와 관계된 멤버 함수&lt;br /&gt; -  OnPreparePrinting: 공통 인쇄 대화상자가 화면에 표시되기 전에 호출&lt;br /&gt; - OnBeginPrinting: 프린터를  사용하기 위해 필요한 GDI 자원들이 할당되는 곳&lt;br /&gt; - OnPrepareDC: 출력이 시작되기 전에 페이지 당 한 번씩 호출되는  함수&lt;br /&gt; - OnPaint: 프린터의 장치 컨텍스트에 실제로 출력 작업을 하는 함수&lt;br /&gt; - OnEndPrinting: 모든  페이지가 출력된 다음에, 혹은 출력 작업이 취소된 후에 호출되는 함수(프린터를 사용하기 위해 필요했던 GDI 자원들을 시스템에 반환)&lt;br /&gt;  -&gt; OnPrepareDC와 OnPaint 함수는 페이지마다 한 번씩 호출됨&lt;br /&gt;  -&gt; OnPreparePrinting, OnBeginPrinting 그리고 OnEndPrinting 함수는 인쇄 작업에 필요한 자원의  할당/반환에 관계된 함수이기 때문에 단 한 번씩만 호출됨. 그리고 이 함수들은 AppWizard를 사용하면 기본적으로 만들어  진다.&lt;br /&gt;&lt;br /&gt;* CPrintInfo class(출력물의 현재 상태는 이 class에 의해 표현)&lt;br /&gt; - m_bPreview: 문서를  '미리보기'하고 있는 동안에는 TRUE로 설정&lt;br /&gt; - m_bContinuePrinting: 프린팅 과정을 중단해야 하는 경우에는 FALSE로  설정(즉, 지속해야 하면 TRUE)&lt;br /&gt; - m_nCurPage: 출력 대상 페이지의 번호가 저장되어 있음&lt;br /&gt; - m_rectDraw:  출력 대상 페이지의 크기를 나타내는 사각형 구조체&lt;br /&gt; - SetMinPage: 문서의 첫 페이지 번호를 설정하는 멤버 함수&lt;br /&gt; - SetMaxPage: 문서의 마지막 페이지 번호를 설정하는 멤버 함수&lt;br /&gt; - GetMinPage: 문서의 첫 페이지 번호를 반환하는 멤버  함수&lt;br /&gt; - GetMaxPage: 문서의 마지막 페이지 번호를 반환하는 멤버 함수&lt;br /&gt; - GetFromPage: 출력 대상 영역의 시작  페이지 번호를 반환하는 멤버 함수&lt;br /&gt; - GetToPage: 출력 대상 영역의 마지막 페이지 번호를 반환하는 멤버 함수&lt;br /&gt;&lt;br /&gt;*  OnPreparePrinting 함수&lt;br /&gt; - AppWizard를 사용해서 프로젝트를 만들 때 뷰 클래스에 해당 함수 코드도 자동으로  생성&lt;br /&gt; - 공통 인쇄 대화상자가 표시되기 직전에 호출(프로그래머가 인쇄 대화상자에 표시될 값들을 조정할 수 있도록 해 줌)&lt;br /&gt; -  OnPreparePrinting 함수 안에서 자원을 할당하면 곤란하다. 사용자가 인쇄를 하지 않고 인쇄 대화 상자를 그냥 닫아버리는  경우(Cancel), 그 사실을 통지받을 방법이 없기 때문&lt;br /&gt;&lt;br /&gt;* OnBeginPrinting 함수&lt;br /&gt; - 사용자가 인쇄  대화상자에서 [인쇄] 버튼을 누르는 순간 호출&lt;br /&gt; - 폰트나 브러쉬, 펜 등 인쇄 과정에 필요한 다양한 자원들을 할당하기 딱 좋은  장소&lt;br /&gt;&lt;br /&gt;* OnPrepareDC 함수&lt;br /&gt; - 한 페이지의 출력물이 만들어지기 전이나 한 페이지의 출력물이 화면에 표시되기 전에  실행(프린터에 실제 인쇄가 이뤄지고 있는 도중에 호출된 것이 아닐 경우, 인자로 넘어온 CPrintInfo 포인터는 NULL일 것임)&lt;br /&gt; -  다음 페이지를 계속 인쇄해야 하는 경우에는 CPrintInfo::m_bContinuePrinting을 TRUE로 설정해야 함&lt;br /&gt;&amp;nbsp;&amp;nbsp;pInfo-&gt;m_bContinuePrinting = TRUE;&lt;br /&gt; - OnPrepareDC를 재정의하여  bContinuePrinting 멤버 변수의 값을 TRUE로 바꿔 주는 코드를 넣지 않을 경우, 기본적으로는 항상 한 페이지만 출력될  것임&lt;br /&gt;&lt;br /&gt;* OnPrint 함수&lt;br /&gt; - 프린터에 대한 OnDraw 함수&lt;br /&gt; - 뷰 영역에는 표시되지 않는 정보들(페이지  번호, 머리말, 꼬릿말, 특수 폰트를 사용한 텍스트)을 인쇄하고자 하는 경우, OnPrint는 재정의되어야 한다.&lt;br /&gt; - 프린터에 인쇄를  할 때는 맵 모드 MM_TRIPS가 사용된다.&lt;br /&gt;  -&gt; 1 트윕(twip)은 1/20 포인트(point)이다. 1 포인트가  1/72인치이므로, 결국 1 인치는 1440 트윕이다.&lt;br /&gt;&lt;br /&gt;* OnEndPrinting 함수&lt;br /&gt; - 인쇄 과정이 전부 끝났을 때  호출&lt;br /&gt; - OnBeginPrinting 함수에서 할당했던 자원을 반환&lt;br /&gt;&lt;br /&gt;*GetDeviceCaps를 사용하여 BitBlt가  지원되는 장치인지를 알아보는 사례&lt;br /&gt;&lt;pre&gt;    int nRasterFlags =  pDC-&gt;GetDeviceCaps(RASTERCAPS);&lt;br /&gt;&lt;br /&gt;    if( nRasterCaps &amp;amp; RC_BITBLT  )&lt;br /&gt;    {&lt;br /&gt;        // BitBlt가 지원되는 장치임&lt;br /&gt;    }&lt;br /&gt;    else&lt;br /&gt;    {&lt;br /&gt;        // BitBlt가 지원되지 않는 장치임&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt; - 이 함수는 프린터를 비롯한 어떤 종류의 장치에  대해서도 사용할 수 있으며, 장치에 대한 거의 모든 종류의 정보를 가져옴&lt;br /&gt;&lt;br /&gt;* 인쇄 관련 자원들의 초기화 및 삭제&lt;br /&gt;&lt;pre&gt;     CMFCPrintView::CMFCPrintView()  // 생성자&lt;br /&gt;    {&lt;br /&gt;        COLOREF clrBlack =  GetSysColor(COLOR_WINDOWFRAME);&lt;br /&gt;        m_pFntBold = NULL;&lt;br /&gt;        m_pFntBanner = NULL;&lt;br /&gt;        m_pFntHighlight = NULL;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;     CMFCPrintView::~CMFCPrintView()  // 소멸자&lt;br /&gt;    {&lt;br /&gt;        // new를 통해 생성되는  자원들이므로&lt;br /&gt;        // 반드시 delete 해주어야 함&lt;br /&gt;        delete m_pFntBold;&lt;br /&gt;        delete m_pFntBanner;&lt;br /&gt;        delete m_pFntHighlight;&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt; - GDI 객체를  생성할 때는 관습적으로 '필요한 시점에 생성한다'는 규칙을 따른다. 따라서 위의 생성자에서는 각각의 포인터 변수의 값을 NULL로 설정하기만  하였다. 이 포인터 변수에 객체가 할당되는 것은 실제 인쇄 작업이 시작되는 순간임&lt;br /&gt; - 위의 소멸자에 delete 작업을 하는 것은  비정상적 종료 시 안전성을 유지하기 위한 것임(NULL 포인터를 지울 경우 delete 연산자는 아무 일도 하지 않음)&lt;br /&gt;&lt;br /&gt;* 여러  페이지를 출력하는 경우, OnPrepareDC 함수가 각각의 페이지가 출력되기 전에 호출됨. 이 함수를 재정의하지 않으면 한 페이지만  출력됨&lt;br /&gt;&lt;pre&gt;    void CMFCPrintView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)&lt;br /&gt;     {&lt;br /&gt;        CView::OnPrepareDC(pDC, pInfo);&lt;br /&gt;&lt;br /&gt;        if( pInfo  )&lt;br /&gt;        {&lt;br /&gt;            if( pInfo-&gt;m_nCurPage &lt;&gt;GetToPage() )&lt;br /&gt;                pInfo-&gt;m_bContinuePrinting =  TRUE;&lt;br /&gt;            else&lt;br /&gt;                pInfo-&gt;m_bContinuePrinting =  FALSE;&lt;br /&gt;        }&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt; - 여기서 할 수 있는 일은 인쇄에 사용될 장치 컨텍스트를 조작하는 정도이며, 여기서  실제 인쇄 작업을 하려고 해서는 안됨&lt;br /&gt;&lt;br /&gt;* GPF(General Protection Fault)를 비롯한 예기치 못한 응용 프로그램  오류로 OnEndPrinting 함수가 수행되지 못하게 될 수 있으므로, 소멸자 안에도 자원 반환과 관련된 코드를 넣어야 함&lt;br /&gt;&lt;br /&gt;*  자원 반환 작업은 OnEndPrinting 함수 안에서&lt;br /&gt;&lt;pre&gt;    void CMFCPrintView::OnEndPrinting(CDC*  pDC, CPrintInfo* pInfo)&lt;br /&gt;    {&lt;br /&gt;        delete m_pFntBold;&lt;br /&gt;        delete  m_pFntBanner;&lt;br /&gt;        delete m_pFntHighlight;&lt;br /&gt;&lt;br /&gt;        // 소멸자 안에도 폰트  객체를 삭제하는 코드들이 들어있으므로,&lt;br /&gt;        // 나중에 소멸자가 호출될 때 한 번 삭제된 객체를 또 다시  삭제하려는&lt;br /&gt;        // 시도를 하지 않게 하려면, 포인터 변수들의 값을 반드시 NULL로 바꾸어 주어야 한다.&lt;br /&gt;        // 이렇게 하지 않을 경우 프로그램이 정상 종료될 때 GPF가 발생하게 될 것이다.&lt;br /&gt;        m_pFntBold =  NULL;&lt;br /&gt;        m_pFntBanner = NULL;&lt;br /&gt;        m_pFntHighlight =  NULL;&lt;br /&gt;&lt;br /&gt;        CView::OnEndPrinting(pDC, pInfo);&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;* 출력물의 용지  방향을 가로로 긴 쪽에 맞춰지도록(landscape) 변경&lt;br /&gt; - 다음 코드를 CMFCPrintView::OnPrepareDC의 제일  윗부분에 추가한다.&lt;br /&gt;&lt;pre&gt;    if( pDC-&gt;IsPrinting() )&lt;br /&gt;    {&lt;br /&gt;        LPDEVMODE  pDevMode;&lt;br /&gt;        pDevMode = pInfo-&gt;m_pPD-&gt;GetDevMode();&lt;br /&gt;        pDevMode-&gt;dmOrientation = DMORIENT_LANDSCAPE;&lt;br /&gt;        pDC-&gt;ResetDC(pDevMode);&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;제 22강. MFC를 사용한 자료 저장 방법&lt;br /&gt;&lt;br /&gt;* 객체의  속성들을 저장하거나 읽어올 수 있을 때, 다시 말해 객체를 하드 디스크와 같은 공간에 기록했다가 나중에 다시 읽어 복원할 수 있을 때, 그  객체는 지속성(persistence 혹은 persistency)을 갖는다고 함.&lt;br /&gt; - 지속성을 지원하는 저장 매체에 저장된 자료는  프로그램이 종료되더라도 나중에 다시 사용할 수 있음&lt;br /&gt;&lt;br /&gt;* 직렬화(serialization): 객체의 상태를 저장하는 행위&lt;br /&gt; -  MFC 적으로 설명하자면, 직렬화는 CDocument로부터 계승되어 만들어진 클래스가 저장소(archive)에 자료를 쓰거나 읽기 위해 사용하는  저장 방법. 이때 저장소는 통상 파일(file)이 사용됨.&lt;br /&gt; - 객체가 직렬화될 때, 객체의 자료헝에 대한 정보도 저장소에 같이  기록됨.객체 복원 과정(deserialization)은 직렬화의 역순으로 진행. 프로그램은 입력 스트림(input stream)으로부터 객체의  내용을 읽어 그 객체를 복원하게 됨.&lt;br /&gt; - 객체를 저장할 때 직렬화를 사용하게 되면 자료 저장 함수를 직접 만들어 사용하는 것보다 훨씬  유연한 방식으로 입출력을 처리할 수 있음.&lt;br /&gt; - 어떤 객체가 더 작은 객체들로 구성되어 있는 경우, 원래 객체를 직렬화하면 그 객체에  포함된 더 작은 객체들도 전부 직렬화됨.&lt;br /&gt;&lt;br /&gt;* 직렬화를 위한 MFC 클래스들&lt;br /&gt; - CArchive: 대개의 경우 파일. 지속성  객체들은 CArchive형의 객체에 대해서 직렬화되거나 복원되게 된다.&lt;br /&gt; - CObject: CArchive 객체에 직렬화를 하는테 필요한  모든 인터페이스들이 이 객체에 정의되어 있음.&lt;br /&gt;&lt;br /&gt;* 객체들을 직렬화하는 벙법&lt;br /&gt; - 저장하려는 객체의 자료형이 CObject  클래스를 계승하고 있다면, 이 객체의 Serialize 멤버 함수를 호출&lt;br /&gt;&amp;nbsp;&amp;nbsp;myObject.Serialize(ar);&lt;br /&gt;   -&gt; MFC가 기본적으로 제공하는 직렬화 기능의 덕을 보려면 클래스를 정의할 때 CObject 클래스를 반드시 사용해야 한다.&lt;br /&gt;   -&gt; 가상 함수 Serialize를 이용하여 객체의 내용을 CArchive형 객체에 기록할 수도 있고, 그 반대의 과정을 통해 객체의 원래  내용을 복원할 수도 있다.&lt;br /&gt;  -&gt; CObject를 계승하여 정의된 클래스들로부터 만들어진 객체들은 CObject형의 포인터를 통해  직렬화되거나 복원될 수 있음.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CObject* pObj = GetNextObject();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pObj =  Serialize(ar);&lt;br /&gt; - 저장하려는 객체의 자료형이 CObject 클래스를 계승하고 있지 않을 경우&lt;br /&gt;&amp;nbsp;&amp;nbsp;ar  &lt;&lt; rcWnd;&lt;br /&gt;  -&gt; 삽입 연산자('&lt;&lt;')를 사용하면 CArchive 객체에 대한 객체를 직렬화할 수  있음&lt;br /&gt;  -&gt; 추출 연산자('&gt;&gt;')를 사용하면 CArchive 객체로부터 객체의 상태를 복원할 수 있음&lt;br /&gt;&lt;br /&gt;*  CArchive 클래스&lt;br /&gt; - 일반적인 객체 저장소를 모델링하고자 할 때 사용하는 클래스&lt;br /&gt; - 대부분의 경우, CArchive 객체는  디스크 상의 파일에 연결(저장소 객체와 유사한 인터페이스를 제공하는 다른 객체에 연결시킬 수도 있음)&lt;br /&gt; - CArchive 객체를 생성할  때 입력용인지 출력용인지 반드시 명시해야 함&lt;br /&gt; - 하나의 객체가 입력용이나 출력용으로 동시에 사용될 수는 없음.&lt;br /&gt;&lt;br /&gt;*  CArchive::IsStoring 멤버 함수를 사용해 직렬화를 구현하는 사례&lt;br /&gt;&lt;pre&gt;     CMyObject::Serialize(CArchive&amp;amp; ar)&lt;br /&gt;    {&lt;br /&gt;        if( ar.IsStoring()  )&lt;br /&gt;            // 객체의 내용을 ar에 기록&lt;br /&gt;        else&lt;br /&gt;            // 객체의 상태를  ar에서 읽어 복원&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;* 직렬화 매크로 함수&lt;br /&gt; - CObject를 계승하여 지속성 클래스를 만들고자 하는 경우,  DECLARE_SERIAL과 IMPLEMENT_SERIAL의 두 매크로 함수를 반드시 사용하여야 함.&lt;br /&gt; - IMPLEMENT_SERIAL  매크로 함수는 세 개의 인자를 받음. 통상 멤버 함수의 코드들보다 앞에 위치.&lt;br /&gt;  -&gt; 지속성 클래스의 이름&lt;br /&gt;  -&gt;  지속성 클래스의 직계 상위 클래스의 이름&lt;br /&gt;  -&gt; 스키마 번호(버전 번호라고도 함): 객체를 직렬화하거나 복원할 때 사용되는 클래스  배치도의 버전 번호&lt;br /&gt;  -&gt; 객체의 전반적인 직렬화 과정이 변경될 경우(멤버 변수 추가, 직렬화 순서 변경), 이 스키마 번호를  반드시 증가시켜 줘야 한다.&lt;br /&gt;&lt;br /&gt;* MFC가 제공하는 대부분의 컬렉션 클래스는 직렬화가 가능 - 컬렉션 클래스를 사용하면 다량의 정보를  쉽게 저장하고 복원할 수 있음&lt;br /&gt; - 템플릿 기반의 컬렉션 클래스에 의해 만들어진 컬렉션 객체를 직렬화하면 비트 단위의 쓰기 연산이  발생하고, 복원할 때도 역시 비트 단위의 읽기 연산이 발생 -&gt; 포인터를 템플릿 기반의 컬렉션 객체에 저장하여 사용할 경우, 그 직렬화  과정을 담당할 도움 함수(일반 전역 함수)를 별도로 구현하여 사용&lt;br /&gt; - 템플릿 컬렉션 객체를 직렬화할 때 사용되는 도움 함수는  SerializeElements임.&lt;br /&gt;&lt;pre&gt;    void AFXAPI SerializeElements(CArchive&amp;amp; ar,      // 객체에 대한 참조. Serialize 함수의 경우와  같음&lt;br /&gt;                                                 CUser** pUser,  // 컬렉션  객체에 저장될 객체의 주소.&lt;br /&gt;                                                 int  nCount)        // 직렬화될 객체의 개수&lt;br /&gt;    {&lt;br /&gt;        for( int i = 0; i &lt; nCount;  i++ )&lt;br /&gt;        {&lt;br /&gt;            if( ar.IsStoring() )&lt;br /&gt;            {&lt;br /&gt;                CUser* pStoredUser = *pUser;&lt;br /&gt;                pStoredUser-&gt;Serialize(ar);&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                CUser* pNewUser = new  CUser;&lt;br /&gt;                pNewUser-&gt;Serialize(ar);&lt;br /&gt;                *pUser  = pNewUser;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;* 문서의 탄생부터 소멸까지:  creating -&gt; modifying -&gt; storing/serializing -&gt;  closing-&gt;loading/deserializing&lt;br /&gt; - 문서의 생성(creating): OnNewDocument 함수를 통해  문서 객체를 초기화&lt;br /&gt;  -&gt; DeleteContents 함수: 문서 객체의 내용을 처음 성태로 되돌리는 역할&lt;br /&gt;&lt;br /&gt;* 하나  이상의 순수 가상 함수를 갖는 클래스를 추상 클래스(abstract class)라고 함.&lt;br /&gt; - 직렬화하려고 하는 객체의 상위 클래스에 추상  클래스가 존재하는 경우, 해당 객체는 직렬화될 수 없음&lt;br /&gt;  -&gt; 추상 클래스의 경우 그에 대한 객체가 만들어질 수 없기  때문임.&lt;br /&gt;&lt;br /&gt;* 직렬화 매크로는 클래스 선언부 어디에라도 둘 수 있지만, 접근 권한 설정과 관련된 키워드는 전부 그 아래에 오도록 해야  한다는 것이 규칙&lt;br /&gt; - public, private, protected 등의 키워드는 전부 그 아래쪽에 두어야 함.&lt;br /&gt;&lt;br /&gt;제  23강. 폼 뷰&lt;br /&gt;&lt;br /&gt;* 폼 뷰: 컨트롤들을 포함할 수 있는 뷰(대화상자와 유사)&lt;br /&gt; - 폼 뷰는 대화상자처럼 모달 형태로 실행될 수  없음 -&gt; 폼 뷰도 뷰이기 때문에 동시에 병렬적으로 수행되어야 함&lt;br /&gt; - 여러 개의 서로 다른 폼 뷰 윈도우가 동시에 열릴 수 있기  때문에, 프로그램의 유연성이 한층 증대됨&lt;br /&gt; - 문서/뷰 구조가 제공하는 기존 인터페이스들을 그대로 사용&lt;br /&gt;&lt;br /&gt;* MFC 뷰 관련  클래스&lt;br /&gt; - 스크롤 뷰: ScrollView(스크롤바가 달린 뷰)&lt;br /&gt; - 에디트 뷰:  CEditView(에디트 컨트롤이 달린  뷰)&lt;br /&gt; - 리치 에디트 뷰: CRichEditView(리치 에디트 컨트롤이 달린 뷰)&lt;br /&gt; - 리스트 뷰: CListView(리스트 뷰  컨트롤이 달린 뷰)&lt;br /&gt; - 트리 뷰: CTreeView(트리 뷰 컨트롤이 달린 뷰)&lt;br /&gt; - 폼 뷰: CFormView(대화상자처럼  기능하는 뷰)&lt;br /&gt;&lt;br /&gt;* 스크롤 뷰: 화면상에 표시되는 영역보다 실제 영역이 더 커질 수 있는 뷰&lt;br /&gt; - 윈도우 크기에 따라 가려지는  부분이 생길 수 있는 뷰&lt;br /&gt;&lt;br /&gt;* 에디트 뷰: 에디트 컨트롤이 달린 뷰&lt;br /&gt; - 인쇄기능 지원&lt;br /&gt; - 클립보드를 사용한  자르기(cut), 붙이기(paste), 복사(copy) 기능들을 지원&lt;br /&gt; - 찾기(find)와 바꾸기(replace) 기능 지원&lt;br /&gt; -  에디트 뷰는 WYSIWYG 편집 기능을 지원하지 않는다. 에디트 뷰에서 사용할 수 있는 폰트는 한 가지뿐이며, 출력 결과도 편집시 보는 화면과  100% 일치하지 않는다.&lt;br /&gt;&lt;br /&gt;* 폼 뷰에 사용되는 대화상자 자원의 경우, 다음 속성의 값들이 반드시 괄호 안의 값과 일치해야  함&lt;br /&gt; - Style(Child), Border(None), Visible(Unchecked),  Titlebar(Unchecked)&lt;br /&gt;&lt;br /&gt;* MDI 프로그램에서 뷰 클래스는 문서 클래스와 CMultiDocTemplate 객체를 통해  연결됨&lt;br /&gt;&lt;br /&gt;* 뷰 윈도우가 대화상자 자원의 크기와 정확히 일치히도록 하려면 다음 두 줄의 코드를  CFormTest::OnInitialUpdate에 추가해야 함.&lt;br /&gt;&amp;nbsp;&amp;nbsp;ResizeParentToFit(FALSE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;ResizeparentToTit();&lt;br /&gt; - 처음 호출했을 때 뷰의 크기가 확대될 것이고, 두 번째 호출했을 때 그 크기가 대화상자 크기에  맞게 줄어들게 될 것임&lt;br /&gt;&lt;br /&gt;* PreCreateWindow 함수를 사용하여 프레임 윈도우의 형태 바꾸기&lt;br /&gt;&lt;pre&gt;    BOOL  CChildFram::PreCreateWindow(CREATESTRUCT&amp;amp; cs)&lt;br /&gt;    {&lt;br /&gt;        // 크기 조정  가능 프레임과 최대화 아이콘을 비활성화시킴&lt;br /&gt;        cs.style &amp;amp;= ~WS_THICKFRAME;&lt;br /&gt;        cs.style &amp;amp;= ~WS_MAXIMIZEBOX;&lt;br /&gt;&lt;br /&gt;        return  CMDIChildWnd::PreCreateWindow(cs);&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt; - '&amp;amp;=' 연산자: C++의 비트 단위 AND  연산자(bitwise AND operator)&lt;br /&gt;  -&gt; 변수의 특정 비트의 값을 0이나 1로 변경하고자 할 때 사용&lt;br /&gt; - '~'  연산자: 비트 단위 부정(NEGATE) 연산자&lt;br /&gt;  -&gt; 특정 비트의 값을 반전시키고자 할 때 사용&lt;br /&gt;&lt;br /&gt;* 폼 뷰 윈도우 색  바꾸기&lt;br /&gt;&lt;pre&gt;    HBRUSH CFormTest::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT  nCtlColor)&lt;br /&gt;    {&lt;br /&gt;        HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd,  nCtlColor);&lt;br /&gt;&lt;br /&gt;        if( nCtlColor == CTLCOLOR_DLG )&lt;br /&gt;        {&lt;br /&gt;            hbr = CreateSolidBrush(RGB(0, 255, 0));  // 녹색으로 전환&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        return hbr;&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;* 폼 뷰를 초기화하는 작업은 OnInitialUpdate,  OnUpdate에서 이뤄짐.&lt;br /&gt;&lt;br /&gt;제 24강. ActiveX 컨트롤 만들기&lt;br /&gt;&lt;br /&gt;* COM에서 말하는  인터페이스(Interface): 함께 구현되어야 하는 관련 함수들의 집합&lt;br /&gt; - 예를 들어 IUnknown: 이 인터페이스는 모든 COM  객체라면 전부 가져야 하는 인터페이스&lt;br /&gt;&lt;br /&gt;* ActiveX 컨트롤은 그 속성과 이벤트, 그리고 메소드를 통해 사용하게 됨.&lt;br /&gt; - ActiveX 컨트롤이 놓일 호스트 윈도우는 컨테이너(container)라고 부름&lt;br /&gt;&lt;br /&gt;* ActiveX 속성&lt;br /&gt; - 환경  속성(Ambient Properties): 컨테이너가 컨트롤에 제공하는 속성&lt;br /&gt;  -&gt; 컨트롤은 이 속성들을 사용해 속성이 놓일  '환경'에 적응하게 됨.&lt;br /&gt;  -&gt; 환경 속정 중 널리 사용되는 것은 컨테이너의 배경색, 기본 폰트, 전경색 등...&lt;br /&gt; - 확장  속성(Extended Properties): 컨테이너측에서 구현하는 속성(마치 컨트롤에 의해 제공되는 속성인 것처럼 보임)&lt;br /&gt;  -&gt;  컨테이너에 포함된 컨트롤들간의 탭 순서 값은 속성이 바로 확장 속성의 예&lt;br /&gt; - 스톡 속성(Stock Properties): ActiveX  컨트롤 개발 툴깃에 의해 만들어진 컨트롤 속성&lt;br /&gt;  -&gt; 컨트롤의 폰트, 캡션 문자열, 전경색, 후면색 등...&lt;br /&gt; - 사용자 정의  속성(Custom Properties): 프로그래머가 구현하는 여러 가지 속성&lt;br /&gt;&lt;br /&gt;* 이벤트: 컨트롤의 컨테이너에게 통지  메시지(notification message)를 보내는 수단&lt;br /&gt; - 스톡 이벤트(Stock Event): ActiveX 컨트롤 개발 툴킷에  의해 만들어지는 이벤트&lt;br /&gt;  -&gt; FireError와 같은 함수를 호출하여 생성&lt;br /&gt; - 사용자 정의 이벤트(Custom  Event): 프로그래머가 직접 구현하는 이벤트&lt;br /&gt;&lt;br /&gt;* 메소드: IDispatch 인터페이스를 통해 사용하게 되는 컨트롤에 정의된  함수&lt;br /&gt; - 오토메이션(automation)이라고 불리는 기법을 통해 컨트롤 외부로 공개&lt;br /&gt;&lt;br /&gt;* 서브클래싱(Subclassing):  이미 존재하는 윈도우나 컨트롤의 기능을 차용하기 위한 프로그래밍 방법&lt;br /&gt; - 서브클래싱 대상이 되는 윈도우나 컨트롤을  수퍼클래스(superclass)라고 불림&lt;br /&gt;&lt;br /&gt;* ActiveX 컨트롤 개발을 지원하는 MFC 클래스&lt;br /&gt; - COleControlModule: ActiveX 컨트롤 모듈을 관리하는 클래스(CWinApp와 비슷한 역할)&lt;br /&gt; - COleControl:  실제 컨트롤 윈도우를 나타내는 기반 클래스&lt;br /&gt;  -&gt; CWnd를 계승하여 만들어진 클래스&lt;br /&gt;  -&gt; 컨테이너와 통신하는데  필요한 ActiveX 기능들을 추가로 더 가지고 있음&lt;br /&gt; - COlePropertyPage: 컨트롤의 속성 페이지를 관리하기 위해 사용되는  기반 클래스&lt;br /&gt;&lt;br /&gt;* ActiveX 컨트롤의 속성을 정의하여 외부로 노출할 때는 가급적 그 속성을 스톡 속성으로 정의하는 것이  바람직&lt;br /&gt; - 컨트롤을 사용하기 좀 더 편리해짐&lt;br /&gt; - 컨트롤을 구현하기 쉬워짐&lt;br /&gt;&lt;br /&gt;* 컨트롤이 가능한 모든 폰트를 사용할 수  있도록 하려면, 해당 컨트롤에 표준 폰트 속성 페이지를 추가&lt;br /&gt; - 유의할 것은 새로운 PROPPAGEID 매크로를 추가할 경우,  BEGIN_PROPPAGEIDS의 두 번째 인자의 값을 하나 증가시켜야 함.&lt;br /&gt;&lt;br /&gt;* 표준 폰트 속성 페이지를 OleEdit에 연결하는  방법&lt;br /&gt;&lt;pre&gt;    BEGIN_PROPAGEIDS(COleEditCtrl, 2)  // 변경&lt;br /&gt;         PROPPAGEID(COleEditPropPage::guid)&lt;br /&gt;         PROPPAGEID(CLSID_CFontPropPage)   // 추가&lt;br /&gt;    END_PROPPAGEIDS(COleEditCtrl)&lt;/pre&gt;&lt;br /&gt;* 속성 및 메소드에 대한 테스트 방법&lt;br /&gt; - 모든  속성과 메소드의 목록을 보여주는 오토메이션 인터페이스를 통해 테스트하는 방법&lt;br /&gt; - 컨트롤의 속성 페이지를 통한 테스트&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: webdings; font-size: 100%;"&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-296725677898840239?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/296725677898840239/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-6-study-7.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/296725677898840239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/296725677898840239'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-6-study-7.html' title='[초보자를 위한 Visual C++ 6]에 대한 Study 정리7'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-467729096032894715</id><published>2008-12-19T11:36:00.000+09:00</published><updated>2008-12-19T11:40:29.605+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='개인'/><title type='text'>[개인]생일</title><content type='html'>&lt;p align="justify"&gt;9월 13일...&lt;br /&gt;&lt;br /&gt;내 생일이다.&lt;br /&gt;참... 어떻게 가는지는 모르겠다만 시간은 정신없이 꾸준하게  흘러 간다.&lt;br /&gt;&lt;br /&gt;뭘 한게 있다고 벌써 30이다. 만으로는 29...&lt;br /&gt;너무 헛되이 시간이 흘러가는 건 아닌지  모르겠다.&lt;br /&gt;&lt;br /&gt;정신차려야 하는데... 요즘은 참 난감하다.&lt;br /&gt;여기저기 민폐만 끼치고 있는 것 같고..  부끄럽네.&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 495px; height: 409px;" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_10?1221208899.jpg" width="799" border="0" height="532" /&gt;&lt;br /&gt;&lt;br /&gt;내 생일 케이크... 초가 너무 많다... ;;&lt;br /&gt;&lt;img style="width: 589px; height: 355px;" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_7?1221208899.jpg" width="800" border="0" height="531" /&gt;&lt;br /&gt;아... 얼굴엔 주름, 옷 사이로 x배의 실루렛이... -_ㅜ&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('46376793',%20'23857432')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_13?1221208899.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_2?1221208899.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('46376793',%20'23857431')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_12?1221208899.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('46376793',%20'23857422')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_3?1221208899.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;박용정 주임연구원님, 손희곤 선임연구원님, 그리고 아자씨... ;;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('46376793',%20'23857425')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_6?1221208899.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('46376793',%20'23857434')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_15?1221208899.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('46376793',%20'23857419')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_0?1221208899.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('46376793',%20'23857430')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_11?1221208899.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('46376793',%20'23857424')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_5?1221208899.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;허걱..... 걸신이 들렸나? 뱃살을 좀 생각하라구 아자씨... &lt;img src="http://img.yahoo.co.kr/blog/p2/images/emo/17.gif" align="absmiddle" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('46376793',%20'23857435')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_16?1221208899.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;오늘부로 퇴사... 우째서...?&lt;br /&gt;음... 전에 있던 회사가 너무 험했는지... 우리 회사  나가는 사람 이해가 안됨... ^^;;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('46376793',%20'23857436')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_17?1221208899.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('46376793',%20'23857433')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_14?1221208899.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('46376793',%20'23857427')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_8?1221208899.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;크크... 그렇게 사진을 피하시더니... 나오셨넹...&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('46376793',%20'23857420')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_1?1221208899.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('46376793',%20'23857423')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_4?1221208899.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:wiki_img_view_v2('46376793',%20'23857428')"&gt;&lt;img alt="원본 크기의 사진을 보려면 클릭하세요" src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/3/img_3_20_9?1221208899.jpg" width="756" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;으어~~~~ 왜 저러구 나오는겨... 심하당...&lt;br /&gt;이로써 인피니트에서의 내 첫 생일 파티  끝~~!!&lt;br /&gt;ㅋ~~ 추하당...&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style=";font-family:webdings;font-size:100%;"  &gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-467729096032894715?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/467729096032894715/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_7815.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/467729096032894715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/467729096032894715'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_7815.html' title='[개인]생일'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-8634738059435152439</id><published>2008-12-19T11:34:00.001+09:00</published><updated>2008-12-24T14:51:56.432+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[초보자를 위한 Visual C++ 6]에 대한 Study 정리6</title><content type='html'>&lt;p&gt;제 18강. 트리 뷰 컨트롤&lt;br /&gt;&lt;br /&gt;* 트리 뷰 사용 방법&lt;br /&gt; - 대화상자 안에 트리 뷰 컨트롤을 놓고 사용하는  방법(CTreeCtrl class): ClassWizard를 사용해 트리 뷰 컨트롤에 연결시킴&lt;br /&gt; - 트리 뷰 컨트롤을 뷰 윈도우로 사용하는  방법(CTreeView class - CView의 하위 class인 CCtrlView class의 하위 class)&lt;br /&gt;  -&gt; 화면  전영역을 트리뷰 컨트롤이 덮고 있는 뷰&lt;br /&gt;&amp;nbsp;&amp;nbsp;CTreeCtrl&amp;amp; tree = GetTreeCtrl();&lt;br /&gt;  -&gt;  CTreeCtrl tree = GetTreeCtrl()와 같이 할 경우, 반환된 CTreeCtrl형 객체의 복사본이 tree에 저장될 것이므로  그렇게 하면 곤란하다. 또한, 참조형 변수는 선언시에 반드시 초기화되어야 하므로, CTreeCtrl&amp;amp; tree; tree =  GetTreeCtrl()처럼 할 수도 없다.&lt;br /&gt;&lt;br /&gt;* 트리 뷰 컨트롤에 항목 추가하기&lt;br /&gt;&lt;pre&gt;    void  CTreeExView::OnInitialUpdate()&lt;br /&gt;     {&lt;br /&gt;        CTreeView::OnInitialUpdate();&lt;br /&gt;        CTreeCtrl&amp;amp; tree =  GetTreeCtrl();&lt;br /&gt;&lt;br /&gt;        HTREEITEM hChapter = tree.InsertItem("Chapter  1");&lt;br /&gt;        tree.InsertItem("What",  hChapter);&lt;br /&gt;        tree.InsertItem("Why",  hChapter);&lt;br /&gt;        tree.InsertItem("How", hChapter);&lt;br /&gt;&lt;br /&gt;        hChapter  = tree.InsertItem("Chapter 2");&lt;br /&gt;        tree.InsertItem("What",  hChapter);&lt;br /&gt;        tree.InsertItem("Why",  hChapter);&lt;br /&gt;        tree.InsertItem("How", hChapter);&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;* 트리 뷰  컨트롤에 스타일 적용하기&lt;br /&gt; - TVS_HASLINES: 부모와 자식 항목 사이를 선으로 연결한다.&lt;br /&gt; - TVS_LINESATROOT:  트리 뷰 컨트롤의 root 레벨 항목들 사이에도 선이 그려지도록 만든다. TVS_HASLINE이 설정되지 않은 경우에는 동작하지  않는다.&lt;br /&gt; - TVS_HASBUTTON: + 혹은 - 버튼이 항목 레이블 옆에 표시되도록 한다.&lt;br /&gt; - TVS_EDITLABELS:  사용자가 트리 뷰 항목의 레이블을 수정할 수 있도록 한다.&lt;br /&gt; - 트리 뷰 스타일 변경&lt;br /&gt;&lt;pre&gt;    BOOL  CTreeExView::PreCreateWindow(CREATESTRUCT&amp;amp; cs)&lt;br /&gt;    {&lt;br /&gt;        cs.style  |= (TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS);&lt;br /&gt;&lt;br /&gt;        return  CTreeView::PreCreateWindow(cs);&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;* 컨트롤 내에 저장된 항목들이 참조되는 방식&lt;br /&gt; -  리스트 뷰 컨트롤: 각 항목들에 부여된 첨자값을 사용해 참조&lt;br /&gt; - 트리 뷰 컨트롤: 저장된 항목을 참조하려면 HTREEITEM형의 핸들을  사용해야 한다.&lt;br /&gt;&lt;br /&gt;* 트리 뷰 컨트롤의 각 항목 옆에 비트맵 표시&lt;br /&gt;&lt;pre&gt;    void  CAboutDlg::OnInitialUpdate()&lt;br /&gt;     {&lt;br /&gt;        CDialog::OnInitDialog();&lt;br /&gt;        m_imageList.Create(IDB_TREE,  14, 1, RGB(255, 0, 0));&lt;br /&gt;        m_tree.SetImageList(&amp;amp;m_imageList,  TVSIL_NORMAL);&lt;br /&gt;&lt;br /&gt;        HTREEITEM hChapter;&lt;br /&gt;&lt;br /&gt;        hChapter =  tree.InsertItem("Chapter 1", 0, 0);&lt;br /&gt;        tree.InsertItem("What", 1, 1,  hChapter);&lt;br /&gt;        tree.InsertItem("Why", 1, 1,  hChapter);&lt;br /&gt;        tree.InsertItem("How", 1, 1,  hChapter);&lt;br /&gt;&lt;br /&gt;        hChapter = tree.InsertItem("Chapter 2", 0,  0);&lt;br /&gt;        tree.InsertItem("What", 1, 1,  hChapter);&lt;br /&gt;        tree.InsertItem("Why", 1, 1,  hChapter);&lt;br /&gt;        tree.InsertItem("How", 1, 1,  hChapter);&lt;br /&gt;&lt;br /&gt;        return TRUE;&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt; - tree.InsertItem("What", 1,  1, hChapter);&lt;br /&gt;  -&gt; 첫 번째 인자: 삽입될 항목의 레이블 텍스트&lt;br /&gt;  -&gt; 두 번째 인자: 이미지 리스트 상의  첨자값(해당 항목이 선택되지 않았을 경우의 이미지)&lt;br /&gt;  -&gt; 세 번째 인자: 이미지 리스트 상의 첨자값(해당 항목이 선택되었을 경우의  이미지)&lt;br /&gt;  -&gt; 네 번째 인자: 부모 항목에 대한 핸들&lt;br /&gt; - m_imageList.Create(IDB_TREE, 14, 1,  RGB(255, 0, 0));&lt;br /&gt;  -&gt; 첫 번째 인자: 이미지 리스트에 추가할 비트맵 이미지의 자원 ID&lt;br /&gt;  -&gt; 두 번째  인자: 해당 이미지를 몇 픽셀 단위로 쪼개서 이미지 리스트에 추가할 것인지를 지정하는 값&lt;br /&gt;  -&gt; 세 번째 인자: 이미지가 리스트에  추가될 때마다 리스트의 길이가 얼마만큼 늘어날 지를 지정하는 값&lt;br /&gt;  -&gt; 네 번째 인자: 리스트에 이미지를 추가할 때, 그 중 적색  값을 갖는 픽셀들로 마스크 비트맵을 생성하라는 뜻의 인자&lt;br /&gt;&lt;br /&gt;* 트리 뷰 컨트롤에서 항목 삭제하기&lt;br /&gt; -  CTreeCtrl::DeleteItem&lt;br /&gt;  -&gt; 트리 뷰 컨트롤에 표시된 항목들을 삭제&lt;br /&gt;&amp;nbsp;&amp;nbsp;BOOL fResult =  m_tree.DeleteItem(hTreeItem);&lt;br /&gt; - 트리 뷰 컨트롤에 표시된 모든 항목을 삭제하려면  CTreeCtrl::DeleteAllItems 호출&lt;br /&gt;&amp;nbsp;&amp;nbsp;BOOL fResult =  m_tree.DeleteAllItems();&lt;br /&gt;&lt;br /&gt;* 레이블 편집 기능 추가&lt;br /&gt; - 이 기능을 사용하려면 트리 뷰 컨트롤의 Edit  labels 속성을 설정해주어야 한다.&lt;br /&gt; - 발생 message&lt;br /&gt;  -&gt; TVN_BEGINLABELEDIT: 레이블 편집이  시작되기 바로 직전에 발생한다.&lt;br /&gt;  -&gt; TVN_ENDLABELEDIT: 편집이 완성된 후 또는 사용자가 편집을 취소한 후에  발생한다.&lt;br /&gt;&lt;br /&gt;* 트리 뷰 컨트롤이 특정 위치로 스크롤이 되도록 하기 위함&lt;br /&gt; - CTreeCtrl.EnsureVisible 함수  호출&lt;br /&gt;&amp;nbsp;&amp;nbsp;m_tree.EnsureVisible(hItem);&lt;br /&gt;&lt;br /&gt;* 트리 뷰 컨트롤에 새 항목을 추가할 때, 특정 부모 항목의  첫 번째 자식 항목으로 추가하려면 어떻게?&lt;br /&gt;&amp;nbsp;&amp;nbsp;m_tree.InsertItem(szLabel, 1, 1, hParent,  TVI_FIRST);&lt;br /&gt;&lt;br /&gt;제 19강. ActiveX 컨트롤 사용하기&lt;br /&gt;&lt;br /&gt;* ActiveX 컨트롤은 컴포넌트 객체  모델(Component Object Model: COM)에 따라 정의된 인터페이스를 사용하여 프로그램과 통신한다.&lt;br /&gt; - 항상 ActiveX  컨트롤을 포함하고 있는 컨테이너(container)와 통신&lt;br /&gt; - ActiveX 컨트롤 컨테이너는 컨트롤이 이벤트를 그 소유자에게 보내는  한편, 외부로부터 정보를 수신할 수 있도록 적절한 환경을 제공&lt;br /&gt;&lt;br /&gt;* CWnd의 하위 클래스들은 전부 ActiveX 컨트롤 컨테이너로  사용될 수 있다. 또한, MFC에는 ActiveX 컨트롤을 정의할 때 그 상위 클래스로 사용되는 COleControl이라는 클래스가 정의되어  있다. MFC를 사용해 만들어진 모든 ActiveX 컨트롤들은 이 클래스를 상위 클래스로 사용한다.&lt;br /&gt;&lt;br /&gt;* Components and  Controls Gallery(CCG)&lt;br /&gt; - MFC 기반 Windows 프로젝트에서 사용할 수 있는 재사용 가능 컴포넌트들을 관리하는  Visual C++ 도구&lt;br /&gt; - CCG에 클래스를 등록하는 과정&lt;br /&gt;  -&gt; 재사용하고자 하는 클래스가 포함된 프로젝트를  연다.&lt;br /&gt;  -&gt; 프로젝트 작업 공간(Workspace)에서 ClassView 탭을 클릭&lt;br /&gt;  -&gt; 재사용하려는 클래스 이름을  마우스 오른쪽 버튼으로 클릭하면 뜨는 단축 메뉴에서 Add to Gallery를 선택&lt;br /&gt;* 컨트롤 팔레트에 ActiveX 컨트롤  추가하기&lt;br /&gt; - 자원 편집기 상에서 대화상자를 편집할 때 ActiveX 컨트롤을 사용하려면 그 전에 해당 컨트롤을 컨트롤  팔레트(control palette)에 추가해 주어야 한다.&lt;br /&gt; - 추가하는 과정&lt;br /&gt;  -&gt; Components and  Controls Gallery에 표시된 ActiveX 컨트롤 중 하나를 선택&lt;br /&gt;  -&gt; [Insert] 버튼 클릭&lt;br /&gt;  -&gt;  정말로 추가할 것인지 묻는 메시지 박스가 표시되면 [OK] 또는 [확인] 버튼 클릭&lt;br /&gt;  -&gt; Confirm Classes 대화상자가  떠서 어떤 클래스가 생성되어 프로젝트에 추가될 것인지를 보여줄 것이다. 훑어보고 , [OK] 또는 [확인] 버튼 클릭하여 해당 클래스들을  프로젝트에 추가&lt;br /&gt;  -&gt; [Close] 또는 [닫기] 버튼을 눌러 Components and Controls Gallery 대화상자를  닫는다.&lt;br /&gt;&lt;br /&gt;제 20강. 동적 HTML&lt;br /&gt;&lt;br /&gt;* 동적 HTML을 사용하는 대화형 응용 프로그램을 만들려면 ① Microsoft  WefBrowser 컨트롤을 사용하거나 ② MFC CHtmlView 클래스를 사용한다.&lt;br /&gt;&lt;br /&gt;* Navigate,  Navigate2 함수(Navigate2 함수의 경우 여러 가지 형태를 취한다.)&lt;br /&gt;&lt;pre&gt;    Navigate(http://www.infinitt.com,  //  이동할 웹 문서의 위치&lt;br /&gt;                           navOpenInNewWindow,  // 웹 문서로 이동할 때 브라우저가 어떻게  동작해야 하는지를 지정하는 인자&lt;br /&gt;                           "main",  // 첫 번째 인자가 지정하는 문서를 어느 프레임이 표시할  것인지를 지정하는 인자&lt;br /&gt;                           NULL,  // 웹 서버에게 보내질 정보(옵션) - 첫 번째 인자가 HTTP  URL이 아닐 경우 무시됨&lt;br /&gt;                           NULL,  // HTML 문서에 대한 요청이 POST 형태로 웹서버에게 전달되는  경우 전송되는 정보(옵션)&lt;br /&gt;                           0);  // 상기 옵션 인자의 길이(옵션)&lt;/pre&gt;&lt;br /&gt; - 첫 번째 인자만 입력되면  나머지 인자는 전부 기본값으로 채워짐&lt;br /&gt; - 두 번째 인자에 사용가능한 값&lt;br /&gt;  -&gt; navOpenInNewWindow: 이동  대상이 되는 HTML 문서를 인터넷 익스플로러 새 창에 띄운다는 의미&lt;br /&gt;  -&gt; navNoHistory: 브라우저의 히스토리 리스트에  이동 대상 HTML 문서에 대한 기록을 넘기지 않는다는 의미&lt;br /&gt;  -&gt; navAllowAutosearch: 이동 대상 HTML 문서가  발견되지 않을 경우 자동 검색을 시도한다는 의미&lt;br /&gt;  -&gt; navBrowserBar: HTML 문서를 현재 사용중인 탐색 창에  띄우겠다는 의미&lt;br /&gt;&lt;br /&gt;* CHtmlView 클래스의 멤버 함수&lt;br /&gt; - GoBack: 히스토리 리스트 상의 직전 HTML 문서로  이동&lt;br /&gt; - GoHome: 홈 URL로 이동&lt;br /&gt; - GoForward: 히스토리 리스트 상의 다음 HTML 문서로 이동&lt;br /&gt; -  Stop: HTML 문서가 다운로드되는 과정을 중단&lt;br /&gt; - Refresh: 현재 문서를 다시 로드&lt;br /&gt; - LoadFromResource:  자원 형태로 저장된 문서를 로드하기 위해 사용&lt;br /&gt; - Navigate: 특정한 URL에 위치한 문서로 이동하도자 할 때 사용&lt;br /&gt; -  Navigate2: 특정한 URL이나 특수 파일('데스크탑'이나 '내 컴퓨터'와 같은)로 이동하고자 할 때 사용&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: webdings; font-size: 100%;"&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-8634738059435152439?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/8634738059435152439/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-6-study-6.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8634738059435152439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8634738059435152439'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-6-study-6.html' title='[초보자를 위한 Visual C++ 6]에 대한 Study 정리6'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-6701883214441819424</id><published>2008-12-19T11:33:00.001+09:00</published><updated>2008-12-19T11:33:44.493+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='개인'/><title type='text'>[개인]사랑해 아들...</title><content type='html'>&lt;img src="http://img.blog.yahoo.co.kr/ybi/1/3c/84/wslee13/folder/13/img_13_16_0?1221130653.jpg" vspace="5" border="0" hspace="5" /&gt;&lt;br /&gt;&lt;br /&gt;아들아, 사랑해...&lt;br /&gt;아주 많이 ^__________________________________________^*&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-6701883214441819424?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/6701883214441819424/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_18.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6701883214441819424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6701883214441819424'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_18.html' title='[개인]사랑해 아들...'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-866711919322007461</id><published>2008-12-19T11:32:00.001+09:00</published><updated>2008-12-24T14:52:16.906+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[초보자를 위한 Visual C++ 6]에 대한 Study 정리5</title><content type='html'>&lt;p align="justify"&gt;제 16강. 비트맵과 이미지 리스트&lt;br /&gt;&lt;br /&gt;* 비트맵(CBitmap class)&lt;br /&gt; - 비트맵을 메모리에  올리려면 CBitmap::LoadBitmap 멤버 함수를 이용해야 함.&lt;br /&gt;     bmpHello.LoadBitmap(IDB_HELLO);&lt;br /&gt;&lt;br /&gt;* 비트맵을 표시하기 위한 CBitmapView::OnDraw  함수&lt;br /&gt;&lt;pre&gt;    void CBitmapView::OnDraw(CDC* pDC)&lt;br /&gt;    {&lt;br /&gt;        CBitmap  bmpHello;&lt;br /&gt;        bmpHello.LoadBitmap(IDB_HELLO);&lt;br /&gt;&lt;br /&gt;        // BITMAP  구조체를 사용하여 비트맵 크기를 계산한다.&lt;br /&gt;        BITMAP  bm;&lt;br /&gt;        bmpHello.GetObject(sizeof(BITMAP), &amp;amp;bm);&lt;br /&gt;&lt;br /&gt;        //  메모리 DC를 생성한다. 비트맵 객체를 해당 DC 안에 선택해 넣은 다음&lt;br /&gt;        // BitBlt 함수를  호출한다.&lt;br /&gt;        CDC  dcMem;&lt;br /&gt;        dcMem.CreateCompatibleDC(pDC);&lt;br /&gt;&lt;br /&gt;        CBitmap* pbmpOld  = dcMem.SelectObject(&amp;amp;bmpHello);&lt;br /&gt;        pDC-&gt;BitBlt(10, 10,  bm.bmWidth, bm.bmHeight, &amp;amp;dcMem, 0, 0, SRCCOPY);&lt;br /&gt;&lt;br /&gt;        // 원래 비트맵을  DC에 복구한다.&lt;br /&gt;        dcMem.SelectObject(pbmpOld);&lt;/pre&gt;&lt;br /&gt; - GetObject 함수를 사용해 비트맵에  대한 정보를 가져오고 있음&lt;br /&gt;  -&gt; GetObject 함수: 비트맵에 대한 정보를 BITMAP 구조체 안에 채우는 역할(비트맵의 폭과  높이에 대한 정보를 얻을 수 있음)&lt;br /&gt; - 메모리 장치 컨텍스트(memory device  context/memory DC): 비트맵을  화면에 표시할 때 사용, 그냥 메모리에 불과함&lt;br /&gt;  -&gt; BitBlt 함수: 메모리 DC에 저장된 이미지를 OnD　　raw 함수에  인자로 전달된 장치 컨텍스트로 옮기는 역할을 수행&lt;br /&gt;&lt;br /&gt;* 이미지 리스트(image list): 비트맵의 배열과도 같은 개념&lt;br /&gt; -  이미지 리스트의 길이가 가변적이기 때문에 추가적인 이미지를 삽입이 손쉽고 저장된 비트맵 순서대로 첨자값이 부여되기 때문에 특정 이미지를 끄집어  내는 것 역시 쉽다.&lt;br /&gt;  - CImageList class&lt;br /&gt;&lt;br /&gt;* 이미지 리스트에 비트맵을 저장하는 단계&lt;br /&gt; - 메모리에  비트맵을 올린다.(loading)&lt;br /&gt; - 이미지 리스트에 비트맵 객체의 복사본을 저장한다. 저장된 비트맵에 새로운 첨자값(index)이  할당됨&lt;br /&gt; - 비트맵 객체를 삭제한다.&lt;br /&gt;&lt;pre&gt;    BOOL CImageListView::AddBitmapToImageList(UINT  nResourceID)&lt;br /&gt;    {&lt;br /&gt;        BOOL rReturn;&lt;br /&gt;        CBitmap  bmp;&lt;br /&gt;&lt;br /&gt;        bReturn = bmp.LoadBitmap(nResourceID);&lt;br /&gt;&lt;br /&gt;        if(  bReturn != FALSE )&lt;br /&gt;        {&lt;br /&gt;            int nReturn =  m_imageList.Add(&amp;amp;bmp, RGB(255, 255,  255));&lt;br /&gt;            bmp.DeleteObject();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        return  bReturn;&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;  -&gt; CImageList::Add 함수는 이미지를 이미지 리스트에 추가함&lt;br /&gt;  -&gt;  CImageList::Add 함수의 첫 번째 인자: 이미지 리스트에 복사될 CBitmap 이미지의 주소&lt;br /&gt;  -&gt;  CImageList::Add 함수의 두 번째 인자: 비트맵 이미지의 각 픽셀 중 마스크 이미지로 변환되어야 할 픽샐의 색상&lt;br /&gt;    &gt;&gt; 두 번째 인자는 비트맵 마스크를 사용하여 투명 이미지를 그리고자 할 때 사용 / 마스크 이미지 리스트를 사용하지 않으면 이  인자는 무시된다.&lt;br /&gt;&lt;br /&gt;* 이미지 리스트는 CImageList의 Create 멤버 함수들 중 하나를 이용해 생성할 수 있음.&lt;br /&gt;&lt;pre&gt;     m_imageList.Create(32,       // 각 비트맵의  높이&lt;br /&gt;                                 32,       // 각 비트맵의  넓이&lt;br /&gt;                                 TRUE,  // 이미지 리스트가 투명하게 표시되는지  여부&lt;br /&gt;                                 3,        // 이미지 리스트에 저장될 비트맵의  수&lt;br /&gt;                                 1);       // 이미지 리스트의 길이가 늘어나야 할 경우, 한 번에  얼마나 늘어나야 하는지를 지정한 값&lt;/pre&gt;&lt;br /&gt;  -&gt; 위의 Create 함수는 이미지 리스트를 비트맵 이미들을 저장할 컬렉션 객체로 사용하려고  할 때 유용하다.&lt;br /&gt;&lt;br /&gt;* 마스크 이미지 리스트: 표시해야 할 이미지 하나 당 두 개의 비트맵을 저장하는 이미지 리스트임. - 이 중 두  번째 비트맵이 바로 투명 이미지를 그리는데 쓰이는 마스크 비트맵임.&lt;br /&gt;&lt;br /&gt;* 마스크 비트맵 만드는 방법&lt;br /&gt; - 리스트에 투가되는  비트맵의 픽셀 중 특정 생을 갖는 픽셀들만 골라서 마스크 비트맵으로 만드는 것&lt;br /&gt; - 리스트에 비트맵을 추가할 때 마스크 비트맵에 대한  포인터를 함께 넘기는 것 -&gt; CImageList::Add를 호출할 때 그 두 번째 인자로 CBitmap 객체에 대한 포인터를 넘기면  됨&lt;br /&gt;&amp;nbsp;&amp;nbsp;nReturn = m_imageList.Add(&amp;amp;bmpImage, &amp;amp;bmpMask);&lt;br /&gt;&lt;br /&gt;*  CImageList::Draw - 이미지 리스트에 저장된 각 항목을 화면에 표시&lt;br /&gt;&amp;nbsp;&amp;nbsp;m_imageList.Draw(pDC,  nImage, ptImage, ILD_NORMAL);&lt;br /&gt; - 첫 번째 인자: 이미지가 표시될 장시 컨텍스트&lt;br /&gt; - 두 번째 인자: 이미지  리스트 상의 첨자값. 화면에 그려질 이미지가 어떤 것인지를 결정&lt;br /&gt; - 세 번째 인자: 이미지가 그려질 위치를 나타내는 CPoint  객체값&lt;br /&gt; - 네 번째 인자: 그리는 방법&lt;br /&gt;  -&gt; ILD_NORMAL: 이미지를 화면에 직접 그린다. 이미지가 마스크되어 있고  이미지 리스트 배경색이 기본값 CLR_NONE이라면 이미지는 투명하게 그려질 것이다.&lt;br /&gt;  -&gt; ILD_TRANSPARENT: 이미지를  투명하게 그린다. 마스크되지 않은 이미지일 경우에는 원래 이미지가 그대로 표시된다.&lt;br /&gt;  -&gt; ILD_MASK: 마스크 이미지를 화면에  출력한다. 마스크가 정의되어 있지 않은 이미지 리스트의 경우, 원래 이미지가 그대로 표시된다.&lt;br /&gt;  -&gt; ILD_BLEND25:  이미지를 표시할 때 시스템 강조색과 25% 섞어 표시한다. 이미지 리스트에 마스크가 정의되어 있지 않은 경우에는 원래 이미지가 그대로  표시된다.&lt;br /&gt;  -&gt; ILD_FOCUS: ILD_BLEND25와 동일하다.&lt;br /&gt;  -&gt; ILD_BLEND50: 이미지를 표시할  때 시스템 강조색과 50% 섞어 표시한다. 이미지 리스트가 마스크를 갖고 있지 않은 경우, 원래 이미지가 그대로 표시된다.&lt;br /&gt;  -&gt;  ILD_BLEND: ILD_BLEND50과 동일하다.&lt;br /&gt;  -&gt; ILD_SELECTED: ILD_BLEND50과  동일하다.&lt;br /&gt;&lt;br /&gt;* 이미지 리스트에 저장되어 있는 각각의 이미지 비트맵은 ExtracIcon 멤버 함수를 이용해 아이콘으로도  사용가능&lt;br /&gt;&amp;nbsp;&amp;nbsp;HICON hIcon = m_imageList.ExtractIcon(nImage);&lt;br /&gt;&lt;br /&gt;* 배경색을 사용한 투명  이미지 그리기 - 이미지 후면에 놓일 배경색을 입력&lt;br /&gt;&lt;pre&gt;    void CImageListView::OnDraw(CDC* pDC)&lt;br /&gt;     {&lt;br /&gt;        m_imageList.SetBkColor(RGB(0, 255, 0));  // 배경을  초록색으로 입력&lt;br /&gt;&lt;br /&gt;        CPoint ptImage(0, 0);&lt;br /&gt;&lt;br /&gt;        for( int nImage =  0; nImage &lt; 3; nImage++ )&lt;br /&gt;        {&lt;br /&gt;            m_imageList.Draw(pDC,  nImage, ptImage, ILD_NORMAL);&lt;br /&gt;            ptImage.x +=  50;&lt;br /&gt;        }&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;* IDL_TRANSPARENT를 사용한 투명 이미지 그리기&lt;br /&gt; -  CImageList::Draw를 호출할 때 그 네 번째 인자로 IDL_TRANSPARENT를 넘기면 마스크에 해당하는 부분이 투명하게  그려진다.&lt;br /&gt;&lt;br /&gt;* Overlay image(다른 image 위에 올라갈 image)&lt;br /&gt;&amp;nbsp;&amp;nbsp;m_imageList.SetOverlayImage(0, 1);&lt;br /&gt;  -&gt; 첫 번째 인자: overlay image로 사용될 비트맵의  첨자값&lt;br /&gt;  -&gt; 두 번째 인자: overlay image에 부여되는 번호(이 번호는 0이 아닌 1부터 시작)&lt;br /&gt;&lt;br /&gt;* 중첩  이미지를 표시하기 위해 CImageList::Draw 함수 사용하기&lt;br /&gt;&lt;pre&gt;    void CImageListView::OnDraw(CDC*  pDC)&lt;br /&gt;    {&lt;br /&gt;        m_imageList.SetBkColor(CLR_NONE);&lt;br /&gt;        CPoint  ptOverlay(50, 80);&lt;br /&gt;        m_imageList.SetOverlayImage(0,  1);&lt;br /&gt;        m_imageList.Draw(pDC,&lt;br /&gt;                                    2,&lt;br /&gt;                                    ptOverlay,&lt;br /&gt;                                    INDEXTOOVERLAYMASK(1));   // overlay image의 번호를 지정하는  역할&lt;br /&gt;                                                                                 // + ILD_OVERLAYMASK를 넘김.&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;제 17강. 리스트 뷰 컨트롤&lt;br /&gt;&lt;br /&gt;* 리스트 뷰  형태&lt;br /&gt; - 32X32 픽셀 아이콘과 함께 줄지어 표시하는 아이콘 Icon view&lt;br /&gt; - 16X16 픽셀 아이콘과 함께 줄지어 표시하는  Small icon view&lt;br /&gt; - 작은 아이콘과 함께 세로로 줄지어 표시하는 List view&lt;br /&gt; - 아이콘과 함께 관련 정보를 테이블  형태로 정력하여 보여주는 Report view&lt;br /&gt;&lt;br /&gt;* 이미지 리스트를 리스트 뷰 컨트롤에 연결하기&lt;br /&gt;&amp;nbsp;&amp;nbsp;m_listCtrl.SetImageList(&amp;amp;m_imagesmall, LVSIL_SMALL);&lt;br /&gt;  -&gt; 첫 번째 인자: 리스트  뷰에 연결될 이미지 리스트에 대한 포인터&lt;br /&gt;  -&gt; 두 번째 인자: 첫 번째 인자가 가리키는 이미지 리스트에 저장된 이미지가 어떤  것들인지를 나타내는 값&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LVSIL_NORMAL: 아이콘 뷰가 선택되었을 때 사용될 이미지들&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LVSIL_SMALL: 작은 아이콘 뷰가 선택되었을 때 사용될 이미지들&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LVSIL_STATE: 체크 표시와 같은, 상태  표시를 위해 선택적으로 사용되는 이미지들&lt;br /&gt;&lt;br /&gt;* 이미지 리스트 컨트롤을 리스트 뷰 컨트롤에 연결시키고 난 다음에는 이미지 리스트를  삭제하는 책임은 리스트 뷰 컨트롤이 지게 된다.&lt;br /&gt; - 단, Share image list 속성이 선택된 경우 리스트 뷰 컨트롤이 이미지  리스트를 삭제시켜주지 않기 때문에 마지막 리스트 뷰가 삭제된 후 이미지 리스트가 삭제되도록 코딩이 이뤄져야 한다.&lt;br /&gt;&lt;br /&gt;* LV_ITEM  구조체 - 리스트 뷰 컨트롤을 통해 표시되는 각각의 항목들을 관리하기 위한 구조체&lt;br /&gt; - mask: 현재 함수 호출 과정에서 어떤 멤버들만이  사용되도록 할 것인지를 지정하는 값&lt;br /&gt;  -&gt; LVIF_TEXT: pszText 값이 유효함&lt;br /&gt;  -&gt; LVIF_IMAGE:  iImage 값이 유효함&lt;br /&gt;  -&gt; LVIF_PARAM: lParam 값이 유효함&lt;br /&gt;  -&gt; LVIF_STATE: state  값이 유효함&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;listItem.mask = LVIF_TEXT | LVIF_IMAGE&lt;br /&gt; - iItem: 현재 항목의 번호.  컨트롤 내 첫 번째 항목은 0을 그 값으로 갖고, 그 다음부터는 1씩 증가된 값을 갖는다.&lt;br /&gt; - iSubItem: 현재 항목에 대한  subitem의 번호. 해당 항목 아이콘 오른쪽 열에 표시되는 문자열들이 부 항목에 해당한다(리포트 뷰의 경우, 아이콘 오른쪽에 오는 레이블부터  시작). subitem 번호는 1부터 시작한다.&lt;br /&gt; - state 그리고 stateMask: 항목의 현재 상태와 항목의 가능한  상태값&lt;br /&gt; - pszText: 레이블로 사용될 문자열에 대한 주소값&lt;br /&gt; - cchTextMax: 컨트롤에 표시되는 항목에 대한 정보를  가져오기 위해 LV_ITEM 구조체를 사용하는 경우, 그 레이블 정보를 가져오려면 pszText가 가리키는 버퍼 메모리의 크기를  cchTextMax에 반드시 설정해 주어야 한다. 그 외의 경우에는 사용하지 않는다.&lt;br /&gt; - iImage: 이 항목을 표시할 때 사용되는  이미지의 이미지 리스트 내 첨자값&lt;br /&gt;&lt;br /&gt;* 리스트 뷰 컨트롤에 새 항목 삽입&lt;br /&gt;&lt;pre&gt;    listItem.mask =  LVIF_TEXT;&lt;br /&gt;    listItem.iItem = 0;&lt;br /&gt;    listItem.pszText = szText;&lt;br /&gt;     m_listCtrl.InsertItem(&amp;amp;listItem);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;* Report view: 리스트에 포함된 각 항목들에 대한  부가 정보를 함께 표시&lt;br /&gt; - 각각의 항목들이 갖는 부 항목들의 갯수는 동일해야 한다.&lt;br /&gt; - Report view 위쪽에는 각각의 열에  표시된 값에 대한 정보가 표시되는 헤더 부분이 오게 된다.&lt;br /&gt; - 헤더 부분에 들어갈 값을 설정하는 과정&lt;br /&gt;  -&gt;  LV_CLOUMN 구조체를 초기화&lt;br /&gt;  -&gt; 새로운 열을 추가(LV_COLUMN 구조체와 InsertColumn 함수를  사용)&lt;br /&gt;&lt;br /&gt;* LV_COLUMN 구조체&lt;br /&gt; - mask: 현재 함수 호출 과정에서 어떤 멤버 변수들만이 사용되도록 할 것인지를  지정&lt;br /&gt;  -&gt; LVCF_FMT: fmt&lt;br /&gt;  -&gt; LVCF_SUBITEM: iSubItem&lt;br /&gt;  -&gt;  LVCF_TEXT: pszText&lt;br /&gt;  -&gt; LVCF_WIDTH: cx&lt;br /&gt; - fmt: 해당 열에 표시될 문자열을 어떻게 정렬할  것인지를 지정하기 위한 변수. LVCFMT_LEFT, LVCFMT_RIGHT 그리고 LVCFMT_CENTER의 세 가지 값 중 하나를 사용할 수  있다. 첫 번째 열은 반드시 LVCFMT_LEFT를 값으로 가져야 한다.&lt;br /&gt; - cx: 해당 열의 폭을 지정. 픽셀 단위&lt;br /&gt; -  pszText: 해당 열에 표시될 문자열에 대한 포인터. 부 항목에 대한 정보를 가져오기 위해 LV_COLUMN 구조체를 사용하는 경우에 부  항목 문자열을 저장할 버퍼의 주소값이 이 멤버 변수에 저장됨.&lt;br /&gt; - cchTextMax: pszText가 가리키는 버퍼의 크기. 부 항목의  정보를 가져오려는 경우에만 사용&lt;br /&gt; - iSubItem: 열 번호&lt;br /&gt;&amp;nbsp;&amp;nbsp;m_listCtrl.InsertColumn(nColumn,  &amp;amp;listColumn);&lt;br /&gt;&lt;br /&gt;* CListCtrl::GetNextItem - 리스트 뷰 컨트롤의 경우, 어떤 항목이  선택되었는지를 알리는 메시지 같은 것이 없음. 해당 함수를 이용해 어떤 항목들이 선택되었는지를 알아내야 함.&lt;br /&gt;&amp;nbsp;&amp;nbsp;int nSel =  m_listCtrl.GetNextItem(-1, LVNI_SELECTED);&lt;br /&gt;&lt;br /&gt;* 리스트 뷰 컨트롤에서 뷰 형태간 전환  방법&lt;br /&gt;&amp;nbsp;&amp;nbsp;DWORD dwOldStyle = GetWindowLong(hWndList, GWL_STYLE);&lt;br /&gt;  -&gt; 첫 번째  인자: 리스트 뷰 컨트롤에 대한 윈도우 핸들&lt;br /&gt;  -&gt; 두 번째 인자: 요청 정보를 나타내는 GWL 상수&lt;br /&gt; -  GetWindowLong 함수의 반환값에는 해당 리스트 뷰 컨트롤에 적용된 모든 Window 스타일 정보가 있으므로 리스트 뷰 컨트롤의 현재  상태에만 관심이 있다면, LVS_TYPEMASK를 사용하여 필요없는 정보는 제거한다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;dwOldStyle &amp;amp;=  LVS_TYPEMASK;  // 필요 없는 정보들을 제거&lt;br /&gt;  -&gt; 이렇게 하면 dwOldStyle에는 다음 네 가지 중 하나만  남는다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;LVS_ICON, LVS_SMALLICON, LVS_LIST, LVS_REPORT&lt;br /&gt; - 단계&lt;br /&gt;  -&gt;  GetWindowLong 함수를 사용해 리스트 뷰의 스타일 정보를 전부 얻어온다.&lt;br /&gt;  -&gt; 다른 스타일 정보들은 그대로 두고, 리스트  뷰 표시 형태 관련 정보만을 제거&lt;br /&gt;  -&gt; 그의 결과로 만들어진 정보에 새로운 리스트 뷰 스타일을 결합한다.&lt;br /&gt;  -&gt;  SetWindowLong 함수를 사용해 새로운 스타일 정보를 적용한다.&lt;br /&gt;&lt;pre&gt;        DWORD dwNewStyle = LVS_ICON;   // 아이콘 뷰로 표시 형식을 변경한다.&lt;br /&gt;        DWORD dwOldStyle = GetWindowLong(hWndList,  GWL_STYLE);&lt;br /&gt;        dwNewStyle |= (dwOldStyle &amp;amp;=  ~LVS_TYPEMASK);&lt;br /&gt;        SetWindowLong(hWndList, GWL_STYLE,  dwNewStyle);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;* 리스트 뷰 컨트롤에서 선택된 모든 항목들을 전부 찾아내려면 리스트의 마지막 항목에 도달할 때까지 탐색을  계속해야 함&lt;br /&gt;&lt;pre&gt;    void CListExDlg::OnTest()&lt;br /&gt;    {&lt;br /&gt;        int nTotalSelected =  0;&lt;br /&gt;        int nSel = m_listCtrl.GetNextItem(-1,  LVNI_SELECTED);&lt;br /&gt;&lt;br /&gt;        while( nSel !=  -1 )&lt;br /&gt;        {&lt;br /&gt;            nTotalSelected++;&lt;br /&gt;            nSel =  m_listCtrl.GetNextItem(nSel,  LVNI_SELECTED);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        TRACE("Total selected = %d\n",  nTotalSelected);&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family: webdings; font-size: 100%;"&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-866711919322007461?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/866711919322007461/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-6-study-5.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/866711919322007461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/866711919322007461'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-6-study-5.html' title='[초보자를 위한 Visual C++ 6]에 대한 Study 정리5'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-655540115852329553</id><published>2008-12-19T11:31:00.000+09:00</published><updated>2008-12-24T14:52:41.241+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[초보자를 위한 Visual C++ 6]에 대한 Study 정리4</title><content type='html'>&lt;p&gt;제 13강. 폰트(같은 속성을 공유하는 문자들과 기호들의 집합) - CFont class&lt;br /&gt;&lt;br /&gt;* 사용 방법&lt;br /&gt; - 어떤 폰트를  사용할지 명시적으로 지정하는 방법&lt;br /&gt; - 모든 폰트에 일반적으로 적용되는 속성들의 값만 명시하고, 폰트는 Windows가 선택하도록 놔두는  방법&lt;br /&gt;&lt;br /&gt;* 폰트 객체가 만들어지고 난 뒤에는 그 속성을 변경할 수 없다. - 변경하고자 하는 경우에는 그에 맞는 별도의 폰트 객체를  생성해야 한다.&lt;br /&gt;&lt;br /&gt;* 폰트의 종류&lt;br /&gt; - 래스터 폰트(raster font): 비트맵으로부터 생성 -&gt; 실제 폰트가 어떻게  화면에 출력되느냐는 해상도에 따라 결정&lt;br /&gt; - 벡터 폰트(vector font): 일련의 점들을 연결하여 글자를 만든다. -&gt; 장치와는  독립적이나 처리 속도는 가장 느림.&lt;br /&gt; - 트루타입 폰트(truetype font): 가장 유연성이 높은 방식&lt;br /&gt;&lt;br /&gt;* 폰트  타입&lt;br /&gt;  -&gt; 폰트 피치(font pitch): 문자들의 폭(고정 피치 폰트, 가변 피치 폰트)&lt;br /&gt;  -&gt;  세리프(serif): 문자를 표기할 때 그 한 획 끝에 나타나는, 획의 방향과 교차하는 방향으로 그러지는 작은 선&lt;br /&gt; -  장식체(Decorative): Old English와 같은 폰트를 지칭&lt;br /&gt; - 미분류 서체(Dontcare): 폰트 타입 정보가 존재하지  않거나 특정한 타입에 귀속시킬 수 없고, 폰트 타입에 관한 정보가 그다지 중요하지 않는 폰트들&lt;br /&gt; - 모던체(Modern): 고정 피치를  가지며, 세리프는 있을 수도 있고, 없을 수도 있는 폰트들(예를 들어, Courier New)&lt;br /&gt; - 로만체(Roman): 가변 피치  &amp;amp; 세리프 폰트(예를 들어, Times New Roman)&lt;br /&gt; - 스크립트체(Script): 필기체&lt;br /&gt; - 스위스체(Swiss):  가변 피치 &amp;amp; 산세리프 폰트(예를 들어, Arial)&lt;br /&gt;&lt;br /&gt;* 폰트 속성을 명시하는 방법&lt;br /&gt; -  CFont::CreateFont 함수를 이용하는 방법&lt;br /&gt;&lt;pre&gt;    CFont  fnt;&lt;br /&gt;    fnt.CreateFont(100,                                 // 높이&lt;br /&gt;                         0,                                   //  폭&lt;br /&gt;                         0,                                   //  이탈각(escapement)&lt;br /&gt;                         0,                                    // 폰트 방향(orientation)&lt;br /&gt;                         FW_BOLD,                        // 굵기&lt;br /&gt;                         TRUE,                             // 흘려 쓰기  여부&lt;br /&gt;                         FALSE,                           // 밑줄  여부&lt;br /&gt;                         FALSE,                           // 취소선  여부&lt;br /&gt;                         ANSI_CHARSET,             // 문자  집합&lt;br /&gt;                         OUT_DEFAULT_PRECIS,  // 출력  정밀도&lt;br /&gt;                         CLIP_DEFAULT_PRECIS,  // 클리핑(clipping)  정밀도&lt;br /&gt;                         DEFAULT_QUALITY,        // 출력  품질&lt;br /&gt;                         DEFAULT_PITCH,            // 피치와 폰트  타입&lt;br /&gt;                         "Arial");                          // 폰트명&lt;br /&gt; -  LOGFONT 구조체를 사용해 폰트 속성을 기술하고, CFont::CreateFontIndirect 함수에 전달하여 폰트를 생성하는  방법&lt;br /&gt;    LOGFONT lf;&lt;br /&gt;    ZeroMemory(&amp;amp;lf, sizeof(lf));&lt;br /&gt;    lf.lfWeight  = FW_DEMIBLOD;&lt;br /&gt;    lf.lfHeight = 300;&lt;br /&gt;    lf.lfWidth = 50;&lt;br /&gt;     fnt.CreateFontIndirect(&amp;amp;lf);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;* 폰트 높이 설정&lt;br /&gt; - 0보다 큰 값을 설정하는 경우: 논리적  단위를 기준으로 폰트의 높이를 명시&lt;br /&gt; - 폰트 높이를 0으로 설정하는 경우: 해당 폰트의 높이값을 Windows가 알아서 '적당한'  기본값(default value)을 정해줌&lt;br /&gt; - 폰트 높이를 음수값으로 설정한 경우:물리적 단위를 기준으로 폰트의 높이를  지정&lt;br /&gt;&lt;br /&gt;* 문자 집합(character set)&lt;br /&gt; - ANSI_CHARSET&lt;br /&gt; - OEM_CHARSET: 콘솔 모드  프로그램의 경우에 주로 사용&lt;br /&gt; - SYMBOL_CHARSET: 수학 공식에 등장하는 기호 등을 출력하고자 할 때 사용&lt;br /&gt;&lt;br /&gt;* 출력  정밀도(output precision): 입력한 속성들의 값과 실제로 Windows가 생성해 준 폰트의 속성값들이 얼마나 일치해야 하는지를  지정&lt;br /&gt; - OUT_DEFAULT_PRECIS: Windows가 알아서...&lt;br /&gt; - OUT_STRING_PRECIS: Windows가  선택한 폰트의 크기는 사용자가 지정한 폰트 크기와 일치해야 한다.&lt;br /&gt; - OUT_CHARACTER_PRECIS: Windows가 선택한  폰트의 폰트 방향과 이탈각을 제외한 나머지 속성들에 대해서는 지정한 값과 정확히 일치해야 한다.&lt;br /&gt; - OUT_STROKE_PRECIS:  Windows가 선택한 폰트들의 속성들 값과 프로그래머가 지정한 폰트의 속성들 값이 정확하게 일치해야 한다.&lt;br /&gt;&lt;br /&gt;* 클리핑  정밀도(clipping precision): 출력중인 문자의 일부가 가려지거나 잘렸을 때 어떤 식으로 출력 제어가 이루어져야 하는지를 지정하는  속성&lt;br /&gt; - CLIP_DEFAULT_PRECIS:기본값&lt;br /&gt; - CLIP_CHARACTER_PRECIS: Windows로 하여금 문자  단위의 클리핑 처리를 지원하는 폰트를 선택하도록 만든다.&lt;br /&gt; - CLIP_STROKE_PRECIS: Windows로 하여금 영역 기준 클리핑  처리를 지원하는 폰트를 선택하도록 만든다.&lt;br /&gt;&lt;br /&gt;* 출력 품질(output quality): 논리적으로 기술된 폰트의 속성들이 물리적으로  표현된 정도(degree)&lt;br /&gt; - DEFAULT_QUALITY&lt;br /&gt; - DRAFT_QUALITY: 출력 속도가 우선&lt;br /&gt; -  PROOF_QUALITY: 출력 품질이 우선&lt;br /&gt;&lt;br /&gt;* 폰트 피치&lt;br /&gt; - DEFAULT_PITCH: Windows가 적당한 폰트를  알아서 선택(선택 기준은 다른 속성값을 참고하여 결정)&lt;br /&gt; - FIXED_PITCH: 선택된 폰트는 반드시 고정 피치를 가져야 함&lt;br /&gt; -  VARIABLE_PITCH: 선택된 폰트는 반드시 가변 피치여야 함.&lt;br /&gt;&lt;br /&gt;* 폰트 타입: FF_DECORATIVE,  FF_DONTCARE, FF_MODERN, FF_ROMAN, FF_SCRIPT, FF_SWISS&lt;br /&gt;&lt;br /&gt;* 폰트 굵기값들에 대한  식별자&lt;br /&gt; - FW_DONTCARE: 0&lt;br /&gt; - FW_THIN: 100&lt;br /&gt; - FW_EXTRALIGHT: 200&lt;br /&gt; -  FW_ULTRALIGHT: 200&lt;br /&gt; - FW_LIGHT:300&lt;br /&gt; - FW_NORMAL: 400(일반적인 폰트)&lt;br /&gt; -  FW_REGULAR: 400(일반적인 폰트)&lt;br /&gt; - FW_MEDIUM: 500&lt;br /&gt; - FW_SEMIBOLD: 600&lt;br /&gt; -  FW_DEMIBOLD: 600&lt;br /&gt; - FW_BOLD: 700(굵은 폰트)&lt;br /&gt; - FW_EXTRABLOD: 800&lt;br /&gt; -  FW_ULTRABLOD: 800&lt;br /&gt; - FW_BLACK: 900&lt;br /&gt; - FW_HEAVY: 900&lt;br /&gt;&lt;br /&gt;*  이탈각(escapement): 페이지 바닥 부분을 기준으로 했을 때, 텍스트가 몇 도 기울기로 출력되느냐에 관한 속성(도 단위의 값에 10을  곱한 값으로 명시)&lt;br /&gt;&lt;br /&gt;* 폰트 방향(orientation): 이탈각 속성과 비슷 - 각각의 문자에 개별적으로  적용된다.&lt;br /&gt;&lt;br /&gt;* CFont형의 객체를 사용해 폰트를 생성하는 과정&lt;br /&gt;&lt;pre&gt;    void CMyView::OnDraw(CDC*  pDC)&lt;br /&gt;    {&lt;br /&gt;        CFont fntArial;&lt;br /&gt;        fntArial.CreateFont(0, 0, 0,  0, 0, 0, 0, 0,&lt;br /&gt;                                   0, 0, 0, 0, 0,  "Arial");&lt;br /&gt;        CString szMsg = "Hello! I'm an  Arial Font";&lt;br /&gt;        CFont* pOldFont =  pDC-&gt;SelectObject(&amp;amp;fntArial);&lt;br /&gt;        pDC-&gt;TextOut(0, 50,  szMsg);&lt;br /&gt;&lt;br /&gt;        // 이전 GDI 객체  복구&lt;br /&gt;        pDC-&gt;SelectObject(pOldFont);&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;* 스톡 폰트&lt;br /&gt; -  ANSI_FIXED_FONT: 고정 피치 시스템 폰트&lt;br /&gt; - ANSI_VAR_FONT: 가변 피치 시스템 폰트&lt;br /&gt; -  DEVICE_DEFAULT_FONT: 장치 의존적인 폰트(Windows NT에서만 사용 가능)&lt;br /&gt; - DEFAULT_GUI_FONT:  사용자인터페이스에 쓰이는 기본 폰트&lt;br /&gt; - OEM_FIXED_FONT: OEM에 의존적인 고정 피치 폰트&lt;br /&gt; - SYSTEM_FONT:  시스템 폰트&lt;br /&gt;    CFont* pOldFont = pDC-&gt;SelectStockObject(SYSTEM_FOMT);&lt;br /&gt;&lt;br /&gt;*  윈도우에 대한 폰트 설정: CWnd::SetFont 함수 이용 - CFont 객체에 대한 포인터를 인자로 받음&lt;br /&gt;&amp;nbsp;pCtrl-&gt;SetFont(fntWingDigs);&lt;br /&gt; - 윈도우의 폰트를 바꿀 때에는 인자로 전달한 포인터가 기리키는 CFont  객체가 해당 윈도우가 살아 있는 동안 메모리에서 삭제되지 않도록 해야 한다.&lt;br /&gt;&lt;br /&gt;* LOGFONT 구조체에는 사용자가 선택한 폰트 색상  정보는 포함되어 있지 않기 때문에, GetColor 함수를 호출하여 그 정보를 알아내야 한다.&lt;br /&gt;&lt;br /&gt;제 14강. 아이콘과  커서&lt;br /&gt;&lt;br /&gt;* 아이콘을 조작할 때에는 HICON, 즉 아이콘에 대한 핸들(Handle)을 직접 조작하게 된다.&lt;br /&gt;&lt;br /&gt;* 프로그램  안에서 아이콘을 로드하는 방법&lt;br /&gt; - 아이콘을 메모리에 올리는 작업: LoadIcon을 호출하면 아이콘을 메모리에 올릴 수 있고 그 결과로  아이콘의 핸들이 반환됨.&lt;br /&gt;&amp;nbsp;HICON hIcon = AfxGetApp()-&gt;LoadIcon(IDI_LOGO);&lt;br /&gt; -  아이콘을 화면에 그림&lt;br /&gt;&amp;nbsp;pDC-&gt;DrawIcon(0, 0, hIcon);&lt;br /&gt; - 사용이 끝났다면 아이콘 자원을 메모리에서  삭제&lt;br /&gt;&amp;nbsp;DestroyIcon(hIcon);&lt;br /&gt;&lt;br /&gt;* 핫스팟(hotsopt): 커서의 위치를 결정하는 실제  기준점&lt;br /&gt;&lt;br /&gt;* 마우스 커서가 윈도우 위를 지나가면 Windows는 그 윈도우에 WM_SETCURSOR 메시지를 보낸다.&lt;br /&gt;&lt;br /&gt;제  15강. 스핀 컨트롤, 상태 진행 컨트롤, 슬라이더 컨트롤&lt;br /&gt;&lt;br /&gt;* 공통 컨트롤과 MFC 클래스&lt;br /&gt; - 스핀/업다운:  CSpinButtonCtrl&lt;br /&gt; - 상태 진행: CProgressCtrl&lt;br /&gt; - 슬라이더/트랙바: CSliderCtrl&lt;br /&gt; - 이미지  리스트: CImageList&lt;br /&gt; - 리스트: CListCtrl&lt;br /&gt; - 트리: CTreeCtrl&lt;br /&gt;&lt;br /&gt;* 스핀 컨트롤: 스핀  컨트롤과 한 쌍으로 사용되는 컨트롤을 버디 컨트롤이라 함. 보통 에디트 컨트롤이 많이 사용&lt;br /&gt; - 기본적으로 스핀 컨트롤의 위쪽 방향  화살표를 클릭하면 버디 컨트롤의 값이 감소하고, 아래쪽 방향 화살표를 클릭하면 버디 컨트롤의 값이 증가한다.&lt;br /&gt;&amp;nbsp;m_spin.SetRange(0, 100);  // 작동을 반대로 하도록 세팅&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:webdings;font-size:100%;"  &gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-655540115852329553?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/655540115852329553/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-6-study-4.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/655540115852329553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/655540115852329553'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-6-study-4.html' title='[초보자를 위한 Visual C++ 6]에 대한 Study 정리4'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-8573870496272638651</id><published>2008-12-19T11:29:00.000+09:00</published><updated>2008-12-24T14:19:56.063+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[초보자를 위한 Visual C++ 6]에 대한 Study 정리3</title><content type='html'>제 10강. 메뉴&lt;br /&gt;&lt;br /&gt;* Menu: 선택 가능한 일련의 명령들&lt;br /&gt;&lt;br /&gt;* 명령 message의 전달 - 하나의 menu 항목은 반드시 하나의 window에 연결&lt;br /&gt;&lt;br /&gt;* menu가 선택되었음을 알리는 message를 처리하는 class(CCmdTarget)&lt;br /&gt; - CCmdTarget class로부터 계승되어 만들어진 class는 전부 MFC framework의 message loop로부터 message를 수신할 수 있음&lt;br /&gt; - 전달 순서: ① CMainFrame 객체 ② 주 MDI frame window ③ MDI frame window의 자식 frame 중 활성화되어 있는(active) frame ④ MDI 자식 frame에 연결되어 있는 view 객체 ⑤ 현재 활성화되어 있는 view에 연결되어 있는 문서 객체 ⑥ 문서 객체에 연결되어 있는 document tmeplate ⑦ CWinApp 객체&lt;br /&gt;&lt;br /&gt;* 단축 menu: Pop-up menu나 문맥 감지(context) menu라고도 함.&lt;br /&gt; - WM_CONTEXTMENU(마우스 오른쪽 버튼을 누르면 발생)&lt;br /&gt;&lt;br /&gt;제 11강. 장치 컨텍스트(device context - DC)&lt;br /&gt;&lt;br /&gt;* 장치에 출력을 하기 위해 필요한 정보들을 저장해 두기 위한 구조체(Windows에 의해 관리)&lt;br /&gt; - GDI에서 제공하는 출력 함수들을 사용하려면, 그 전에 반드시 장치 컨텍스트를 생성해야만 한다.&lt;br /&gt;&lt;br /&gt;* GDI 객체의 종류&lt;br /&gt; - 장치 컨텍스트를 사용할 GDI 객체를 선택(Select)한다: GDI 객체를 장치 컨텍스트에 연결시키는 행위&lt;br /&gt;객체                사용 목적&lt;br /&gt;-------------------------------------------------&lt;br /&gt;펜(Pen)           선을 그릴 때 사용&lt;br /&gt;브러쉬(Brush)  특정 영역 내부를 채울 때 사용&lt;br /&gt;비트맵(Bitmap) 이미지를 출력할 때 사용&lt;br /&gt;폰트(Font)        출력되는 글자체의 특성 제어에 사용&lt;br /&gt;&lt;br /&gt;* 장치 컨텍스트의 종류&lt;br /&gt; - Display DC: 모니터 화면성에 정보를 출력하기 위해 사용되는 DC - Windows 프로그래밍을 할 때 가장 자주 사용&lt;br /&gt; - Printer DC: 프린터나 플로터에 출력할 목적으로 사용&lt;br /&gt; - Memory DC: 호환 장치 컨텍스트(compatible device context)라고도 하며, 비트맵 상에 뭔가를 그리고자 할 때 사용&lt;br /&gt; - Information DC: device에 대한 정보를 수집하고자 할 때 사용 - 작고 빠름/실제 출력 용도로는 사용할 수 없음&lt;br /&gt;&lt;br /&gt;* 하드웨어 독립성&lt;br /&gt; - 장치 독립적(device independence)으로 프로그램하기 위해 장치 컨텍스트를 사용한다.: Windows의 하드웨어 드라이버가 지원하는 어떤 종류의 디스플레이나 프린터 상에서도 동작하는 프로그램을 작성할 수 있음&lt;br /&gt; - 유의 사항&lt;br /&gt;  -&gt; 출력 대상 장비의 해상도나 화면 크기를 미리 가정하여 프로그램을 작성하지 마라.&lt;br /&gt;  -&gt; 어떤 색상을 사용할 것이나 하는 문제는 전적으로 사용자에게 달려 있다&lt;br /&gt;&lt;br /&gt;* MFC 라이브러리에서 제공하는 장치 컨텍스트 class&lt;br /&gt; - CDC: 모든 장치 컨텍스트 class의 최상위&lt;br /&gt; - CPaintDC: WM_PAINT 이벤트를 처리하도록 하고 싶은 경우 유용하게 사용&lt;br /&gt; - CClientDC: 윈도우의 클라이언트 영역에 대해서 출력을 하고자 할 때 사용&lt;br /&gt; - CWindowDC: 윈도우 전영역에 대한 출력 제어를 하고자 할 때 사용&lt;br /&gt;&lt;br /&gt;* 장치 컨텍스트를 필요로 하는 함수들은 대개 장치 컨텍스트를 그 인자로 전달받는다.&lt;br /&gt;&lt;br /&gt;* GDI 객체 선택하기&lt;br /&gt; - GDI 객체 선택 및 복구 과정(예제)&lt;br /&gt;&lt;pre&gt;    CBitmap bmpHello;&lt;br /&gt;    bmpHello.LoadBitmap(IDB_HELLO);&lt;br /&gt;    CBitmap *pbmpOld = dcMem.SelectObject(&amp;bmpHello);&lt;br /&gt;    if( pbmpOld != NULL )&lt;br /&gt;    {&lt;br /&gt;        //&lt;br /&gt;        // 비트맵을 사용한다. 그리고...&lt;br /&gt;        //&lt;br /&gt;        dcMem.SelectObject(pbmpOld);  // 복구한다.&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt; - SelectObject 연산이 실패할 경우, 기본 비트맵 객체가 반환되지 않고 NULL이 반환됨 -&gt; 결국 새로운 비트맵 객체가 DC에 선택되지 않았다는 것을 의미&lt;br /&gt; - 자원 누수 현상(reasource leak) -&gt; 자원에 대한 메모리가 시스템에 반환되지 못하게 됨.&lt;br /&gt;&lt;br /&gt;* 스톡 객체: Windows가 직접 관리하며 필요하면 언제든 사용 가능한 객체 -&gt; GDI 객체를 새로이 생성할 필요 없이 그냥 사용하면 됨.&lt;br /&gt;&amp;nbsp;HPEN hOldPen = pDC-&gt;SelectStockObject(BLACK_PEN);&lt;br /&gt;&lt;br /&gt;* Map Mode: 장치 컨텍스트가 사용하는 현재 좌표계를 지칭&lt;br /&gt; - MM_ANISOTROPIC: viewport를 사용하여 논리적인 단위의 크기를 실제로 얼마만큼의 크기를 갖는 물리적 단위로 대응시킬지 결정하는 좌표계&lt;br /&gt; - MM_HIENGLISH: 각각의 논리적 단위 하나의 크기를 0.001인치로 대응시키는 모드&lt;br /&gt; - MM_HIMETRIC: 각각의 논리적 단위하나의 크기를 0.01밀리미터로 대응시키는 모드&lt;br /&gt; - MM_ISOTROPIC: MM_ANISOTROPIC과 비슷한 모드 -&gt; 논리 좌표계이건 물리 좌표계이건 x축 상의 눈금 크기와 y축 상의 눈금 크기는 항상 동일&lt;br /&gt; - MM_LOENGLISH: 각각의 논리적 단위 하나가 0.01인치의 물리적 단위로 대응되는 모드&lt;br /&gt; - MM_LOMETRIC: 각각의 논리적 단위 하나가 0.1밀리미터의 물리적 단위로 대응되는 모드&lt;br /&gt; - MM_TEXT: 각각의 논리적 단위가 하나의 픽셀로 대응되는 모드&lt;br /&gt; - MM_TWIPS: 각각의 논리적 단위가 한 '점(point)'의 1/20 크기로 대응되는 모드&lt;br /&gt;&lt;br /&gt;* CDC class의 장치에 대한 정보를 제공하기 위한 멤버 함수&lt;br /&gt; - GetDeviceCaps: 장치 컨텍스트에 연결되어 있는 물리적 장치에 대한 정보를 반환하는 함수(프린터에 출력을 보낼 때 주로 사용)&lt;br /&gt;  -&gt; x축 방향으로 1인치 당 몇 픽셀이 대응되는지를 알아내고 싶다면&lt;br /&gt;&amp;nbsp;&amp;nbsp; int cxLog = pDC-&gt;GetDeviceCaps(LOGPIXELSX);&lt;br /&gt; - GetTextMetrics: 현재 선택된 폰트에 대한 정보를 반환하는 함수&lt;br /&gt;  -&gt; TEXTMETRIC 구조체의 주 멤버 변수들&lt;br /&gt;   1. tmAscent: 폰트를 표시하는 기준선 위치(baseline)로부터 위로 얼마 만큼의 영역이 폰트 표시를 위해 사용되는지를 나타내는 값&lt;br /&gt;   2. tmDescent: baseline으로부터 아래로 얼마 만큼의 영역이 폰트 표시를 위해 사용되는지를 나타내는 값&lt;br /&gt;   3. tmHeight: 폰트 표시를 위해 필요한 높이가 얼마나 되는지를 나타내는 값. tmAscent + tmDescent&lt;br /&gt;   4. tmInternalLeading: 강세 부호 등, 폰트 위에 표시되어야 하는 부호들을 표시하기 위한 영역의 높이값. 이 영역은 tmAscent가 나타내는 영역 안에 위치&lt;br /&gt;   5. tmExternalLeading: 텍스트의 줄 사이 역역 높이값. 이 영역은 tmAscent가 나타내는 영역 밖에 위치&lt;br /&gt;   6. tmAveCharWidth: 볼드체나 이탤릭체가 아닌 일반 형태로, 현재 폰트에 속한 문자들을 출력한다고 했을 때 그 평균 폭&lt;br /&gt;   7. tmMaxCharWidth: 현재 선택된 폰트 중 가낭 폭이 넓은 글자의 가로 크기&lt;br /&gt;&lt;pre&gt;        TEXTMETRIC tm;&lt;br /&gt;        pDC-&gt;GetTextMetrics(&amp;tm);&lt;br /&gt;        nFontHeight = tm.tmHeight;  // 선택된 폰트의 높이&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;* CMap은 템플릿 컬렉션 클래스(template collection class 중 하나&lt;br /&gt; - MFC의 컬렉션 클래스들을 사용하려면 프로젝트 디렉터리에 있는 stdafx.h 파일에 "afxtempl.h"를 추가해 주어야 한다.&lt;br /&gt;&lt;br /&gt;* "typedef DWORD COLORREF;"  // 색상 정보 저장&lt;br /&gt;&lt;br /&gt;제 12강. 펜과 브러쉬&lt;br /&gt;&lt;br /&gt;* 펜을 사용하려면 MFC 객체를 생성해야 함(CPen class 사용)&lt;br /&gt;&lt;br /&gt;* 펜 객체를 만들 때 적어도 세 가지 속성에 대한 값은 명시해야 함.&lt;br /&gt; - width: 선의 두께(보통 1픽셀)&lt;br /&gt; - style&lt;br /&gt; - color: COLORREF 구조체에 의해 표현되는 Windows 색상값&lt;br /&gt;&lt;br /&gt;* 펜의 종류&lt;br /&gt; - 장식 펜(cosmetic pen): 항상 장치의 물리적 단위값에 의거하여 그리기 수행 / 빠르다&lt;br /&gt;  -&gt; 장치기준, 물리적 단위에 의거하여 그리기 연산 수행&lt;br /&gt;  -&gt; 스타일: PS_SOLID, PS_DOT, PS_DASH, PS_DASHDOT, PS_DASHDOTDOT, PS_NULL, PS_INSIDEFRAME, PS_ALTERNATE&lt;br /&gt; - 기하학적 도형 펜(geometric pen): 논리적 다위값에 따라 그리기 동작 수행 / 장식 펜보다 더 자유롭게 그리기 옵션을 설정&lt;br /&gt;  -&gt;장식 펜의 스타일 중 PS_ALTERNATE 스타일을 제외한 모든 스타일 적용가능&lt;br /&gt;  -&gt; 속성: ① 펜드로 그리기 연산을 수행할 때 사용될 패턴 ② 해칭 스타일. 패턴에 따라 해치 스타일을 지정할 수 있는 것들이 있고 없는 것들이 있다. ③ 선의 종단점의 형태 ④ 두 선의 교차점이 그려지는 형태&lt;br /&gt;&lt;br /&gt;* LOGBRUSH 구조체를 사용하여 펜 객체 생성하기&lt;br /&gt;&lt;pre&gt;    LOGBRUSH lbrGrnHatch;&lt;br /&gt;&lt;br /&gt;    lbrGrnHatch.lbStyle = BS_HATCHED;&lt;br /&gt;    lbrGrnHatch.lbColor = RGB(0, 255, 0);&lt;br /&gt;    lbrGrnHatch.lbHatch = HS_DIAGCROSS;&lt;br /&gt;&lt;br /&gt;    CPen penGreometric(PS_DOT | PS_GEOMETRIC | PS_ENDCAPROUD,  // 펜의 스타일&lt;br /&gt;                                    50,                                                                   // 펜의 굵기&lt;br /&gt;                                    &amp;lbrGrnHatch,                                                   // LOGBRUSH의 구조체에 대한 포인터&lt;br /&gt;                                    0,                                                                    // 다음 인자로 주어질 스타일 배열의 길이&lt;br /&gt;                                    NULL);                                                            // DWORD 값의 원소들을 갖는 배열의 포인터&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;* 스톡 펜(BLAC_PEN, WHITE_PEN, NULL_PEN)&lt;br /&gt;&lt;br /&gt;* 펜으로 할수 있는 그리기 연산들&lt;br /&gt; - Ellipse: 타원형을 그리는 함수. 원을 그릴 때도 사용&lt;br /&gt; - Arc: 타원의 일부분인 호(Arc)를 그려줌&lt;br /&gt; - LineTo와 MoveTo: 선을 그릴 때 사용. 강조선이나 다각형 등 다양한 형태의 도형을 그릴 수 있음&lt;br /&gt;&lt;br /&gt;* 브러쉬(CBrush) 속성&lt;br /&gt; - color: 펜의 색상을 지정할 때처럼 COLORREF형의 값을 사용하여 지정&lt;br /&gt; - pattern: 브러쉬가 사용할 패턴 지정&lt;br /&gt; - hatching style: 해칭 스타일 지정&lt;br /&gt;&lt;br /&gt;* 브러쉬 형태&lt;br /&gt; - 고형 브러쉬(solid brush): PS_SOLID 스타일의 펜과 유사하지만 영역을 채우는데 사용 / COLORREF형 인자를 통해 색상값을 부여한 다음 사용하는 것이 일반적 &gt;&gt; CreateSolidBrush&lt;br /&gt; - 스톡 브러쉬(stock brush): Windows가 관리, 이미 만들어짐&lt;br /&gt; - 해치 브러쉬(hatch brush): 해치 패턴을 통해 지정된 영역을 채움 &gt;&gt; CreateHatchBrush&lt;br /&gt; - 패턴 브러쉬(pattern brush): 8x8 크기의 비트맵 패턴으로 지정된 영역을 채움 &gt;&gt; CreatePatternBrush&lt;br /&gt;예제)&lt;br /&gt;    CBrush brBlack(RGB(0, 0, 0));  // 생성자를 통해 CBrush 객체를 생성하고 초기화하는 방법&lt;br /&gt;&lt;br /&gt;    CBrush brBlack;                                    // 생성자를 통해 객체를 생성한 다음,&lt;br /&gt;    brBlack.CreateSolidBrush(RGB(0, 0, 0));  // 브러쉬 생성 멤버 함수를 호출하여 명시적으로 브러쉬를 생성&lt;br /&gt;&lt;br /&gt;* CBrush class에는 네 개의 생성자가 정의되어 있다.&lt;br /&gt; - 기본 생성자(default constructor)&lt;br /&gt; - 색상값을 나타내는 COLORREF형의 인자를 하나 받는 생성자&lt;br /&gt; - 해치 브러쉬를 생성할 때 사용되는 생성자(인자 중 하나로 해치 스타일을 지정하는 값을 받음)&lt;br /&gt; - 비트맵 패턴을 사용하는 브러쉬를 생성하고자 할 때 사용&lt;br /&gt;&lt;br /&gt;* 논리적 브러쉬: LOGBRUSH 구조체를 사용&lt;br /&gt; - LOGBRUSH의 멤버 변수: lbrStyle, lbrColor(COLORREF 형의 값), lbrHatch&lt;br /&gt;&lt;br /&gt;* 스톡 브러쉬(BLACK_BRUSH, DKGRAY_BRUSH, GRAY_BRUSH, HOLLOW_BRUSH, LTGRAY_BRUSH, NULL_BRUSH, WHITE_BRUSH)&lt;br /&gt;    CBrush *pOldBrush = pDC-&gt;SelectStockObject(BLACK_BRUSH);&lt;br /&gt;&lt;br /&gt;* 공통 대화상자(common dialog box): 파일 열기, 폰트 선택, 색상 선택, 찾기/바꾸기(find/repalce), 인쇄 및 인쇄 옵션 설정&lt;br /&gt; - 공통 색상 대화상자: CColorDialog class&lt;br /&gt;&lt;pre&gt;    CColorDialog dlgColor;&lt;br /&gt;    if( dlgColor.DoModal() == IDOK )&lt;br /&gt;    {//....&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;* 그리기 모드를 TRANSPARENT로 설정해 두고 텍스트를 뿌리면 텍스트에는 텍스트 배경색 속성(text background color)이 적용되지 않게 되므로, 그 텍스트 아래쪽에 있는 부분의 색이 비쳐 보일 수 있게 된다.&lt;br /&gt;&lt;br /&gt;* GetSafeHandle 함수: GDL 객체에 대해서 호출, 해당 객체에 대한 핸들(handle)을 반환&lt;br /&gt; - WM_CTLCOLOR 메시지를 처리하여 대화상자의 색상 변경하기&lt;br /&gt;&lt;pre&gt;    HBRUSH CMapModeDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)&lt;br /&gt;    {&lt;br /&gt;        if( nCtlColor  == CTLCOLOR_DLG || nCtlColor == CTLCOLOR_STATIC )&lt;br /&gt;        {&lt;br /&gt;            pDC-&gt;SetBkMode(TRANSPARENT);&lt;br /&gt;            return (HBRUSH)m_brControl.GetSafeHandle();&lt;br /&gt;        }&lt;br /&gt;        else&lt;br /&gt;            return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;* 컨트롤의 타입을 나타내는 값들&lt;br /&gt; - CTLCOLOR_BTN: 버튼 컨트롤&lt;br /&gt; - CTLCOLOR_DLG: 대화상자&lt;br /&gt; - CTLCOLOR_EDIT: 에디트 컨트롤&lt;br /&gt; - CTLCOLOR_LISTBOX: 리스트 박스 컨트롤&lt;br /&gt; - CTLCOLOR_MSGBOX: 메시지 박스 컨트롤&lt;br /&gt; - CTLCOLOR_SCROLLBAR: 스크롤바 컨트롤&lt;br /&gt; - CTLCOLOR_STATIC: 정적(static) 컨트롤&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-8573870496272638651?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/8573870496272638651/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-6-study-3.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8573870496272638651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8573870496272638651'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-6-study-3.html' title='[초보자를 위한 Visual C++ 6]에 대한 Study 정리3'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-1972555839221010672</id><published>2008-12-19T11:26:00.000+09:00</published><updated>2008-12-24T14:11:31.700+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[초보자를 위한 Visual C++ 6]에 대한 Study 정리2</title><content type='html'>&lt;p&gt;제 8강. 메시지와 이벤트 기반 프로그래밍&lt;br /&gt;&lt;br /&gt;* Windows Programming Model&lt;br /&gt; - Windows OS에서  실행되는 Program은 Window OS뿐만 아니라 동시에 실행중인 다른 Program과 협력해야 한다.&lt;br /&gt; - Windows  Program들은 자원을 서로 공유해야 한다. -&gt; 자원을 사용하려면 운영체제에게 반드시 해당 자원을 요청해야 하며, 사용이 끝나면 해당  자원을 OS에 반드시 반환해야 한다.&lt;br /&gt;&lt;br /&gt;* Message&lt;br /&gt; - 기본 윈도우 프로시저(default window  procdure): Windows가 제공하는 특별한 Message 처리 함수(message handling function) -&gt;  Program 안에서 처리할 필요가 없는 message들의 경우 , 해당 program은 그 message들을 default window  procedure에 바로 넘긴다.&lt;br /&gt; - Windows program에서 message를 많이 사용하고 있는 이유: ① messag는  물리적인 자료의 집합 / queue 등의 자료 구조와 연동한다거나, 그 처리 과정에 우선순위 개념을 도입한다거나 하는 일이 쉽게 때문 ②  message 기반의 program들은 다른 computer system으로 손쉽게 이식될 수 있다. 즉, 이식성이 높다.&lt;br /&gt;&lt;br /&gt;*  Mouse event&lt;br /&gt; - WM_NCMOUSEMOVE: mouse가 menu나 caption bar 부분 위로 지나갈 때 발생하는  message&lt;br /&gt; - WM_MOUSEMOVE: mouse가 window의 client 영역 위로 지나갈 때 발생하는 message&lt;br /&gt; -  이 외에 많은 Message들이 mouse의 변경이 발생할 때마다 발생한다.&lt;br /&gt;&lt;br /&gt;* message map: 전달되는 message와  해당 message에 대한 처리 함수를 연결&lt;br /&gt; - //{{AFX_MSG_MAP부터 //}}AFX_MSG_MAP까지의 부분은  ClassWizard가 사용하는 영역&lt;br /&gt;&lt;br /&gt;* WM_PAINT는 window의 client 영역이 무효화(invalidation)되었을  때 발생하는 message -&gt; window가 잠시 가려졌다가 다시 보이거나, 아니면 닫혔거나 다시 열리거나 하는 경우에  발생&lt;br /&gt;&lt;br /&gt;* MFC 기반 Class: 대부분의 class의 최상위 class는 CObject임. / window나 control에 대한  class들은 CWnd class를 계승함. --&gt;&gt; CObject나 Cwnd같은 class들을 흔히 'MFC 기반(Base)  Class'라고 한다.&lt;br /&gt;&lt;br /&gt;* CObject Class의 서비스&lt;br /&gt; - 진단형 메모리 관리 기능(Diagnostic Memory  Management): Memory leak이 발경되었을 때 그 사실을 알리는 message를 제공. memory leak은 주로 동적으로  할당된 memory가 system에 반환되지 않았을 경우에 발생&lt;br /&gt; - 동적 생성 기능(Dynamic Creation): CRuntime  class를 사용하여 객체들이 실행 시간에 생성될 수 있게 함. new 연산자를 사용하여 객체를 동적으로 생성하는 것과 다른 개념&lt;br /&gt; -  직렬화 기능(Serialization): 객체의 내용이 객체지향적 방식으로 저장되고 복원될 수 있도록 해줌&lt;br /&gt; - MFC class  library는 실행 시간 클래스 정보(runtime class information)를 사용하여 program 내에 오류가 발생하였을 때 진단  정보(diagnostic information)를 생성한다. runtime class information은 직렬화를 수행할 때에도  사용&lt;br /&gt;&lt;br /&gt;* CWnd Class(CObject class를 계승): MFC program에서 사용되는 모든 window들이 공통적으로  갖는 기능을 구현&lt;br /&gt; - MFC program에서 사용되는 거의 모든 주요 객체들은 CObject 객체임.&lt;br /&gt; - MFC program에  등장하는 모든 window는 전부 CWnd 객체임.&lt;br /&gt; - CWnd는 CObject를 계승하였으므로 CObject에 정의된 모든 기능을  포함&lt;br /&gt;&lt;br /&gt;* CObject와 CWnd&lt;br /&gt; - CObject는 개발자가 새로운 class를 만들고자 할 때 그 기반 class로  사용&lt;br /&gt; - CWnd는 함수의 인자 타입이나 반환값의 타입으로 사용 / MFC program 내에 등장하는 window들을 그 타입에  관계없이 조작하기 원할 때 사용하는 일반적 pointer 타입으로 쓰이는 것이 보통&lt;br /&gt;&lt;br /&gt;* 하위 class에서 CObject  class의 기능을 사용하는 등급&lt;br /&gt; - 기본적 메모리 누수 현상 검사 기능만 사용하는 경우: 어떤 매크로도 사용하지 않을 때 이  등급임.&lt;br /&gt; - 실행 시간 class 식별 기능까지 사용하는 경우: DECLARE_DYNAMIC 매크로를 class 선언부에 두고,  IMPLEMENT_DYNAMIC 매크로를 class 정의부에 두면 이 등급임.&lt;br /&gt; - 동적 객체 생성 기능까지 사용하는 경우:  DECLARE_DYNCREATE 매크로를 class 선언부에 두고 IMPLEMENT_DYNCREATE 매크로를 class 정의부에 두면 이  등급임.&lt;br /&gt; - 직렬화 기능까지 사용하는 경우: 가장 높은 등급 / CObject class의 모든 기능을 사용하는 등급 /  DECLARE_SERIAL 매크로를 class 선언부에 두고, IMPLEMENT_SERIAL 매크로를 class 정의부에 두면 이  등급임.&lt;br /&gt; -&gt; DECLARE로 시작하는 모든 매크로들은 인자를 딱 하나 받는데 바로 class의 이름임.&lt;br /&gt; -&gt;  IMPLEMENT로 시작하는 모든 매크로들은 일반적으로 두 개의 인자를 받는다(class 이름, 그 상위 class 이름): 단,  IMPLEMENT_SERIAL은 예외적으로 세 개의 인자를 받는다.&lt;br /&gt;&lt;br /&gt;* 객체 유효성 검사(매크로)&lt;br /&gt; - ASSERT: 인자로  절달받은 표현식(expression)의 값이 FALSE로 계산될 경우 오류 message dialog를 화면에 출력 -&gt; debug  mode로 build된 program에서만 동작&lt;br /&gt; - VERIFY: ASSERT와 동일한 역할 / 단, 이 매크로는 release  mode에서 build하더라도 동작함 -&gt; 단지 VERIFY의 검사 기능만 동작하지 않음&lt;br /&gt; - ASSERT_VALID:  CObject형 객체에 대한 pointer를 인자로 받음. 해당 pointer가 제대로 된 객체를 가리키고 있는 정상적인 pointer인지 검사  -&gt; CObject를 계승하여 정의된 class의 경우, AssertValid 멤버 함수를 재정의(override)하면  ASSERT_VALID로 하여금 그 class로부터 만들어진 객체의 상태를 검사하도록 할 수 있음&lt;br /&gt;&lt;br /&gt;제 9강. 문서/뷰  구조&lt;br /&gt;&lt;br /&gt;* 이 구조를 따르는 프로그램이 갖는 주 class&lt;br /&gt; - CDocument class를 계승하여 만들어진 document  class: program의 자료 관리를 담당&lt;br /&gt; - CView class를 계승하여 만들어진 view class: 문서와 사용자간의  상호작용을 조절을 담당&lt;br /&gt; - CFrameWnd class를 계승하여 만들어진 frame class: view를 비롯한 사용자  interface 요소들(menu나 tool bar 등)을 관리&lt;br /&gt; - CWindApp class를 계승하여 만들어진 application  class: program을 실제로 시작시키는 역할 / windows OS와 program간의 상호작용을 처리하는 역할&lt;br /&gt;&lt;br /&gt;* 문서/뷰  구조를 사용하는 이유: ① 다량의 code를 거의 공짜로 사용할 수 있음 ② 거의 모든 종류의 Windows program에 적합한, 굉장히  유연한 구조&lt;br /&gt; - 문서/뷰 구조의 확장성이 매우 높다.&lt;br /&gt;&lt;br /&gt;* MFC의 문서/뷰 구조에서 사용되는 class의 범주&lt;br /&gt; -  control이나 사용자 interface 요소와 같이 특정한 view에 관계된 class들&lt;br /&gt; - 자료나 자료 처리 class처럼 특정한  문서에 관계되는 class들&lt;br /&gt; - tool bar나 상태 표시줄, menu와 같은 frame class 및 그 frame class의  구성요소에 대한 class들&lt;br /&gt; - CWinApp로부터 계승되어 정의된 class에서 발생하는 응용 program과 windows OS간  상호작용에 관계된 class들&lt;br /&gt;&lt;br /&gt;* 주소 연산자와 역참조 연산자&lt;br /&gt; - 주소 연산자 &amp;amp;: 변수나 객체긔 주소를  반환&lt;br /&gt; - 역참조 연산자 *: 주소값에 해당하는 위치에 있는 변수나 객체를 반환(주소 연산자의 반대로 동작)&lt;br /&gt; - ex)  *(&amp;amp;myAge) = 42;  --&gt;&gt; myAge라는 변수의 주소값을 얻어 낸 다음 그 주소값을 역참조 연산자에 주어 해당  위치에 있는 변수(myAge)를 찾아낸 다음, 거기에 42를 대입&lt;br /&gt;&lt;br /&gt;* pointer와 역참조 연산자의 용례&lt;br /&gt;&lt;pre&gt;#include  &lt;iostream&gt;&lt;/p&gt; &lt;p&gt;using namespace std;&lt;/p&gt; &lt;p&gt;int main()&lt;br /&gt;{&lt;br /&gt;    int nVar;&lt;br /&gt;    int *pVar;  // int형 변수에 대한 pointer 변수  pVar를 선언&lt;/p&gt;&lt;p&gt;                       // (여기서의 * 연산자는 역참조 연산자가 아니다.)&lt;/p&gt; &lt;p&gt;    // 변수 nVar에 값을 저장한 다음 출력한다.&lt;br /&gt;    // nVar의 주소도 함께 출력한다.&lt;br /&gt;    nVar =  5;&lt;/p&gt; &lt;p&gt;    cout &lt;&lt; "nVar's value is " &lt;&lt; nVar &lt;&lt; "." &lt;&lt;  endl;&lt;br /&gt;    cout &lt;&lt; "nVar's address is " &lt;&lt; &amp;amp;nVar &lt;&lt; "."  &lt;&lt;&gt; &lt;p&gt;    // nVar의 주소를 포인터 pVar에 저장한다.&lt;br /&gt;    // pVar에 대한 정보를 함께 출력한다.&lt;br /&gt;    pVar  = &amp;nVar;&lt;/p&gt; &lt;p&gt;    cout &lt;&lt; "pVar's value is " &lt;&lt; pVar &lt;&lt; "." &lt;&lt;  endl;&lt;br /&gt;    cout &lt;&lt; "*pVare's value is " &lt;&lt; *pVar &lt;&lt; "."  &lt;&lt;&gt; &lt;p&gt;    // pVar가 가르키는 변수의 값을 변경한다.&lt;br /&gt;    *pVar = 7;&lt;/p&gt; &lt;p&gt;    cout &lt;&lt; "nVar's value is " &lt;&lt; nVar &lt;&lt; "." &lt;&lt;  endl;&lt;br /&gt;    cout &lt;&lt; "pVar's value is " &lt;&lt; pVar &lt;&lt; "."  &lt;&lt; endl;&lt;br /&gt;    cout &lt;&lt; "*pVar's value is " &lt;&lt; *pVar &lt;&lt;  "." &lt;&lt;&gt; &lt;p&gt;    return 0;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;* 참조와 그 사용법&lt;br /&gt; - 참조형 변수는 참조 연산자(reference  operator) &amp;amp;를 사용하여 선언한다.&lt;br /&gt; - 변수를 선언할 때 사용된 &amp;amp;는 주소 연산자가 아니라 참조 연산자라는 점에  주의해야 한다.&lt;br /&gt; - 참조형 변수를 쓰면 역참조 연산자를 사용할 필요가 없다.(장점)&lt;br /&gt; - 일단 정의되고 나면 다른 변수를 참조할  수가 없다.(단점)&lt;br /&gt;&lt;br /&gt;* 변수에 대한 '참조'는 변경할 수 없다.&lt;br /&gt;&lt;pre&gt;void refFunc()&lt;br /&gt;{&lt;br /&gt;    int  nFoo = 5;&lt;br /&gt;    int nBar = 10;&lt;br /&gt;&lt;br /&gt;    // nFoo에 대한 참조형 변수 nRef를 정의한다.&lt;br /&gt;     int &amp;amp;nRef = nFoo;&lt;br /&gt;&lt;br /&gt;    // nFoo의 값을 변경한다.&lt;br /&gt;    nRef =  nBar;&lt;br /&gt;&lt;br /&gt;    CString strMsg;&lt;br /&gt;&lt;br /&gt;    strMsg.Format("nFoo = %d, nBar =  %d", nFoo, nBar);&lt;br /&gt;&lt;br /&gt;    AfxMessageBox(strMsg);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;* 참조를 사용하여 인자를  전달하면 객체의 내용이 복사되는 것을 막을 수 있는데, 함수 내부를 coding할 때 pointer를 사용하지 않아도 되기 때문에 편리  -&gt; 크기가 큰 객체를 인자로 넘겨야 한다면 참조형 인자를 사용하는 것이 좋다.&lt;br /&gt;&lt;br /&gt;* IS-A 관계: 상위 class A로부터  만들어진 하위 class B로부터 생성된 객체들은 당연히 class B를 그 자료형으로 갖지만, A형의 객체라고도 말할 수  있다.&lt;br /&gt;&lt;br /&gt;* 가상 함수(virtual function): 가상 함수로 선언된 멤버 함수를 pointer를 통해 호출하게 되면  컴파일러는 "pointer가 가리키는 객체의 자료형을 실행 시간에 검사해서 그 타입에 따라 그에 맞는 멤버 함수를 호출하라"는 정보를 실행 파일  code에 기록하게 된다. -&gt; 실제로 어떤 함수가 호출될지는 실행 시간에 결정되는 함수&lt;br /&gt;&lt;br /&gt;* 문서/뷰 인터페이스&lt;br /&gt; -  문서 객체와 뷰 객체간의 통신에 관계된 인터페이스&lt;br /&gt; _ Windows와 문서/뷰 객체간 통신에 관계된 인터페이스&lt;br /&gt;&lt;br /&gt;* 문서/뷰  program에서 가장 중요한 인터페이스 함수&lt;br /&gt; - GetDocument:CView class의 member function - 해당  view 객체에 연결된 문서 객체에 대한 pointer를 얻고자 할 때 호출&lt;br /&gt; - UpdateAllViews: CDocument  class의 member function - 해당 문서 객체에 연결되어 있는 모든 view 객체들을 갱신하고자 할 때 호출(해당 문서 객체에  연결되어 있는 모든 view 객체에서 문서 객체가 갱신되었으니 view 영역을 다시 그리라는 뜻을 전달)&lt;br /&gt; -  OnN　　ewDocument: CDocument class의 member function - 해당 문서 객체의 member value들의 값을  초기화하는 역할을 담당&lt;br /&gt; -&gt; 이 인터페이스들은 문서/뷰 구조를 갖는 program이 어떤 특정한 작업을 수행하려고 할 때 반드시  호출되는 함수들임.&lt;br /&gt;&lt;br /&gt;* TRACE("CDVTest::OnNewDocument"); -&gt; TRACE 매크로는 complier의  debug 창에 message를 출력하기 위해 사용되는 매크로 이다. program 수행 과정을 추적하는데 유용한 정보들을 화면에 출력하는  용도로 사용&lt;br /&gt;&lt;br /&gt;* 뷰가 문서 객체의 내용을 참조해야 할 경우, GetDocument 함수를 호출하여 문서 객체에 대한 pointer를  가져온다.&lt;br /&gt; - 가져온 pointer 값이 제대로 된 것인지를 ASSERT_VALID 매크로를 사용하여 검사&lt;br /&gt;&lt;br /&gt;* pointer  변수를 사용하려면 그 값을 NULL로 초기화하던지, 아니면 동적으로 할당된 memory 영역의 주소를 부여해야 한다.&lt;br /&gt;int *pInt =  NULL:&lt;br /&gt;int *pInt = new int;&lt;br /&gt;&lt;br /&gt;ex)&lt;br /&gt;int n;&lt;br /&gt;int *pInt;&lt;br /&gt;pInt =  &amp;n;&lt;br /&gt;pInt = 42;  // OK&lt;br /&gt;&lt;br /&gt;pInt = new int;&lt;br /&gt;*pInt = 42; //  OK&lt;br /&gt;delete pInt;&lt;br /&gt;&lt;br /&gt;* 함수의 인자로 객체를 넘기는 것보다는 pointer를 넘기는 것이 언제나 효율적:pointer  변수 크기는 32비트를 넘지 않는 반면, 객체의 크기는 32비트를 넘기는 것이 일반적인데다가, 객체를 함수의 인자로 넘기게 되면 그 전달  과정에서 복사 연산이 일어나게 되는 것은 물론이고, 복사되어 만들어진 객체는 반드시 메모리에서 삭제되어야 하므로(소멸자가 반드시 수행되어야  함.) 오버해드가 증가한다.&lt;/p&gt;&lt;pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:webdings;font-size:100%;"  &gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-1972555839221010672?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/1972555839221010672/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-6-study-2.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1972555839221010672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1972555839221010672'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-6-study-2.html' title='[초보자를 위한 Visual C++ 6]에 대한 Study 정리2'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-7728210317569036466</id><published>2008-12-19T11:25:00.000+09:00</published><updated>2008-12-24T14:07:04.505+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[초보자를 위한 Visual C++ 6]에 대한 Study 정리1</title><content type='html'>&lt;p align="justify"&gt;// 책의 내용은 이미 알고 있는 내용들이지만&lt;br /&gt;// 정확한 정의나 기본에 대한 공부가 부족하다고  생각되어&lt;br /&gt;// 나에게 맞게 내용을 정리하였음.&lt;br /&gt;&lt;br /&gt;제 1강. Visual C++ 6을 사용한다는 것&lt;br /&gt;&lt;br /&gt; *  Developer Studio를 설치하면 보통은 MSDN 라이브러리의 색인 정보만 하드 디스크로 옮겨지고, 실제 내용은 설치 CD에 그대로 남아  있게 된다. 그러므로 MSDN 라이브러리에 실린 실제 내용을 보고자 하는 경우 CD가 있어야 하며, 검색 속도도 약간 느려진다. 따라서 MSDN  라이브러리 검색 속도를 높이고자 한다면 MSDN 라이브러리 설치 윈도우를 다시 실행시켜, 라이브러리 전부를 하드 디스크로 다시 옮겨야  한다.&lt;br /&gt;&lt;br /&gt;제 2강. C++ 프로그래밍 맛보기&lt;br /&gt;&lt;br /&gt; * 타입 안정성(Type Safety): 변수를 사용할 때는 항상 선언을  해주어야 하는데 컴파일이 이루어지는 시점에 프로그래밍 오류를 손쉽게 발견할 수 있도록 하는 언어적 특성&lt;br /&gt;&lt;br /&gt; * 변수명을 정할 때는  가급적 헝가리 표기법(Hungarian Notation)을 따를 것 -&gt; 소스 코드의 가독성 향상&lt;br /&gt;&lt;br /&gt; * using  namespace std; -&gt; 이 명령문은 컴파일러에게 "이 아래에 있는 코드에 등장하는 이름들은 전역 이름 공간 혹은 이름 공간  'std' 안에 정의되어 있는 것으로 간주하라"는 지령을 내린다.&lt;br /&gt;&lt;br /&gt;제 3강. 함수, 구조체 그리고 클래스&lt;br /&gt;&lt;br /&gt; *  함수(function): 한 프로그램 안에서 빈번히 수행되는 잘 정의된 작업 단위(task), 컴퓨터 명령어(instruction)의  집합&lt;br /&gt;&lt;br /&gt; * 함수 정의르 구성하는 요소: 함수의 반환값 및 그 자료형, 함수의 이름, 함수의 인자 리스트, 함수 몸체({와 } 사이에  둔다)&lt;br /&gt;&lt;br /&gt; * 함수를 호출(call)한다: 프로그램의 수행 흐름을 해당 함수로 이동시킨다.&lt;br /&gt;&lt;br /&gt; * 클래스와 구조체는  비슷하다. 차이점은 클래스에서는 멤버가 'public'이라고 선언되지 않는다면 클래스 외부에서 접근이 불가능 하지만 구조체는 모두 접근이  기낭하다는 점이다. -&gt; 구조체는 내부의 모든 영역이 기본적으로 'public'임&lt;br /&gt;&lt;br /&gt; * 클래스 인스턴스(Instance)(또는  객체(Object)라고도 불림)는 클래스로부터 만들어진 개체를 일컫는다.&lt;br /&gt;&lt;br /&gt; * 생성자(constructor): 객체가 사용하게 될  시스템 자월을 미리 할당 / 멤버 변수의 값을 초기화 / 기타 필요한 초기화 작업 수행&lt;br /&gt;&lt;br /&gt;제 4강. 대화상자  사용하기&lt;br /&gt;&lt;br /&gt; * Modal Dialog: Modal Dialog의 사용이 끝나기 전까지 사용자는 프로그램의 다른 부분을 사용할 수  없음.&lt;br /&gt;&lt;br /&gt; * Modeless Dialog: Dialog의 사용을 끝내지 않고도 프로그램의 다른 부분을 사용할 수  있음.&lt;br /&gt;&lt;br /&gt; * WINDOWS Message Box Dialog에서 사용되는  icon&lt;br /&gt;   아이콘                      의미    Message  Box Type&lt;br /&gt;-------------------------------------------------------&lt;br /&gt;    느낌표                      경고    MB_ICONEXCLAMATION&lt;br /&gt;   동그라미 안의 문자 "i" 정보     MB_ICONINFORMATION&lt;br /&gt;   물음표                      질문    MB_ICONQUESTION&lt;br /&gt;    멈춤기호                   에러    MB_ICONSTOP&lt;br /&gt;-&gt;&gt;&lt;br /&gt;    int nChoice =  AfxMessageBox("Overwrite existing file?", MB_YESNOCANCEL |  MB_ICONQUESTION);&lt;br /&gt;&lt;pre&gt;    if( nChoice == IDYES )&lt;br /&gt;    {&lt;br /&gt;        // 파일을  덮어쓴다.&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt; * 버튼 타입&lt;br /&gt;    메시지 박스 타입                       대화상자에 있는  버튼&lt;br /&gt;  --------------------------------------------------------&lt;br /&gt;     MB_ABORTRETRYIGNORE        Abort, Retry 그리고 Ignore&lt;br /&gt;     MB_OK                                    OK&lt;br /&gt;     MB_OKCANCEL                       OK와 Cancel&lt;br /&gt;     MB_RETRYCANCEL                  Retry와 Cancel&lt;br /&gt;     MB_YESNO                              Yes와 No&lt;br /&gt;     MB_YESNOCANCEL                 Yes, No 그리고 Cancel&lt;br /&gt;&lt;br /&gt; * 메시지 박스의 반환값&lt;br /&gt;    반환값              선택된 버튼&lt;br /&gt;  ----------------------------&lt;br /&gt;    IDABORT          Abort&lt;br /&gt;   IDCANCEL        Cancel&lt;br /&gt;   IDIGNORE          Ignore&lt;br /&gt;   IDNO                No&lt;br /&gt;   IDOK                OK&lt;br /&gt;    IDRETRY          Retry&lt;br /&gt;   IDYES              Yes&lt;br /&gt;&lt;br /&gt;제 5강. 버튼 컨트롤(CButton  class)&lt;br /&gt;&lt;br /&gt; * Window Button 종류: pushbutton / radio button / check box /  owner-draw button / group box&lt;br /&gt;&lt;br /&gt; * SetWindowText(): Button Caption  변경&lt;br /&gt;&lt;br /&gt; * pButton-&gt;EnableWindow(): 컨트롤을 활성화시킨다. (괄호 안에 FALSE이 들어가면 비활성화 /  TRUE -&gt; 활성화)&lt;br /&gt;&lt;br /&gt; * bool 타입은 C++ 표준에 정의된 자료형이고, BOOL 타입은 Window 헤더 파일에 정의된  자료형&lt;br /&gt;&lt;br /&gt;제 6강. 에디트 컨트롤(CEdit class)&lt;br /&gt;&lt;br /&gt; * 단일 행 에디트 컨트롤: Single Line Edit  Control - SLE&lt;br /&gt;&lt;br /&gt; * 다중 행 에디트 컨트롤: Multiple Line Edit Control - MLE&lt;br /&gt;&lt;br /&gt; *  CEdit를 사용하여 에디트 컨트롤의 입력 정보 수집&lt;br /&gt;&lt;pre&gt;    void CTestDlg::OnTest()&lt;br /&gt;    {&lt;br /&gt;         CString szEdit;&lt;br /&gt;        CString szResult;&lt;br /&gt;&lt;br /&gt;        int nLength =  m_editTest.LineLength();&lt;br /&gt;&lt;br /&gt;        m_editTest.GetWindowText(szEdit);&lt;br /&gt;        szResult.Format("%s  has %d chars", szEdit, nLength);&lt;br /&gt;&lt;br /&gt;        AfxMessageBox(szResult);&lt;br /&gt;     }&lt;/pre&gt;&lt;br /&gt; * DDV(Dialog Data Validation): 데이터를 확인하는데 사용&lt;br /&gt;&lt;br /&gt; * DDX(Dialog Data  Exchange): 대화상자의 컨트롤에 데이터를 보내거나 받을 때 사용&lt;br /&gt;&lt;br /&gt; * DoDataExchange: MFC 프레임워크가  호출하게 되는 가상 함수, 컨트롤과 대화상자 멤버 변수 사이의 자료 전송 과정을 처리&lt;br /&gt;   -&gt; 직접 이 함수를 호출할 필요는  없음(UpdateData를 이용) : TN026 참고&lt;br /&gt;&lt;br /&gt;제 7강. 리스트 박스 컨트롤(CListBox class)과 콤보 박스  컨트롤(CComboBox class)&lt;br /&gt;&lt;br /&gt; * m_listBox.AddString("Gwen");&lt;br /&gt;&lt;br /&gt; *  m_listBox.InsertString(0, "Alex");&lt;br /&gt;&lt;br /&gt; * m_listBox.GetCount();&lt;br /&gt;&lt;br /&gt; *  m_listBox.DeleteString(8);&lt;br /&gt;&lt;br /&gt; * m_listBox.ResetContent();&lt;br /&gt;&lt;br /&gt; * 리스트  박스에서 부모 윈도우로 전송되는 메시지&lt;br /&gt; - LBN_DBLCLK: 사용자가 리스트 박스 내에 표시된 항목을 더블 클릭한 경우 전송되는  메시지&lt;br /&gt; - LBN_ERRSPACE: 메모리 부족으로 리스트 박스가 어떤 연산을 처리할 수 없었음을 알리는 메시지&lt;br /&gt; -  LBN_KILLFOCUS: 리스트 박스가 입력 포커스를 잃기 직전에 보내지는 메시지&lt;br /&gt; - LBN_SELCANCEL: 사용자가 리스트 박스  내의 항목 선택을 취소했을 때 전송되는 메시지&lt;br /&gt; - LBN_SELCHANGE: 리스트 박스의 선택 상태가 바뀌었을 때 보내지는  메시지&lt;br /&gt; - LBN_SETFOCUS: 리스트 박스가 입력 포커스를 받았을 때 보내지는 메시지&lt;br /&gt;&lt;br /&gt; * 리스트 박스 메시지  처리&lt;br /&gt;&lt;pre&gt;    void CListBoxDlg::OnDblclkList()&lt;br /&gt;    {&lt;br /&gt;        int nSelection =  m_listBox.GetCurSel();&lt;br /&gt;&lt;br /&gt;        if( nSelection != LB_ERR  )&lt;br /&gt;        {&lt;br /&gt;            CString  szSelection;&lt;br /&gt;&lt;br /&gt;            m_listBox.GetText(nSelection,  szSelection);&lt;br /&gt;&lt;br /&gt;            AfxMessageBox(szSelection);&lt;br /&gt;        }&lt;br /&gt;     }&lt;/pre&gt;&lt;br /&gt; * 콤보 박스 타입: 단순 콤보 박스(Simple) / 드롭다운 콤보 박스(drop-dawn combo box) / 드롭다운  리스트 박스(drop-dawn list box)&lt;br /&gt;&lt;br /&gt; * comboBox.AddString("Riley"); /  comboBox.InsertString(0, "Mitch");&lt;br /&gt;   -&gt; 두 함수의 수행 과정에서 오류가 발생된 경우, LB_ERR  대신 CB_ERR가 반환된다는 차이가 있음. 공간이 부족해 항목이 추가되지 못한 경우에도 LB_ERRSPACE 대신 CB_ERRSPACE가  반환된다.&lt;br /&gt;&lt;br /&gt; * int index = m_combo.FindString(-1, szSearch);  // 두 번째 인자로 준  문자열로 시작하는 항목 검색, 그 첨자 반환&lt;br /&gt;&lt;br /&gt; * int index = m_combo.FindStringExact(-1,  szSearch);  // 정확하게 일치하는 항목 검색, 첨자 반환&lt;br /&gt;&lt;br /&gt; * CBN_CLOSEUP: 콤보 박스의 리스트 박스가 열렸다  닫힐 때 발생&lt;br /&gt;&lt;br /&gt; * CBN_EDITUPDATE: 사용자가 에디트 컨트롤에 문자열을 입력하였을 때 발생 &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:webdings;font-size:100%;"  &gt;//------------------------------------------------------------------------&lt;br /&gt;야휴 블로그에서 옮겨온 data입니다.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-7728210317569036466?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/7728210317569036466/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-6-study-1.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/7728210317569036466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/7728210317569036466'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-6-study-1.html' title='[초보자를 위한 Visual C++ 6]에 대한 Study 정리1'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-2834893925731792665</id><published>2008-12-19T11:15:00.002+09:00</published><updated>2008-12-19T11:16:25.696+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DICOM'/><title type='text'>[PACS]국제 의료영상 표준</title><content type='html'>&lt;span style="font-family: webdings;"&gt;1. 정보 기술&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt; * DICOM: PACS에서 서로 다른 형태의 의료장비의 연결을 위하여 network를 사용한 message 전송에 관한  규약&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt; * PACS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  (1) 기존의 필름 중심의 병원: 필름 사용, 유지와 관리비용 초래&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  (2) 검사자료 공유  불가&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  (3) Film-less 병원 시스템 구축을 위함&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt; * PACS의 요구조건&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  - 충분한 영상의 신뢰성&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;   - 충분한 영상, 정보 전달 속도의 확보&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  - 자격이 부여된 병원 직원이 경쟁하지 않고 영상을 공급받을 수 있어야 함&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  - 시스템  구성의 실패나 실수로 인한 정보의 손실이나 파괴에 대한 대비 -&gt; DICOM Protocol 등장&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt; * DICOM  Network: TCP/IP, OSI 7 layer 채택&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt; * DICOM Information Model&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt; *  DICOM Data: Image Data 앞에 Header를 사용하여 환자 및 검사정보를 기록하는 방식&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;2. DICOM  Communication&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt; * DICOM 이해&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  (1) 의료 영상 교환과 구성방법 및 관련 정보를 기술한  명세(Specification)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  (2) 1984년 ACR과 NEMA가 공동으로 표준화 시작&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  (3) 1985년 표준화 첫 번째  제정&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  (4) 1988년 1993년 두 번 개정&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  (5) 현재 3.0으로 DICOM으로 불림&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt; * DICOM  Protocol의 동향&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  (1) 영상 전송 환자의 검사 정보들에 대한 질의 검색&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  (2) 네트워크에 연결된 영상 출력 장비와의  정보 교환&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  (3) CD같은 디지털 기록 매체를 이용한 영상 정보의 교환&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  (4) HIS 또는 RIS와 연계하여 환자정보,  예약정보, 검사정보, 결과정보를 통합&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  (5) Endoscropy, Radiation Therapy Planning, Pathology  분야로 확장&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  (6) CEN이 체택: MEDICOM이라는 유럽표준&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  (7) JIRA도 MIPS라는 이름으로 일본표준  체택&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt; * IOD(Information Object Definition) : 추상적인 data object를 정의하기 위해 사용되는  명세&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt; * DIMSE Services&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  -&gt; The Compositive service:  storage(C-STORE), query(C-FIND), retrieval(C-GET), and transfer(C-MOVE) of  images&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  -&gt; The Normalized service: create(N-CREATE), delete(N-DELETE),  update(N-SET), etrieve(N-GET), domain-specific operation(N-ACTION), and  notification(N-EVENT-NOTIFY)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;3. 원격 진료&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt; * 인터넷 통신이용&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt; * DICOM  통신이용&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;  -&gt; 공인 ID 필요&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt; * 효과 - 획일적 진단 피할 수 있음(외진 곳에서 소수의 의사가 진료 -&gt;  통신이용 전문의 진료)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-2834893925731792665?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/2834893925731792665/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/pacs.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2834893925731792665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/2834893925731792665'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/pacs.html' title='[PACS]국제 의료영상 표준'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-6234667396854737557</id><published>2008-12-19T11:15:00.001+09:00</published><updated>2008-12-19T11:15:35.754+09:00</updated><title type='text'>[Program]개발자의 자세</title><content type='html'>&lt;span style="font-family: webdings;"&gt;1. 기본에 충실할 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;2. 돈을 주고 시간을 살 것 - 핵심역량에 집중&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;3. 소스코드 한 줄, 변수 이름 하나에도 정성을 다할  것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;4. 자신의 코드에 정성, 성의, 열정, 정열, 혼을 담을 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;5. 프로그램 설계는 원하는 사양의 최소 150% 정도로 확장성  있게 할 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;6. 모르면 혼자 고민하지 말고 즉시 물어볼 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;7. 최대한 정도를 지킬 것, 꽁수는 결국에는 문제가 될 가능성이  큼&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;8. 개발 중에는 별 것 아니라 생각한 부분에서 가장 버그가 많이 발생함&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;9. 신기술 습득에 게으르지 말 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;10. 소스코드  한 줄을 쓰더라도 이해를 하고 쓸 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;11. 개발을 하기 전에 다른 사람이 먼저 만들어 놓은 부분이 있는지 확인할 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;12. 내가  만드는 프로그램을 언제든지 다른 사람이 사용할 수 있도록 할 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;13. 가능하면 소스코드를 새로 만들지 말고 이미 구현된 것을 쓸  것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;14. 절대로 하드코딩을 하지 말 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;15. 소스코드의 중복을 최대한 없앨 것 - 모듈화&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;16. 라이브러리를 이용할 때에는  매뉴얼을 숙지할 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;17. 라이브러리에 포함된 예제 프로그램을 철저히 이해할 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;18. 가능하면 새로운 코딘 기법을 적용할 수 있도록  노력할 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;19. 배운 것은 최대한 활용할 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;20. 99%의 버그는 자신의 실수에서 비롯됨&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;21. 최대한 사용하기 쉽게 만들  것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;22. 개발을 진행하면서 Release Notes를 함께 만들 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;23. 소스코드 관리자를 활용하여 버전 관리를 철저히 할  것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;24. 특정 기술에 대한 편견을 버릴 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;25. 숙제를 하는 것이 아니라 제품을 만든다는 사실을 인식할 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;26. 개발을  하면서 원가를 생각할 것&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;27. 다른 사람이 만든 프로그램의 겉만 보지 말고 내부를 이해하려고 노력할 것&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;작성자:  최승욱&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt;//-----------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: webdings;"&gt; 우리  회사 기술교육 자료에 있는 내용을 발최하였다. 지금 내 상황에 비교하여 너무도 정확한 지적이 아닐 수 없는 대목이다. 새삼 내가 지금 기본에  충실하고 있는지... 개발자의 자세를 유지하고 있는지 돌아보게 만든다.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-6234667396854737557?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/6234667396854737557/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/program.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6234667396854737557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6234667396854737557'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/program.html' title='[Program]개발자의 자세'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-9130439233104737103</id><published>2008-12-19T11:14:00.001+09:00</published><updated>2008-12-19T11:14:59.048+09:00</updated><title type='text'>[Visual C++]스레드간 동기화 CRITICAL_SECTION</title><content type='html'>&lt;p style="font-family: webdings;"&gt;스레드들은 동일 프로세스내의 리소스를 공유해서 사용한다.&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;보통 스레드가 동시에 리소스를 읽는 동작 자체는 큰 문제가 되지 않지만, 한 리소스를 동시에 쓰거나, &lt;/p&gt; &lt;p style="font-family: webdings;"&gt;읽고있는과정에 쓰거나, 쓰고있는 과정에 읽을 경우는 문제가 발생된다.&lt;/p&gt; &lt;p style="font-family: webdings;"&gt; &lt;/p&gt; &lt;p style="font-family: webdings;"&gt;따라서, 여러 스레드가 사용하는 리소스, 즉 위험영역(Critical Section)을 동시에 침범하지 않도록&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;동기화의 일종은 CRITICAL_SECTION을 사용하여야 한다.&lt;/p&gt; &lt;p style="font-family: webdings;"&gt; &lt;/p&gt; &lt;p style="font-family: webdings;"&gt;Critical Section(임계영역)&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;코드의 특정영역을 한번에 한 스레드만 들어올 수 있도록 막는방법&lt;/p&gt; &lt;p style="font-family: webdings;"&gt; &lt;/p&gt; &lt;p style="font-family: webdings;"&gt;IntializeCriticalSection : CriticalSection 객체를 초기화한다.&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;DeleteCriticalSection : 객체를 지운다.&lt;/p&gt; &lt;p style="font-family: webdings;"&gt; &lt;/p&gt; &lt;p style="font-family: webdings;"&gt;CRITICAL_SECTION cs;&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;InitializeCriticalSection(&amp;amp;cs);&lt;/p&gt; &lt;p style="font-family: webdings;"&gt; &lt;/p&gt; &lt;p style="font-family: webdings;"&gt;EnterCriticalSection(&amp;amp;cs);&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;// 한번에 한 스레드만 들어올 수 있다.&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;// ....&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;LeaveCriticalSection(&amp;amp;cs);&lt;/p&gt; &lt;p style="font-family: webdings;"&gt; &lt;/p&gt; &lt;p style="font-family: webdings;"&gt;DeleteCriticalSection(&amp;amp;cs);&lt;/p&gt; &lt;p style="font-family: webdings;"&gt; &lt;/p&gt; &lt;p style="font-family: webdings;"&gt;즉, 스레드간에 공유되는 변수가 존재한다면 보통 임계영역은 이 변수를 접근하는 코드부분에&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;임계영역으로 막아두면된다.&lt;/p&gt; &lt;p style="font-family: webdings;"&gt; &lt;/p&gt; &lt;p style="font-family: webdings;"&gt;MFC는 CCriticalSection 클래스를 제공한다.&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;CCriticalSection클래스를 사용하기 위해서 &lt;/p&gt; &lt;p style="font-family: webdings;"&gt;#include &lt;afxmt.h&gt;를 포함시킨다.&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;그리고 사용법은&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;CCriticalSection cs;&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;cs.Lock();&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;// 한번에 한 스레드만 들어올 수 있다.&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;// ...&lt;/p&gt; &lt;p style="font-family: webdings;"&gt;cs.Unlock();&lt;/p&gt;&lt;p style="font-family: webdings;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: webdings;"&gt;&lt;strong style="padding: 0px 7px 0px 0px;"&gt;출처]&lt;/strong&gt; &lt;a href="http://blog.naver.com/pir9562/20045206071" target="_blank"&gt;스레드간 동기화 CRITICAL_SECTION&lt;/a&gt;&lt;span style="padding: 0px 7px 0px 5px;"&gt;|&lt;/span&gt;&lt;strong style="padding: 0px 7px 0px 0px;"&gt;작성자&lt;/strong&gt;  &lt;a href="http://blog.naver.com/pir9562" target="_blank"&gt;호야네&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: webdings;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: webdings;"&gt;&lt;span style="font-family: webdings; font-size: 100%;"&gt;//------------------------------------------------------------------------&lt;br /&gt;이글루에서 옮겨온 data입니다.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-9130439233104737103?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/9130439233104737103/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-criticalsection.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/9130439233104737103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/9130439233104737103'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-criticalsection.html' title='[Visual C++]스레드간 동기화 CRITICAL_SECTION'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-4581233146893916212</id><published>2008-12-19T11:12:00.001+09:00</published><updated>2009-01-21T16:47:57.253+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software development methodology'/><title type='text'>[개발방법론]'GoF의 디자인 패턴'의 패턴 목록</title><content type='html'>&lt;span style="font-family:webdings;"&gt;설계가 잘 되어있는 객체지향 소프트웨어들의 특징들을 모아 일정한 패턴을 찾아낸 것이 디자인 패턴인데, 디자인 패턴에 대해서 가장 먼저 소개한  책이 바로 'GoF의 디자인 패턴'이라고 한다. 에리히 감마를 비롯한 네명의 저자(이들을 GOF, 즉 Gangs Of Four)가 쓴  책이다.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:webdings;"&gt; 이 책에는 총 23개의 패턴이 나오는데 이에 대해서 한눈에 볼 수 있도록 정리한 Card가 있다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:webdings;"&gt;지금 첨부된  파일이 바로 그 Card인데 프린트해서 하나씩 가지고 있어도 좋을 듯하다.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:webdings;"&gt;첨부: &lt;/span&gt;&lt;a style="font-family: webdings;" href="http://pds9.egloos.com/pds/200808/01/03/designpatternscard.pdf"&gt;designpatternscard.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:webdings;"&gt; 그리고  해당 자료가 있는 위치의 링크는 다음과 같다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: webdings;" href="http://www.mcdonaldland.info/2007/11/28/40/" target="_black"&gt;http://www.mcdonaldland.info/2007/11/28/40/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:webdings;"&gt;PS: 근데... 이  책 진짜 어렵다. -_-;;; 집중해서 계속 읽어도 이해가 거의 안된다. 써 있는 거 한글 맞지..? -_ㅡ;;;;;;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:webdings;font-size:100%;"  &gt;//------------------------------------------------------------------------&lt;br /&gt;이글루에서 옮겨온 data입니다.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-4581233146893916212?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/4581233146893916212/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/gof.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/4581233146893916212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/4581233146893916212'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/gof.html' title='[개발방법론]&apos;GoF의 디자인 패턴&apos;의 패턴 목록'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-8279082081803892001</id><published>2008-12-19T11:05:00.000+09:00</published><updated>2008-12-19T11:12:11.486+09:00</updated><title type='text'>[Visual C++]View에 child window 추가하기</title><content type='html'>&lt;p&gt;1) 클래스 위저드로 CWnd를 기반 클래스로 하는 CMyWnd 클래스를 새로 만든다.&lt;/p&gt; &lt;p&gt;2) view의 헤더파일에 새로 만든 파일을 인클루드 시킨다.&lt;/p&gt; &lt;p&gt;        #include "MyWnd.h"&lt;/p&gt; &lt;p&gt;3) 클래스뷰에서 다음처럼 뷰에 멤버변수를 하나 추가한다.&lt;/p&gt; &lt;ul&gt;&lt;p&gt;public:&lt;br /&gt;       CMyWnd m_childWnd;&lt;/p&gt;&lt;/ul&gt; &lt;p&gt;4) 클래스 위저드에서 WM_CREATE 메시지를 오버라이드하여 다음처럼 OnCreate() 함수를 작성한다.&lt;/p&gt; &lt;ul&gt;&lt;p&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;       // TODO: Add your specialized creation code  here&lt;br /&gt;       &lt;b&gt;CString class_name = AfxRegisterWndClass(NULL, 0, 0,  0);&lt;br /&gt;       m_childWnd.Create(class_name, "View's child  Window",&lt;br /&gt;               WS_CHILD|WS_OVERLAPPEDWINDOW, CRect(0, 0, 100, 100),  this, 1000);&lt;br /&gt;       m_childWnd.ShowWindow(SW_SHOW);&lt;/b&gt;&lt;/p&gt;&lt;p&gt;        return 0;&lt;br /&gt;}&lt;/p&gt;&lt;/ul&gt; &lt;p&gt;5) OnSize 함수를 다음과 같이 작성한다.&lt;/p&gt; &lt;p&gt;void CTestView::OnSize(UINT nType, int cx, int cy)&lt;br /&gt;{&lt;br /&gt;       CView::OnSize(nType, cx, cy);&lt;br /&gt;     &lt;br /&gt;       // TODO:  Add your message handler code here&lt;br /&gt;       &lt;b&gt;m_childWnd.MoveWindow(0, 0,  cx/2, cy/2);&lt;br /&gt;     CString str;&lt;br /&gt;     str.Format(" 폭 : %d, 높이 : %d", cx,  cy);&lt;br /&gt;     // childWnd에 보내는 메시지&lt;br /&gt;     m_childWnd.SendMessage(WM_SETTEXT,  0, (LPARAM)(LPCSTR)str);&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;      CWnd *pWnd;&lt;br /&gt;     pWnd = GetParent();&lt;br /&gt;     if (pWnd != NULL)      // 윈도우가 반드시 존재할 때&lt;br /&gt;             // 메인 윈도우에 보내는  메시지&lt;br /&gt;             pWnd-&gt;SendMessage(WM_SETTEXT, 0,  (LPARAM)(LPCSTR)str);&lt;/b&gt;&lt;br /&gt;}&lt;/p&gt; &lt;p&gt;6) 위와 같이 하여 컴파일을 하면 뷰안에 자식 윈도우가 하나 생기고 창 크기가 바뀌면 따라서 바뀌고, 타이틀 바에 뷰윈도우의 크기가  출력되는 것을 볼 수 있다.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(128, 0, 0);font-size:130%;" &gt;&lt;b&gt;(추가)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt; m_childWnd에서 메인 윈도우의 포인터를 얻고자 한다면 다음과 같이&lt;/p&gt; &lt;ul&gt;&lt;p&gt;CWnd *pWnd;&lt;br /&gt;pWnd = GetParent()-&gt;GetParent();&lt;/p&gt;&lt;/ul&gt; &lt;p&gt;GetParent()함수를 두 번 연속으로 호출하면 된다.그러나 AfxGetMainWnd() 함수를 쓰면 바로 메인위도우의 포인터를 얻을  수 있다.&lt;/p&gt; &lt;p&gt;&lt;br /&gt;출처: &lt;a href="http://myhome.hanafos.com/%7Ekukdas/doc/mfc/viewchild.html"&gt;http://myhome.hanafos.com/~kukdas/doc/mfc/viewchild.html&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: webdings; font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: webdings; font-size: 100%;"&gt;//------------------------------------------------------------------------&lt;br /&gt;이글루에서 옮겨온 data입니다.&lt;/span&gt;&lt;a href="http://myhome.hanafos.com/%7Ekukdas/doc/mfc/viewchild.html"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-8279082081803892001?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/8279082081803892001/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-cview-child-window.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8279082081803892001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8279082081803892001'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-cview-child-window.html' title='[Visual C++]View에 child window 추가하기'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-6485691278668923876</id><published>2008-12-19T10:59:00.002+09:00</published><updated>2008-12-24T15:09:20.226+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[Visual C++]OnInitDialog()에 사각형을 그리도록 하면 어째서 그려지지 않는 것인지..</title><content type='html'>참 바보 같구만...&lt;br /&gt;이거 때문에 그렇게 시간을 보내다니.. 짬밥이 아깝다.. 에휴~~~~&lt;br /&gt;&lt;br /&gt;//---------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;BOOL CSeperate::OnInitDialog()&lt;br /&gt;{&lt;br /&gt;    CDialog::OnInitDialog();&lt;br /&gt;&lt;br /&gt;    CClientDC dc(this);&lt;br /&gt;    CRect r;&lt;br /&gt;    r.SetRect(0, 0, 400, 400);&lt;br /&gt;&lt;br /&gt;    CBrush *pBrush;&lt;br /&gt;    pBrush = new CBrush;&lt;br /&gt;    pBrush-&gt;CreateSolidBrush(RGB(0, 0, 0));&lt;br /&gt;&lt;br /&gt;    dc.SelectObject(pBrush);&lt;br /&gt;    dc.Rectangle(r);&lt;br /&gt;&lt;br /&gt;    delete pBrush;&lt;br /&gt;&lt;br /&gt;    return TRUE;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;//---------------------------------------&lt;br /&gt;&lt;br /&gt;원 인: OnInitDialog()함수가 실행되면서 초기에 그리기가 실행 되었는데 Dialog 화면이 활성화 되면서 Paint 이벤트가 발생(화면이 움직일때 발생하는 이벤트) 하여 OnPaint()가 실행 되고 OnPaint() 안에 그리기 코딩이 없기 때문에 이전 그려진 부분이 모조리 지워지는 것&lt;br /&gt;&lt;br /&gt;--3가지 개선 방법 -----------&lt;br /&gt;&lt;br /&gt;1. 버튼 클릭 이벤트 안에 그리기 내용 넣기&lt;br /&gt;&lt;pre&gt;void cddd::OnTestButton1()&lt;br /&gt;{&lt;br /&gt;    // TODO: Add your control notification handler code here&lt;br /&gt;    CClientDC dc(this);&lt;br /&gt;    CRect r;&lt;br /&gt;&lt;br /&gt;    r.SetRect(0, 0, 400, 400);&lt;br /&gt;    CBrush *pBrush;&lt;br /&gt;    pBrush = new CBrush;&lt;br /&gt;    pBrush-&gt;CreateSolidBrush(RGB(0, 0, 0));&lt;br /&gt;    dc.SelectObject(pBrush);&lt;br /&gt;    dc.Rectangle(r);&lt;br /&gt;&lt;br /&gt;    delete pBrush;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;2. Timer 안에&lt;br /&gt;&lt;pre&gt;void cddd::OnTimer(UINT nIDEvent)&lt;br /&gt;{&lt;br /&gt;    // TODO: Add your message handler code here and/or call default&lt;br /&gt;    if (nIDEvent==1)&lt;br /&gt;    {&lt;br /&gt;        CClientDC dc(this);&lt;br /&gt;&lt;br /&gt;        CRect r;&lt;br /&gt;        r.SetRect(0, 0, 400, 400);&lt;br /&gt;&lt;br /&gt;        CBrush *pBrush;&lt;br /&gt;        pBrush = new CBrush;&lt;br /&gt;        pBrush-&gt;CreateSolidBrush(RGB(0, 0, 0));&lt;br /&gt;&lt;br /&gt;        dc.SelectObject(pBrush);&lt;br /&gt;        dc.Rectangle(r);&lt;br /&gt;&lt;br /&gt;        delete pBrush;&lt;br /&gt;&lt;br /&gt;        KillTimer(1);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    CDialog::OnTimer(nIDEvent);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;3. OnPaint() 함수 안에&lt;br /&gt;void cddd::OnPaint()&lt;br /&gt;{&lt;br /&gt;    CPaintDC dc(this); // device context for painting&lt;br /&gt;&lt;br /&gt;    // TODO: Add your message handler code here&lt;br /&gt;    CRect r;&lt;br /&gt;    r.SetRect(0, 0, 400, 400);&lt;br /&gt;&lt;br /&gt;    CBrush *pBrush;&lt;br /&gt;    pBrush = new CBrush;&lt;br /&gt;    pBrush-&gt;CreateSolidBrush(RGB(0, 0, 0));&lt;br /&gt;&lt;br /&gt;    dc.SelectObject(pBrush);&lt;br /&gt;&lt;br /&gt;    dc.Rectangle(r);&lt;br /&gt;&lt;br /&gt;    // Do not call CDialog::OnPaint() for painting messages&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;참, 답답하넹.. ㅋ&lt;br /&gt;뭐 이런 걸 몰라서 이리 고생이냐.. 에궁~~~~~~&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//------------------------------------------------------------------------&lt;br /&gt;이글루에서 옮겨온 data입니다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-6485691278668923876?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/6485691278668923876/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-coninitdialog.html#comment-form' title='1개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6485691278668923876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6485691278668923876'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-coninitdialog.html' title='[Visual C++]OnInitDialog()에 사각형을 그리도록 하면 어째서 그려지지 않는 것인지..'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-3828296396587161369</id><published>2008-12-19T10:59:00.001+09:00</published><updated>2008-12-19T11:09:13.051+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MFC-Function'/><title type='text'>[MFC]CWnd Class</title><content type='html'>&lt;div  class="szTitle" style="font-family:webdings;"&gt;&lt;span style="color: rgb(51, 51, 51);font-size:100%;" &gt;&lt;strong&gt;CWnd  Class&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt; &lt;div  class="szTitle" style="font-family:webdings;"&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;!-- Content --&gt; &lt;div  class="szContent" style="font-family:webdings;"&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;&lt;span style="font-size:100%;"&gt;- &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 클래스는 MFC의  모든 윈도우 클래스들에 대해서 기본적인 기능을 제공 하는 클래스이다.&lt;br /&gt;&lt;br /&gt;데이터 멤버&lt;br /&gt;m_hWnd : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;와 관련된 HWND를 가리킨다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;생성/소멸 관련 함수&lt;br /&gt;&lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;객체를 생성한다.&lt;br /&gt;DestroyWindow : 윈도우를  소멸한다. 그렇지만 객체를 소멸시키는 것은 아니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;초기화 관련 함수&lt;br /&gt;Create : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체와 관련된 자식 윈도우를 만들고 초기화한다.&lt;br /&gt;PreCreateWindow : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체와 관련된 실제 윈도우를 만들기 전에 호출된다.&lt;br /&gt;CaleWindow&lt;span style="font-size:0;"&gt;Rect&lt;/span&gt; : 클라이언트 사각형 영역에서 윈도우를 만들기 전에 호출된다.&lt;br /&gt;GetStyle : 현재 윈도우의  스타일을 반환한다.&lt;br /&gt;GetExStyle : 확장된 윈도우의 스타일을 반환한다.&lt;br /&gt;Attach : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체에 윈도우 핸들을 추가한다.&lt;br /&gt;Detach : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체에서  윈도우 핸들을 분리하고 핸들을 반환한다.&lt;br /&gt;PreSubclassWindow : SubclassWindow가 호출되기 전에 필요한 다른  서브클래싱이 일어나 는 것을 허용한다.&lt;br /&gt;SubclassWindow : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체에 윈도우를  추가하고 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 메시지맵을 통해서 루트 메시 지로 만든다.&lt;br /&gt;UnSubclassWindow :  &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체에서 윈도우를 분리한다.&lt;br /&gt;FromHandle : 윈도우에 핸들이 주어질 때 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체에 대한 포인터를 반환한다. &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체가 핸들을 가지지  않는다면, 임시적인 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체기 생성되고 추가된다.&lt;br /&gt;FromHandlePermanent :  윈도우에 핸들이 주어질 때 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체에 대한 포인터를 반환한다.&lt;br /&gt;&lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체가 핸들을 가지지 않는다면, &lt;span style="font-size:0;"&gt;NULL&lt;/span&gt;이  반환된다.&lt;br /&gt;DeleteTempMap : &lt;span style="font-size:0;"&gt;CWinApp&lt;/span&gt;가 자동으로 호출하며 FromHandle에 의해서  생성된 어떠한 임시 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체도 지운다.&lt;br /&gt;GetSafeHwnd : 포인터가 &lt;span style="font-size:0;"&gt;NULL&lt;/span&gt;이면, m_hWnd, 또는 &lt;span style="font-size:0;"&gt;NULL&lt;/span&gt;을 반환된다.&lt;br /&gt;CreateEx :  오버랩된 형태의 팝업 자식 윈도우를 생성하고 이것을 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체에 추가한다&lt;br /&gt;CreateControl  : MFC 프로그램에서 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체에 의해서 표현되는 OLE 컨트롤을 생성한다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;윈도우 상태 함수&lt;br /&gt;IsWindowEnabled : 윈도우에 마우스와 키보드 입력이 가능한지를  결정한다.&lt;br /&gt;EnableWindow : 윈도우에 마우스와 키보드로 입력을 가능하게 하거나 불가능하도록  한다.&lt;br /&gt;GetActiveWindow : 활성 윈도우를 얻는다.&lt;br /&gt;SetActiveWindow : 윈도우를  활성화한다.&lt;br /&gt;GetCapture : 마우스를 캡쳐한 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;를 얻는다.&lt;br /&gt;SetCapture :  모든 일련의 마우스 입력이 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;로 보내지도록 한다.&lt;br /&gt;GetFocus : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 현재 입력 포커스를 가지고 있는지 검사한다.&lt;br /&gt;SetFocus : 입력 포커스를  설정한다.&lt;br /&gt;GetDestktopWindow : 윈도우 시스템의 desktop윈도우를 얻는다.&lt;br /&gt;GetForegroundWindow :  포그라운드 윈도우의 포인터를 반환한다.&lt;br /&gt;SetForegroundWindow : 생성된 윈도우의 스레드를 포그라운드로 설정하고 윈도우를 활성  화 한다.&lt;br /&gt;GetIcon : 핸들에서 아이콘을 얻는다.&lt;br /&gt;SetIcon : 핸들에 특정 아이콘을  설정한다.&lt;br /&gt;GetWindowContextHelpId : 도움말 항목에 대한 식별자를 얻는다.&lt;br /&gt;SetWindowContextHelpId  : 도움말 항목에 대한 식별자를 지정한다.&lt;br /&gt;ModifyStyle : 현재 윈도우의 스타일을 수정한다.&lt;br /&gt;ModifyStyleEx :  확장된 윈도우의 스타일을 수정한다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;윈도우의 크기와 위치&lt;br /&gt;GetWindowPlacement : 윈도우가 보여지는  상태와 정상(복귀된), 최소, 최대화된 윈도우의 위치를 얻는다.&lt;br /&gt;SetWindowPlacement : 윈도우가 보여지는 상태와  정상(복귀된), 최소, 최대화된 윈도우의 위치를 설정한다.&lt;br /&gt;IsIconic : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가  최소화되었는지를 알아본다.&lt;br /&gt;IsZoomed : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 최대화되었는지를  알아본다.&lt;br /&gt;MoveWindow : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 위치또는 크기를 변경한다.&lt;br /&gt;SetWindowPos  : 크기, 위치, 순서, 팝업, 최상위 윈도우에 대한 것을 설정한다.&lt;br /&gt;ArrangeIconicWindows : 모든 축소된(아이콘화 된)  자식 윈도우에 대한 것을 설정한다.&lt;br /&gt;BringWindowToTop : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;를 오버랩 된 윈도우의  맨 처음으로 보낸다.&lt;br /&gt;GetWindow&lt;span style="font-size:0;"&gt;Rect&lt;/span&gt; : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의  화면 좌표를 얻는다.&lt;br /&gt;GetClient&lt;span style="font-size:0;"&gt;Rect&lt;/span&gt; : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;  클라이언트 영역의 크기를 얻는다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;윈도우 참조 관련 함수&lt;br /&gt;ChildWinddowFromPo&lt;span style="font-size:0;"&gt;int&lt;/span&gt; : 어떤 자식 윈도우가 특정 점을 포함하고 있는지를 알아낸다.&lt;br /&gt;FindWindow : 윈도우의 이름과  클래스로 확인이 가능한 윈도우의 핸들을 반환한다.&lt;br /&gt;GetNextWindow : 윈도우 관리자의 리스트에서 다음 또는 이전 윈도우를  반환한다.&lt;br /&gt;GetOwner : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 소유자에 대한 포인터를 얻는다.&lt;br /&gt;SetOwner :  &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 소유자를 변경한다.&lt;br /&gt;GetTopWindow : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;에 속한 맨 첫 번째 자식 윈도우를 반환한다.&lt;br /&gt;GetWindow : 이 윈도우와 특정한 관계를 가지고  있는 윈도우를 반환한다.&lt;br /&gt;GetLastActivePopup : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;이 가지고 있는 팝업 윈도우가  가장 최근에 활성화 되었는지를 알아낸다.&lt;br /&gt;IsChild : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 자식 윈도우인지 또는 다른 특정  윈도우의 후손인지를 알아낸다.&lt;br /&gt;GetParent : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 부모 윈도우가 있다면 그 윈도우를  얻는다.&lt;br /&gt;GetSafeOwner : 지정된 윈도우의 소유자를 얻는다.&lt;br /&gt;SetParent : 부모 윈도우를  변경한다.&lt;br /&gt;WindowFromPo&lt;span style="font-size:0;"&gt;int&lt;/span&gt; : 특정 점을 포함하는 윈도우를  알아낸다.&lt;br /&gt;GetDlgItem : 특정 대화상자에서 특정 ID의 컨트롤을 얻는다.&lt;br /&gt;GetDlgCtrlID : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 자식 윈도우이면, 자신의 ID 값을 반환한다.&lt;br /&gt;SetDlgCtrlID : 윈도우에 윈도우 또는  컨트롤의 ID를 설정한다.&lt;br /&gt;GetDescendantWindow : 모든 자식 윈도우를 검색하고 윈도우의 특징 ID를  반환한다.&lt;br /&gt;GetParentFrame : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체의 부모 프레임 윈도우를  얻는다.&lt;br /&gt;SendMessageToDescendants : 윈도우의 모든 자식 윈도우에게 메시지를  보낸다.&lt;br /&gt;GetToLevelParent : 윈도우의 최상위 부모를 얻는다.&lt;br /&gt;GetToLevelOwner : 최상위 윈도우를  얻는다.&lt;br /&gt;GetParentOwner : 자식 윈도우의 부모 윈도우에 대한 포인터를 반환한다.&lt;br /&gt;GetTopLevelFrame :  윈도우의 촤상위 프레임 윈도우를 얻는다.&lt;br /&gt;UpdateDialogControls : 대화상자의 버튼이나 다른 컨트롤들의 상태 갱신을  요구한다.&lt;br /&gt;UpdateData : 대화상자의 데이터를 초기화하고 유효화한다.&lt;br /&gt;CenterWindow : 부모 윈도우의 중앙에 윈도우를  위치시킨다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;갱신/그리기 함수&lt;br /&gt;BeginPa&lt;span style="font-size:0;"&gt;int&lt;/span&gt; : 드로잉 작업을 수행하기  위해서 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;를 준비한다.&lt;br /&gt;EndPa&lt;span style="font-size:0;"&gt;int&lt;/span&gt; : 드로임 작업을  마친다.&lt;br /&gt;Pr&lt;span style="font-size:0;"&gt;int&lt;/span&gt; : 특정 디바이스 컨텍스트에 현재 윈도우를 그린다.&lt;br /&gt;PrintClient :  특정 디바이스 컨텍스트에 모든 윈도우를 그린다.&lt;br /&gt;LockWindowUpdate : 정해진 윈도우에 드로잉을 불가능하도록 하거나 다시  가능하도록 한다.&lt;br /&gt;GetDC : 클라이언트 영역에 표시된 디바이스 컨텍스트를 얻는다.&lt;br /&gt;GetDCEx : 클라이언트 영역에 표시된  디바이스 컨텍스트를 얻고, 그리는 도중에 클리핑이 가능하도록 한다.&lt;br /&gt;RedrawWindow : 클라이언트 영역에서 특정 사각형이나 특정  영역을 갱신한다.&lt;br /&gt;GetWindowDC : 툴바나, 메뉴, 스크롤 바를 포함한 모든 윈도우 영역에 대한 디바이스 컨 텍스트를  얻는다.&lt;br /&gt;ReleaseDC : 클라이언트와 윈도우 디바이스 컨택스트를 해제함으로써, 다른 애플리케이션 이 사용할 수 있도록  한다.&lt;br /&gt;UpdateWindow : 클라이언트 영역을 갱신한다.&lt;br /&gt;SetRedraw : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가  변화된 것을 다시 그리도록 설정하거나, 다시 그릴 수 없도록 설정 하는 역할을 한다.&lt;br /&gt;GetUpdate&lt;span style="font-size:0;"&gt;Rect&lt;/span&gt; : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 갱신 영역을 완전히 둘러싸는 가장 작은 사각형의 좌표를  얻는다.&lt;br /&gt;GetUpdateRgn : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 갱신 영역을 얻는다.&lt;br /&gt;Invalidate : 모든  클라이언트 영역을 무효화한다.&lt;br /&gt;Invalidate&lt;span style="font-size:0;"&gt;Rect&lt;/span&gt; : 현재의 갱신 영역에 사각형을 추가함으로써  정해진 사각형 내의 클라이언 트 영역을 무효화한다.&lt;br /&gt;InvalidateRgn : 현재의 갱신 영역에 영역을 추가함으로써 정해진 영역내의  클라이언트 영 역을 무효화한다.&lt;br /&gt;Vaildate&lt;span style="font-size:0;"&gt;Rect&lt;/span&gt; : 현재의 갱신 영역에서 사각형을 제거함으로써  정해진 사각형 내의 클라이 언트 영역을 유효화시킨다.&lt;br /&gt;VaildateRgn : 현재의 갱신 영역에 영역을 제거함으로써 정해진 영역 내의  클라이언트 영 역을 유효화시킨다.&lt;br /&gt;ShowWindow : 윈도우를 보이도록 하거나 숨긴다.&lt;br /&gt;IsWindowVisible : 윈도우가  보이는지를 알아낸다.&lt;br /&gt;ShowOwnedPopups : 윈도우가 가지고 있는 모든 팝업 윈도우를 보이게 하거나  숨긴다.&lt;br /&gt;EnableScrollBar : 스크롤 바의 화살표를 사용가능하도록 하거나 불가능하게 한다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;좌표 매핑 관련  함수&lt;br /&gt;MapWindowPoints : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 좌표계로부터 다른 윈도우의 좌표계로 지정된 점들을  매핑시 킨다.&lt;br /&gt;ClientToSreen : 클라이언트 좌표계를 화면 좌표계로 변환한다.&lt;br /&gt;ScreenToClient : 화면 좌표계를  클라이언트 좌표계로 변환한다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;윈도우 텍스트 함수&lt;br /&gt;SetWindowText : 윈도우의 텍스트나 캡션 제목을 지정된  텍스트로 설정한다.&lt;br /&gt;GetWindowText : 윈도우의 텍스트나 캡션 제목을 반환한다.&lt;br /&gt;GetWindowTextLength :  윈도우의 텍스트나 캡션 제목의 길이를 반환한다.&lt;br /&gt;SetFont : 현재의 폰트를 설정한다.&lt;br /&gt;GetFont : 현재의 폰트를 얻는다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;스크롤 관련 함수&lt;br /&gt;GetScrollPos : 스크롤 박스의 현재 위치를 얻는다.&lt;br /&gt;GetScrollRange :  지정된 스크롤 바에 대한 최소, 최대의 스크롤 바 위치 값을 얻는다.&lt;br /&gt;ScrollWindow : 클라이언트 영역의 내용을  스크롤한다.&lt;br /&gt;ScrollWindowEx : 클라이언트 영역의 내용을 스크롤한다. (ScrollWindow과  비슷)&lt;br /&gt;GetScrollInfo : 스크롤 바에 대한 SCROLLINFO 구조체 값을 얻는다.&lt;br /&gt;GetScrollLimit : 스크롤  바의 한계 값을 얻는다.&lt;br /&gt;SetScrollInfo : 스크롤 바에 대한 정보를 설정한다.&lt;br /&gt;SetScrollPos : 스크롤 박스의  현재 위치를 설정하고, 설정이 되면, 새로운 위치를 나타내 도록 스크롤 바를 다시 그린다.&lt;br /&gt;SetScrollRange : 지정된 스크롤  바에 대한 최소와 최대 위치 값을 지정한다.&lt;br /&gt;ShowScrollBar : 스크롤 바를 보이거나  숨긴다.&lt;br /&gt;EnableScrollBarCtrl : 스크롤 바의 컨트롤을 가능하게 하거나 불가능하도록  한다.&lt;br /&gt;GetScrollBarCtrl : 스크롤 바 컨트롤을 반환한다.&lt;br /&gt;RepositionBars : 클라이언트 영역에 컨트롤 바를  재위치 시킨다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;드래그-드롭 함수&lt;br /&gt;DragAcceptFiles : 윈도우가 드래그된 파일을 받아들일 것인지를  결정한다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Caret 관련 함수&lt;br /&gt;CreateCaret : 시스템 캐럿으로 새로운 형태를 생성하고 캐럿의 소유권을  얻는다.&lt;br /&gt;CreateSolidCaret : 시스템 캐럿으로 솔리드 캐럿을 생성하고 캐럿의 소유권을  얻는다.&lt;br /&gt;CreateGrayCaret : 시스템 캐럿으로 회색 캐럿을 생성하고 캐럿의 소유권을 얻는다.&lt;br /&gt;GetCaretPos : 특정  위치로 캐럿을 이동시킨다.&lt;br /&gt;SetCaretPos : 화면에서 캐럿을 숨긴다.&lt;br /&gt;HideCaret : 캐럿의 현재 위치에서 캐럿을  보이도록 한다.&lt;br /&gt;ShowCaret : 캐럿의 현재 위치에서 캐럿을 보이도록 한다. 일단 캐럿이 화면에 나타나면 캐럿은 자동적으로 깜박거리게  된다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;대화상자 아이템 관련 함수&lt;br /&gt;CheckDlgButton : 버튼 컨트롤 다음에 체크 표시를 하거나 버튼  컨트롤에서 체크 표시를 제거한다.&lt;br /&gt;CheckRadioButton : 특정 라디오 버튼을 체크하고, 특정 버튼 그룹 내에 있는 모든 다른  라디오 버튼에서 체크 표시를 제거한다.&lt;br /&gt;GetCheckedRadioButton : 버튼 그룹에서 현재 체크된 라디오 버튼의 ID를  반환한다.&lt;br /&gt;DlgDirList : 파일이나 디렉토리에 대한 리스트로 리스트 박스를 채운다.&lt;br /&gt;DlgDirListComboBox :  파일이나 디렉토리에 대한 리스트 콤보 박스를 채운다.&lt;br /&gt;DlgDirSelect : 리스트 박스에서 현재 선택된 항목을  얻는다.&lt;br /&gt;DlgDirSelectComboBox : 콤보 박스에서 현재 선택된 항목을 얻는다.&lt;br /&gt;GetDlgItemInt : 지정된  대화상자에서 컨트롤이 사용하는 텍스트를 정수 값으로 변환한다.&lt;br /&gt;GetDlgItemText : 컨트롤과 관련된 캡션이나 텍스트를  얻는다.&lt;br /&gt;GetNextDlgGroupItem : 컨트롤 그룹 내의 다음 또는 이전 컨트롤을 찾는다.&lt;br /&gt;GetNextDlgTabItem  : 특정 컨트롤의 다음 또는 이전 컨트롤 중에서 WS_TABSTOP속성을 가 지는 컨트롤을 얻는다.&lt;br /&gt;IsDlgButtonChecked :  버튼 컨트롤이 체크되었는지를 결정한다.&lt;br /&gt;IsDialogItemMessage : 지정된 메시지가 모달리스(modeless)대화상자를 위한  것인지를 알아 내고, 만약에 그렇다면 그것을 처리한다.&lt;br /&gt;SendDigItemMessage : 특정 컨트롤에 메시지를  보낸다.&lt;br /&gt;SendDigItemInt : 지정된 대화상자에서 컨트롤이 사용하는 텍스트를 정수 값에 해당하는 문 자열로  설정한다.&lt;br /&gt;SendDigItemText : 지정된 대화상자에서 컨트롤의 캡션이나 텍스트를 설정한다.&lt;br /&gt;SubclassDlgItem :  &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 컨트롤에 윈도우 컨트롤을 추가하고 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 메시지 맵을  통해 메시지를 배정하도록 한다.&lt;br /&gt;ExecuteDlgInit : 해당 대화상자의 리소스로 초기화한다.&lt;br /&gt;RunModalLoop : 모달  상태에 있는 윈도우의 메시지를 검색하고, 번역하거나, 처리한다.&lt;br /&gt;ContinueModal : 윈도우 모달 상태를  지속시킨다.&lt;br /&gt;EndModalLoop : 윈도우 모달 상태를 마친다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;메뉴 함수&lt;br /&gt;GetaMenu : 특정 메뉴에  대한 포인터를 얻는다.&lt;br /&gt;SetMenu : 현재의 메뉴를 지정된 메뉴로 설정한다.&lt;br /&gt;DrawMenuBar : 메뉴 바를 다시  그린다.&lt;br /&gt;GetSystemMenu : 애플리케이션이 컨트롤 메뉴를 복사하거사 수정하도록 참조하는 것을  허용한다.&lt;br /&gt;HiliteMenuItem : 최상위 메뉴 아이템에서 선택된 부분을 하이라이트하거나 해제한다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;툴팁  함수&lt;br /&gt;EnableToolTips : 툴팁 컨트롤을 사용가능하도록 한다.&lt;br /&gt;CancelToolTips : 툴팁 컨트롤을 사용 불가능하도록  한다.&lt;br /&gt;FilterToolTipMessage : 대화상자에서 컨트롤과 관련된 제목이나 텍스트를 얻는다.&lt;br /&gt;OnToolHitTest :  포인터가 특정 도구의 사각형 경계(보통 툴바 영역)안에 있는지를 알아내 고 그 도구에 대한 정보를 얻는다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;타이머 관련  함수&lt;br /&gt;SetTimer : 시작될 때 &lt;span style="font-size:0;"&gt;WM_TIMER&lt;/span&gt; 메시지를 보내는 시스템 타미머를  설치한다.&lt;br /&gt;KillTimer : 타이머를 해제한다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;경고 함수&lt;br /&gt;FlashWindow : 윈도우를 한 번 반짝이게  한다.&lt;br /&gt;MessageBox : 애플리케이션이 제공하는 캡션과 메시지를가지고 있는 윈도우를 생성하고 화면에 출력한다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;윈도우 메시지 관련 함수&lt;br /&gt;GetCurrentMessage : 윈도우가 현재 처리하고 있는 메시지의 포인터를 반환한다.  OnMessage 류의 메시지 핸들러 멤버 함수 내부에서만 호출되어야한다.&lt;br /&gt;Default : 디폴트 윈도우 프로시저를 호출하며, 이것은  애플리케이션에게 어떤 윈도우 메 시지도 디폴트 형태로 처리하도록 한다.&lt;br /&gt;PreTranslateMessage :  TranslateMessage와 DispatchMessage 윈도우 함수에서 처리되기 전 에 윈도우의 메시지를 필터링하기 위해서 &lt;span style="font-size:0;"&gt;CWinApp&lt;/span&gt;가 사용한다.&lt;br /&gt;SendMessage : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체에  메시지를 보내고 메시지를 처리할 때 까지 반환되지 않는다.&lt;br /&gt;PostMessage : 애플리케이션 큐에 메시지를 위치시키고, 윈도우가  메시지를 처리할 때까 지 기다리지 않고 바로 반환한다.&lt;br /&gt;SendNotifyMessage : 특정 메시지를 윈도우에 보내고 호출한 스래드가  윈도우를 생성했는 지에 따라서, 가능한 빨리 반환한다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;클립보드 관련 함수&lt;br /&gt;ChangeClipboardChain :  클립보드 뷰어의 체인으로부터 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;를 제거한다.&lt;br /&gt;SetClientboardViewer : 클립보드의  내용이 변하면 윈도우의 체인에 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;를 추가한다.&lt;br /&gt;SetClipboard : 클립보드를 연다. 다른  애플리케이션이 윈도우의 CloseClipboard 함수를 호 출할 때까지 클립보드를 수정하지 않도록 한다.&lt;br /&gt;GetClipboardOwner  : 클립보드의 현재 소유자에 대한 포인터를 얻는다.&lt;br /&gt;GetOpenClipboardWindow :현재 클립보드가 열려진 윈도우에 대한  포인터를 얻는다.&lt;br /&gt;GetClipboardViewer : 클립보드 뷰어의 체인에서 처음 윈도우에 대한 포인터를 얻는다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OLE 콘트롤&lt;br /&gt;SetProperty : OLE 컨트롤 프로퍼티를 설정한다.&lt;br /&gt;OnAmbientProperty :  환경 프로퍼티 값을 구현한다.&lt;br /&gt;GetControlUnknown : 알려지지 않은 OLE 컨트롤에 대한 포인터를  얻는다.&lt;br /&gt;GetProperty : OLE 컨트롤 프로퍼티를 얻는다.&lt;br /&gt;InvokeaHelper : OLE 컨트롤의 메소드나 프로퍼티를  호출한다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;오버라이드 가능한 함수&lt;br /&gt;WindowProc : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;에 대한 디폴트  프로시저를 제공한다. 디폴트로 메시지 맵을 통해서 메시지를 처리하게 된다.&lt;br /&gt;DefWindowProc : 디폴트 윈도우 프로시저를 요구하며,  이것은 애플리케이션이 처리하지 않은 모든 윈도우 메시지에 대해서 디폴트 처리를 하도록 한다.&lt;br /&gt;PostNcDestroy : 윈도우가 소멸된  후에 디폴트 OnNcDestroy 함수에 의해서 호출되는 가상 함수이다.&lt;br /&gt;OnChildNotify : 컨트롤 통지 메시지를 처리하기 위한  기회를 컨트롤에게 주기 위해서 부 모 윈도우에 의해 호출된다.&lt;br /&gt;DoDateExchange : 대화상자의 데이터 교환이나 유효화 검사를  위해서 UpdateData에 의해 서 호출된다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;초기화 메시지 핸들러&lt;br /&gt;OnInitMenu : 메뉴가 활성화될 때  호출된다.&lt;br /&gt;OnInitMenuPopup : 팝업 메뉴가 활성화될 때 호출된다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;시스템 메시지  핸들러&lt;br /&gt;OnSysChar : 사용자가 컨트롤 문자로 변환하기 위해서 호출된다.&lt;br /&gt;OnSysCommand : 사용자가 컨트롤 메뉴에서  항목을 선택하거나, 사용자가 최대화 또는 최 소화 버튼을 누를 때 호출된다.&lt;br /&gt;OnSysDeadChar : 키 입력을 시스템의 Dead  문자((')등이 추가된 문자)로 변환할 때 호출 된다.&lt;br /&gt;OnSysKeyDown : 사용자가 Alt 키를 누르고 다른 키를 누를 때  호출된다.&lt;br /&gt;OnSysKeyUp : 사용자가 Alt 키를 누른 상태로 다른 키를 놓을 때 호출된다.&lt;br /&gt;OnCompacting : 윈도우  시스템에서 시스템 메모리가 부족한 경우에 호출된다.&lt;br /&gt;OnDevModeChange : 사용자가 디바이스의 모드 설정을 바꿀 때 최상위  윈도우가 호출된다.&lt;br /&gt;OnFontChange : 폰트 리소스의 풀이 변할 때 호출된다.&lt;br /&gt;OnPaletteChanged : 애플리케이션이  논리 팔레트를 적용할 것임을 다른 애플리케이션들에 게 알린다.&lt;br /&gt;OnPaletteChanging : 윈도우가 논리 팔레트를 적용할 것임을  다른 애플리케이션들에게 알 린다.&lt;br /&gt;OnSysColorChange : 시스템의 컬러 설정에 변화가 있을 때 최상위 윈도우가  호출한다.&lt;br /&gt;OnWindowPosChanging : SetWindowPos나 다른 윈도우-관리 함수의 호출의 결과로 크기, 위치, 또는  Z-Order가 변하려 할 때 호출된다.&lt;br /&gt;OnWindowPosChanged : SetWindowPos나 다른 윈도우-관리 함수의 호출의  결과로 크기, 위치, 또는 Z-Order가 변했을 때 호출된다.&lt;br /&gt;OnDropFiles : 사용자가 드롭된 파일을 실행하기 위한 프로그램으로  등록된 윈도우 위에서 왼쪽 마우스 버튼을 놓을 때 호출된다.&lt;br /&gt;OnSpoolerStatus : 프린트 관리자의 작업이 추가되거나 삭제될  때마다 프린트 관리자가 호출한다.&lt;br /&gt;OnTimeChange : 시스템 시간 설정이 변경되면 최상위 윈도우가  호출한다.&lt;br /&gt;OnWinIniChange : 윈도우의 초기화 파일인 WIN.INI가 변경되면 최상위 윈도우가 호출한다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;일반 메시지 핸들러&lt;br /&gt;OnCommand : 사용자가 명령을 선택할 때 호출된다.&lt;br /&gt;OnActivate : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 활성화되거나 비활성화될 때 호출된다.&lt;br /&gt;OnActivateApp : 애플리케이션이 활성화되려고 하거나  비활성화되려고 하는 경우에 호출 된다.&lt;br /&gt;OnCancelMode : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 마우스 캡쳐와 같은,  어떤 내부적인 모드를 취소하는 것을 허용 하기 위해서 호출된다.&lt;br /&gt;OnChildActivate : MDI의 자식 윈도우에서 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 크기나 위치가 변경되거나 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 활 성화될 때  호출된다.&lt;br /&gt;OnClose : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;이 종료되는 신호로서 호출된다.&lt;br /&gt;OnCreat : 윈도우  생성의 일부분으로서 호출된다.&lt;br /&gt;OnCtl&lt;span style="font-size:0;"&gt;Color&lt;/span&gt; : 컨트롤이 그려지려 할 때 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 컨트롤의 부모 윈도우이면 호출된다.&lt;br /&gt;OnDestroy : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 소멸될 때 호출된다&lt;br /&gt;OnEnable : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 사용  가능하거나 불가능할 때 호출된다.&lt;br /&gt;OnEndSession : 세션이 종료될 때 호출된다.&lt;br /&gt;OnEnterIdle : 모달 대화상자나  메뉴가 유휴(idle)상태에 들어갈 때 애플리케이션의 메인 윈 도우 프로시저에서 호출된다.&lt;br /&gt;OnEraseBkgnd : 윈도우의 바탕이  지워져야 할 때 호출된다.&lt;br /&gt;OnGetMinMaxInfo : 윈도우가 최대화된 위치나 크기, 또는 최소 또는 최대 트랙킹 크기를 알아야 할  때마다 호출된다.&lt;br /&gt;OnIconEraseBkgnnd : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 최소화되거나 아이콘이 그려지기 전에  아이콘의 배경을 채 워야 하는 경우에 호출된다.&lt;br /&gt;OnKillFocus : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 입력포커스를 잃기  전에 호출된다.&lt;br /&gt;OnMenuChar : 사용자가 현재 메뉴에서 이미 정의된 코드와 대응이 안되는 문자를 눌렀을 때  호출된다.&lt;br /&gt;OnMenuSelect : 사용자가 메뉴 아이템을 선택할 때 호출된다.&lt;br /&gt;OnMove : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 위치가 변경된 후에 호출된다.&lt;br /&gt;OnMoving : 사용자가 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt; 객체를 이동하고 있음을 나타낸다.&lt;br /&gt;OnDeviceChange : 디바이스나 컴퓨터의 하드웨어 설정이  변경되었음을 알려준다.&lt;br /&gt;OnStyleChanged : ::SetWindowLong 윈도우 함수를 사용하여 하나나 혹은 그 이상의 윈도우 의  스타일이 변했음을 알려준다.&lt;br /&gt;OnStyleChanging : ::SetWindowLong 윈도우 함수를 사용하여 하나나 혹은 그 이상의  윈도 우의 스타일이 변하려 하는 것을 알려준다.&lt;br /&gt;OnPa&lt;span style="font-size:0;"&gt;int&lt;/span&gt; : 윈도우의 일부분을 다시 그리기  위해서 호출된다.&lt;br /&gt;OnParentNotify : 자식 윈도우가 생성되거나 소멸될 때, 또는 커서가 자식 윈도우 위에 있 는 동안 마우스  버튼을 클릭하는 경우에 호출된다.&lt;br /&gt;OnQueryDragIcon : 최소화된 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 사용자에 의해서  드래그될 때 호출된다.&lt;br /&gt;OnQueryEndSession : 사용자가 윈도우의 세션 종료를 선택하는 경우에  호출된다.&lt;br /&gt;OnQueryNewPalette : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 입력 포커스를 받게됨을  알려준다.&lt;br /&gt;OnQueryOpen : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 아이콘이거나 사용자가 아이콘이 열려지지기를 요구할 때  호출된다.&lt;br /&gt;OnSetFocus : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 입력 포커스를 얻은 후에  호출된다.&lt;br /&gt;OnShowWindow : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 감추어지거나 혹은 보여질 때  호출된다.&lt;br /&gt;OnSize : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 크기가 변한 후에 호출된다.&lt;br /&gt;OnSizing : 사용자가  사각형의 크기를 다시 조정하고 있음을 나타낸다.&lt;br /&gt;OnStyleChanged : 윈도우의 하나나 혹은 그 이상의 스타일이 변한 것을  나타낸다.&lt;br /&gt;OnStyleChanging : 윈도우의 하나나 혹은 그 이상의 스타일이 변하려 하는 것을 나타낸다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;컨트롤 메시지 핸들러&lt;br /&gt;OnCharToItem : LBS_WANTKEYBOARDINPUT 스타일을 가지고 있는 리스트  박스에 의해서 &lt;span style="font-size:0;"&gt;WM_CHAR&lt;/span&gt;에 대한 응답으로 호출된다.&lt;br /&gt;OnCompareItem : 정렬이 가능한  owner draw 형태의 콤보 박스나 리스트 박스에서 새로운 아이템의 상대 위치를 지정하기 위해서 호출된다.&lt;br /&gt;OnDeleteItem :  owner draw 형태의 리스트 박스나 콤보 박스가 소멸되거나 아이템이 컨트 롤에서 제거될 때 호출된다.&lt;br /&gt;OnDrawItem :  owner draw 형태의 버튼 컨트롤, 콤보 박스 컨트롤, 리스트 박스 컨트롤이 다시 그려져야 할 때 호출된다.&lt;br /&gt;OnGetDlgCode  : 컨트롤이 화살표 키와 Tab 키에 대한 입력을 수행할 수 있도록 하기 위 해서 호출된다.&lt;br /&gt;OnMeasureItem : 컨트롤이 생성될  때 owner draw 형태의 콤보 박스, 리스트 박스, 또는 메뉴 아이템을 요구한다. &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;는  윈도우에게 컨트롤의 크기를 알려준다.&lt;br /&gt;SendChildNotifyLastMsg : 부모 윈도우가 자식 윈도우에게 통보 메시지를 제공하여  자식 윈도우가 작업을 수행할 수 있도록 한다.&lt;br /&gt;OnWndMsg : 윈도우의 메시지가 핸들링되고 있는 것을  나타낸다.&lt;br /&gt;ReflectLastMsg : 자식 윈도우의 마지막 메시지를 나타낸다.&lt;br /&gt;OnVKeyToItem : &lt;span style="font-size:0;"&gt;WM_KEYDOWN&lt;/span&gt; 메시지에 대하여 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 소유한 리스트 박스가 호출된다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;입력 메시지 핸들러&lt;br /&gt;OnChar : 키 입력이 시스템 문자가 아닌 문자로 변환될 때  호출된다.&lt;br /&gt;OnDeadChar : 키 입력이 시스템 문자가 아닌 Dead 문자로 변환될 때 호출된다.&lt;br /&gt;OnHSroll : 사용자가  &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 수평 스크롤 바를 클릭하는 경우에 호출된다.&lt;br /&gt;OnKeyDown : 시스템 키가 아닌  키보드가 눌러 졌을 때 호출된다.&lt;br /&gt;OnKeyUp : 시스템 키가 아닌 키보드가 놓을 때 호출된다.&lt;br /&gt;OnLButtonDblClk :  사용자가 왼쪽 버튼을 더블 클릭 했을 때 호출된다.&lt;br /&gt;OnLButtonDown : 사용자가 왼쪽 버튼을 눌렀을 때  호출된다.&lt;br /&gt;OnLButtonUp : 사용자가 왼쪽 버튼을 놓을 때 호출된다.&lt;br /&gt;OnMButtonDblClk : 사용자가 가운데 버튼을  더블 클릭 했을 때 호출된다.&lt;br /&gt;OnMButtonDown : 사용자가 가운데 버튼을 눌렀을 때 호출된다.&lt;br /&gt;OnMButtonUp :  사용자가 가운데 버튼을 놓을 때 호출된다.&lt;br /&gt;OnMouseActivate : 커서가 비활성화된 윈도우에 있고 사용자가 마우스 버튼을 누를 때  호출된다.&lt;br /&gt;OnMouseMove : 마우스커서가 움직일 때 호출된다.&lt;br /&gt;OnRButtonDblClk : 사용자가 오른쪽 버튼을 더블  클릭 했을 때 호출된다.&lt;br /&gt;OnRButtonDown : 사용자가 오른쪽 버튼을 눌렀을 때 호출된다.&lt;br /&gt;OnRButtonUp : 사용자가  오른쪽 버튼을 놓을 때 호출된다.&lt;br /&gt;OnSetCuror : 마우스 입력이 캡쳐되지 않고 마우스가 윈도우에서 커서를 움직이게 하려면  호출된다.&lt;br /&gt;OnTimer : SetTimer에서 정해진 간격마다 호출된다.&lt;br /&gt;OnVScroll : 사용자가 윈도우의 수직 스크롤 바를  클릭할 때 호출된다.&lt;br /&gt;OnCaptureChanged : 마우스 캡쳐를 놓치는 윈도우 메시지를 보낸다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;비 클라이언트  영역 메시지 핸들러&lt;br /&gt;OnNcActivate : 비 클라이언트 영역이 활성화된 상태인지 비활성화된 상태인지를 가리키 기 위해서 변환이 필요한  경우 호출된다.&lt;br /&gt;OnNcCalcSize : 비 클라이언트 영역의 크기와 위치가 계산될 때 호출된다.&lt;br /&gt;OnNcCreate : 비  클라이언트 영역이 생성될 때 OnCreate 보다 먼저 호출된다.&lt;br /&gt;OnNcDestroy : 비 클라이언트 영역이 소멸될 때  호출된다.&lt;br /&gt;OnNcHitTest : &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;가 커서를 포함하고 SetCapture로 마우스 입력을  캡쳐할 때 마우스가 움직일 때 마다 윈도우에 의해서 호출된다.&lt;br /&gt;OnNcLButtonDblClk : 커서가 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 비 클라이언트 영역 내에 있는 동안 사용자가 왼쪽 마우스 버튼을 더블 클릭 했을 때  호출된다.&lt;br /&gt;OnNcLButtonDown : 커서가 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 비 클라이언트 영역 내에 있는 동안  사용자가 왼쪽 마우스 버튼을 눌렀을 때 호출된다.&lt;br /&gt;OnNcLButtonUp : 커서가 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 비  클라이언트 영역 내에 있는 동안 사용자가 왼쪽 마우스 버튼을 놓을 때 호출된다.&lt;br /&gt;OnNcMButtonDblClk : 커서가 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 비 클라이언트 영역 내에 있는 동안 사용자가 가운데 마우스 버튼을 더블 클릭 했을 때  호출된다.&lt;br /&gt;OnNcMButtonDown : 커서가 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 비 클라이언트 영역 내에 있는 동안  사용자가 가운데 마우스 버튼을 눌렀을 때 호출된다.&lt;br /&gt;OnNcMButtonUp : 커서가 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 비  클라이언트 영역 내에 있는 동안 사용자가 가운데 마우스 버튼을 놓을 때 호출된다.&lt;br /&gt;OnNcMouseMove : 커서가 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 비 클라이언트 영역 내에서 이동할 때 호출된다.&lt;br /&gt;OnNcPa&lt;span style="font-size:0;"&gt;int&lt;/span&gt; : 비클라이언트 영역이 다시 그려지기를 요구할 때 호출된다.&lt;br /&gt;OnNcRButtonDblClk : 커서가  &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 비 클라이언트 영역 내에 있는 동안 사용자가 오른쪽 마우스 버튼을 더블 클릭 했을 때  호출된다.&lt;br /&gt;OnNcRButtonDown : 커서가 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 비 클라이언트 영역 내에 있는 동안  사용자가 오른쪽 마우스 버튼을 눌렀을 때 호출된다.&lt;br /&gt;OnNcRButtonUp : 커서가 &lt;span style="font-size:0;"&gt;CWnd&lt;/span&gt;의 비  클라이언트 영역 내에 있는 동안 사용자가 오른쪽 마 우스 버튼을 놓을 때 호출된다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MDI 메시지  핸들러&lt;br /&gt;OnMDIActivate : MDI child 윈도우가 활성화되거나 비활성화될 때 호출된다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;클립보드 메시지  핸들러&lt;br /&gt;OnAskCbFormatName : 클립보드의 소유자가 클립보드의 내용을 나타낼 때 클립보드 뷰어 애플리케이션에 의해서  호출된다.&lt;br /&gt;OnChangeCbChain : 특정 윈도우가 체인에서 제거되었는지를 통지한다.&lt;br /&gt;OnDestroyClipboard :  클립보드가 윈도우 EmptyClipboard 함수의 호출에 의해서 비워지는 경우에 호출된다.&lt;br /&gt;OnDrawClipboard : 문장이  변경되었을 때 호출된다.&lt;br /&gt;OnHScrollClipboard : 클립보드의 소유주가 클립보드의 이미지를 스크롤해야 하고 적절한 섹션을  무효화할 때 호출되며, 스크롤 바의 값들을 갱신한다.&lt;br /&gt;OnPaintClipboard : 클립보드 뷰어의 클라이언트 영역이 다시 그려져야 할  때 호출된다.&lt;br /&gt;OnRenderAllForamts : 소유주 애플리케이션이 파괴되고 있고 모든 포맷들을 다시 만들 필 요가 있을 때  호출된다.&lt;br /&gt;OnSizeClipboard : 클립보드 뷰어 윈도우의 클라이언트 영역의 크기가 변하는 경우에 호출  된다.&lt;br /&gt;OnVSrollClipboard : 소유주가 크립보드 이미지 스크롤해야 하는 경우에 호출되며, 적절한 섹션을 무효화하고, 스크롤바  값들을 갱신한다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;메뉴 루프 통지&lt;br /&gt;OnEnterMenuLoop : 메뉴의 모달 루프가 수행되는 경우에  호출된다.&lt;br /&gt;OnExitMenuLoop : 메뉴의 모달 루프가 마치는 경우에 호출된다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:webdings;font-size:100%;"  &gt;//------------------------------------------------------------------------&lt;br /&gt;이글루에서 옮겨온 data입니다.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-3828296396587161369?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/3828296396587161369/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/mfccwnd-class.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/3828296396587161369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/3828296396587161369'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/mfccwnd-class.html' title='[MFC]CWnd Class'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-6211441862563385198</id><published>2008-12-19T10:57:00.002+09:00</published><updated>2008-12-24T15:11:18.751+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>[Visual C++]동적으로 생성된 Button에 Event 연결</title><content type='html'>&lt;pre&gt;1. 동적으로 생성&lt;br /&gt;void CTestDlg::CreateSubBtn(int FrontBtnID, int NowBtnID, char *SubBtnName)&lt;br /&gt;{&lt;br /&gt;    int SubBtnWidth = 50, SubBtnHeight = 27; // Sub Button Size&lt;br /&gt;&lt;br /&gt;    int BtnLocX = 0, BtnLocY = 0;&lt;br /&gt;&lt;br /&gt;    CButton* SubBtn = new CButton;&lt;br /&gt;&lt;br /&gt;    // 현재 만들어질 Sub Button의 Position 정보&lt;br /&gt;    GetFrontBtnInfo(FrontBtnID, BtnLocX, BtnLocY);&lt;br /&gt;&lt;br /&gt;    SubBtn-&gt;Create(SubBtnName, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | BS_FLAT,&lt;br /&gt;                            CRect(BtnLocX, BtnLocY, 0, 0), this, NowBtnID); // Button Create&lt;br /&gt;&lt;br /&gt;    SubBtn-&gt;MoveWindow(BtnLocX, BtnLocY, SubBtnWidth, SubBtnHeight); // 원하는 위치와 크기로 이동&lt;br /&gt;&lt;br /&gt;    BtnLocX = 0, BtnLocY = 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;2. 생성된 Button에 Event 연결(함수는 virtual type으로 생성할 것)&lt;br /&gt;BOOL CTestDlg::OnCommand(WPARAM wParam, LPARAM lParam)&lt;br /&gt;{&lt;br /&gt;    if (wParam == 1002)&lt;br /&gt;        MessageBox("Sub1"); // 이 부분에 해당 Button이 동작했으면 하는 내용을 넣을 것&lt;br /&gt;&lt;br /&gt;    if (wParam == 1003)&lt;br /&gt;        MessageBox("Sub2");&lt;br /&gt;    .&lt;br /&gt;    .&lt;br /&gt;    .&lt;br /&gt;&lt;br /&gt;    return CDialog::OnCommand(wParam, lParam);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//------------------------------------------------------------------------&lt;br /&gt;이글루에서 옮겨온 data입니다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-6211441862563385198?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/6211441862563385198/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-button-event.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6211441862563385198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/6211441862563385198'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/visual-c-button-event.html' title='[Visual C++]동적으로 생성된 Button에 Event 연결'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-9022364630474003464</id><published>2008-12-19T10:57:00.001+09:00</published><updated>2008-12-19T11:08:11.412+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MFC-Function'/><title type='text'>[MFC]</title><content type='html'>&lt;strong style="font-family: webdings;"&gt;1. 함수의 원형&lt;/strong&gt; &lt;div  style="font-family:webdings;"&gt;    CWnd *&lt;strong&gt;&lt;span style="color: rgb(204, 102, 204);"&gt;GetDlgItem&lt;/span&gt;&lt;/strong&gt;(int nID) const;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. 함수의 기능&lt;/strong&gt;&lt;br /&gt;   이 함수는 일반적으로 대화상자에 생성된 컨트롤의 주소를  얻는데 사용됩니다. 왜냐하면, 대화상자는 대부분 리소스 편집기를 이용해서 사용할 컨트롤을 편집하고 DoModal 함수를 사용하여 대화상자가  생성되는 시점에, CDialog 클래스가 리소스 파일을 참조하여 컨트롤을 생성하기 때문에 기본적으로 대화상자위에 생성된 컨트롤의 주소를 알수가  없습니다.&lt;/div&gt; &lt;div style="font-family: webdings;"&gt; &lt;/div&gt; &lt;div style="font-family: webdings;"&gt;    프로그래머는 기본적으로 리소스 편집기에서 편집할때 사용한 컨트롤 번호만을 알고 있기 때문에 이 컨트롤 번호를 이용하여 해당  컨트롤의 주소를 얻을 때, 이 함수를 사용합니다.&lt;/div&gt; &lt;div style="font-family: webdings;"&gt; &lt;/div&gt; &lt;div style="font-family: webdings;"&gt;&lt;br /&gt;&lt;strong&gt;3. 함수의 매개변수에 대한 설명&lt;/strong&gt;&lt;br /&gt;   3.1 nID&lt;br /&gt;       주소를 알고  싶은 컨트롤 번호를 명시합니다. 예를들어, 편집기에서 IDC_MY_EDIT 라는 에디트 컨트롤을 만들었다면 아래와 같이 사용하시면  됩니다.&lt;/div&gt; &lt;div style="font-family: webdings;"&gt; &lt;/div&gt; &lt;div style="font-family: webdings;"&gt;        CWnd *p_wnd = GetDlgItem(IDC_MY_EDIT);&lt;/div&gt; &lt;div style="font-family: webdings;"&gt; &lt;/div&gt; &lt;div style="font-family: webdings;"&gt;        해당 컨트롤이 에디트 컨트롤임을 확신한다면 아래와 같이 사용하셔도 됩니다.&lt;/div&gt; &lt;div style="font-family: webdings;"&gt; &lt;/div&gt; &lt;div style="font-family: webdings;"&gt;        CEdit *p_edit = (CEdit *)GetDlgItem(IDC_MY_EDIT);&lt;/div&gt; &lt;div style="font-family: webdings;"&gt; &lt;/div&gt; &lt;div style="font-family: webdings;"&gt;&lt;br /&gt;&lt;strong&gt;4. 함수의 반환값&lt;/strong&gt;&lt;/div&gt; &lt;div style="font-family: webdings;"&gt; &lt;/div&gt; &lt;div style="font-family: webdings;"&gt;    nID에 지정한 번호에 해당하는 컨트롤을 찾아서 해당 컨트롤의 주소를 반환합니다. 만약, 지정한 번호를 가진 컨트롤이 없다면  NULL을 반환합니다.&lt;/div&gt; &lt;div style="font-family: webdings;"&gt; &lt;/div&gt; &lt;div style="font-family: webdings;"&gt;    그리고 이 함수가 반환하는 주소는 임시적으로 생성된 객체의 주소이기 때문에 해당 함수에서만 지역변수로 선언해서 사용해야 합니다.  따라서 GetDlgItem 함수를 매번 호출하기 귀찮거나 효율을 높이기 위해서 멤버변수에 이 주소 값을 저장해서 사용하면 일시적으로 정상동작하는  것처럼 보이기도 하지만 아주 낮은 확률로 오동작을 합니다.&lt;/div&gt; &lt;div style="font-family: webdings;"&gt;&lt;br /&gt;&lt;strong&gt;5. 함수의 주의사항&lt;/strong&gt;&lt;/div&gt; &lt;div style="font-family: webdings;"&gt;    리소스 편집기에서 static 컨트롤을 생성하면 기본적으로 아이디가 IDC_STATIC 으로 설정됩니다. 이 값은 -1이고  유효한 값이 아니기 때문에 이 값으로 GetDlgItem 함수를 호출하면 NULL을 반환합니다. 따라서 자신이 생성한 static 컨트롤의  주소를 얻고 싶다면 해당 컨트롤의 아이디를 IDC_STATIC_1 와 같이 다른 이름으로 수정하셔야 합니다.&lt;/div&gt; &lt;div style="font-family: webdings;"&gt; &lt;/div&gt; &lt;div style="font-family: webdings;"&gt;    그리고 이 함수는 대화상자가 생성되어 있는 시점에서만 유효하기 때문에 아래와 같이 사용하시면 NULL을 반환하게  됩니다.&lt;/div&gt; &lt;div style="font-family: webdings;"&gt; &lt;/div&gt; &lt;div style="font-family: webdings;"&gt;    MyTestDlg ins_dlg;&lt;/div&gt; &lt;div style="font-family: webdings;"&gt; &lt;/div&gt; &lt;div style="font-family: webdings;"&gt;    CWnd *p_edit1 = ins_dlg.GetDlgItem(IDC_MY_EDIT); // 아직 대화상자가 생성되지 않아  NULL 처리됨&lt;/div&gt; &lt;div style="font-family: webdings;"&gt; &lt;/div&gt; &lt;div style="font-family: webdings;"&gt;    ins_dlg.DoModal();&lt;/div&gt; &lt;div style="font-family: webdings;"&gt; &lt;/div&gt; &lt;div style="font-family: webdings;"&gt;    CWnd *p_edit2 = ins_dlg.GetDlgItem(IDC_MY_EDIT); // 이미 대화상자가 종료되어 NULL  처리됨&lt;br /&gt;&lt;br /&gt;ps: &lt;span class="ct lh"&gt;일반적으로 윈도우에서도 이 함수를 사용하기는 하지만.. 일반 윈도우에서  자식윈도우(컨트롤포함)를 생성할때는 멤버변수로 선언해서 생성하는 경우가 많아서 이 함수를 사용할 필요가 없습니다.&lt;br /&gt;그래서 윈도우라는  용어를 대부분 대화상자로 변경해서 사용했습니다.&lt;br /&gt;&lt;br /&gt;ps2: &lt;span class="ct lh"&gt;간혹, GetDlgItem 함수를  이용해서 얻은 컨트롤의 주소를 대화상자 클래스의 멤버변수에 저장해서 사용해도 문제가 안되고 잘 사용하고 있다는 사람들도 있습니다. 이건  대화상자의 특성때문에 그렇습니다. 즉, GetDlgItem 함수에 의해서 생성된 임시 객체는 보통 메인 스레드가 쉬는 타이밍에 정리하도록 되어  있는데,, 이게 제대로 처리가 안되어서 그런겁니다. 하지만 아주 낮은 확률로 처리되는 경우가 있는데, 이럴때가 문제가 되죠. (멀티 스레드  사용시 확률이 증가합니다.)&lt;br /&gt;그리고 이 함수를 CFormView에서도 사용하게 되는데, 위와 같은 방식으로 사용하던 사람이 같은  방법으로 CFormView에서 사용한다면 대부분 오류가 발생하게 됩니다. 메인 스레드가 임시 객체를 제때 잘 제거해주기 때문에  그렇습니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;출처: &lt;a title="이 글을 소개할 때는 이 주소를 사용하세요" style="letter-spacing: 0px;" href="javascript:clipboard_trackback('http://www.tipssoft.com/bulletin/tb.php/FAQ/45');"&gt;http://www.tipssoft.com/bulletin/tb.php/FAQ/45&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:webdings;font-size:100%;"  &gt;//------------------------------------------------------------------------&lt;br /&gt;이글루에서 옮겨온 data입니다.&lt;/span&gt;&lt;br /&gt;&lt;!-- 수정 --&gt;&lt;!-- 답변 --&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-9022364630474003464?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/9022364630474003464/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/mfc.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/9022364630474003464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/9022364630474003464'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/mfc.html' title='[MFC]'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-8397267229173914723</id><published>2008-12-19T10:56:00.000+09:00</published><updated>2008-12-19T17:16:33.159+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DICOM'/><title type='text'>[PACS]DICOM에 관하여</title><content type='html'>&lt;pre&gt;&lt;br /&gt;1. Application Entity(AE) : 네트워크상에서 정보를 교환하기 위한 방식을 정의함, DICOM 통신을 할 수 있는 것&lt;br /&gt; 1) IOD(Information Object Definition) : A data abstraction of a class of real-world objects. A collection of related attributes (data elements)&lt;br /&gt;  -&gt; IOD는 정보교환을 위한 정보의 내용과 형식을 표준화하는 데에 사용&lt;br /&gt; 2) DIMSE(DICOM Message Service Element) Services : 앞에서 정의한 IOD들을 어떻게 운영할 것인지를 표준화하는 부분&lt;br /&gt;  -&gt; C 서비스와 N 서비스로 나뉨&lt;br /&gt;  -&gt; C 서비스는 MR 영상과 같이 환자정보, 검사정보, 시리즈정보, 영상자체정보가 혼합되어 있는 정보를 위한 것들이고,&lt;br /&gt;    N 서비스는 단순히 환자정보만을 어떻게 할 때에 사용하는 것임&lt;br /&gt; 3) SOP(Service Object Pair) Class : IOD와 DIMSE가 조합된 하나의 완전한 행위.&lt;br /&gt;  -&gt; 즉, 여러 가지 정의되어 있는 “무엇”과 “어떻게” 중에서 실제로 의미가 있는 것들만 짝을 지워 놓은 것.&lt;br /&gt; 4) Service Class : 개별적인 SOP class들을 모아서 실제로 사용할 수 있는 동작을 만들어내기 위한 것&lt;br /&gt; 5) Association Negotiation : 두 개의 영상장비가 통신을 하기 위해 협정을 맺는 것&lt;br /&gt;&lt;br /&gt;2. Presentation Context : Abstract Syntax(처리하고자 하는 SOP Class) + Transfer Syntax (Encoding 방식)&lt;br /&gt;  -&gt; 하나의 Abstract Syntax 에 여러 개의 Transfer Syntax 가 결합된 것(어떤 SOP Class를 어떤 방식으로 처리할 지를 나타냄)&lt;br /&gt; 1) Abstract Syntax : 사용되는 SOP Class&lt;br /&gt; 2) Transfer Syntax : Encoding 방식&lt;br /&gt;&lt;br /&gt;3. Data Set&lt;br /&gt; 1) Data Element / Data Element Type&lt;br /&gt; 2) Data Element Tag / Value Representation(VR)&lt;br /&gt; 3) Value Length / Value Field&lt;br /&gt;&lt;br /&gt;//------------------------------------------------------------------------&lt;br /&gt;이글루에서 옮겨온 data입니다.&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-8397267229173914723?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/8397267229173914723/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/pacsdicom.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8397267229173914723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/8397267229173914723'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/pacsdicom.html' title='[PACS]DICOM에 관하여'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-1657787279032708674</id><published>2008-12-19T10:51:00.000+09:00</published><updated>2008-12-19T11:07:09.548+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='육아'/><title type='text'>[육아]착한 아이 만들기에 집착하지 말자.</title><content type='html'>&lt;span style=";font-family:webdings;font-size:100%;"  &gt;&lt;&lt; 착한 아이 만들기에 집착하나요?&gt;&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt; 부모 말을 잘 듣는 착한 아이. 아마도 모든 부모가 아이에게 바라는 이상일 것이다. 그러나 이런 ‘착한 모습’이 진짜 아이의  속마음일까? 단지 ‘착한 아이’가 되기 위해 자신의 속마음을 감추고 있는 것은 아닐까? ‘거울 부모’의 저자인 권수영 연세대 기독상담센터 소장은  “말 잘 듣는 착한 아이는 부모가 만들어낸 환상에 지나지 않는다”며 “착하다고 칭찬하기에 앞서 아이가 진짜로 느끼는 감정이 무엇인지 파악해야  한다”고 강조했다. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;◆‘착한 아이’라는 말로 감정 억누르게 하지 말아야&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;부모가 생각하는 착한 아이는 어른의  말에 순종해야 한다. 어른에게 화를 내거나 소리를 지르면 큰일 날 일이다. 자신의 감정을 드러내는 아이는 ‘나쁜 아이’가 되는 것이다. 그  때문에 아이는 자신의 감정을 되도록 감추고 드러내지 않아야 ‘착한 아이’가 된다고 생각하게 된다. 이럴 경우 겉으로는 착한 아이의 모습이지만,  속마음은 점점 왜곡된다. 우울한 마음, 혼자 있고 싶은 마음, 피해의식, 다른 사람의 눈치를 보는 마음, 반항적이고 폭력적인 마음 등이 자라게  된다. 특히 큰 목소리로 아이를 제압하고 통제하려는 부모 밑에서 ‘착한 아이 콤플렉스’를 가진 아이가 많이 생긴다. “빨리 방으로 들어가서  공부해!”라는 야단에 불평 한마디 없이 방으로 들어가는 아이를 보며 부모는 만족해한다. “역시 큰소리를 쳐야 말을 듣지”라며 자신이 아이를  통제했다고 믿는다. 그러나 방으로 들어간 아이는 그제야 불만을 터뜨린다. 무언가를 갈기갈기 찢거나 일기장에 부모 욕을 쓰는 아이가 바로 이런  경우이다. 권 소장은 “이런 아이들은 자신이 원하는 대로 행동하면 부모나 다른 사람들에게 미움 받을까봐 두려워한다”며 “부모는 아이들이 자신의  감정을 솔직하게 드러내도록 도와줘야 한다”고 조언했다.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;◆아이의 말을 경청하고 공감해줘야&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt; 권 소장은 “부모는 아이의 마음을 비추는 거울이 돼야 한다”고 당부했다. 요즘 부모들 중에는 아이의  머리(공부)에만 관심을 둘 뿐 아이의 마음은 전혀 들여다보지 않는 경우가 많기 때문이다. “엄마, 오늘 학교에서 선생님한테 혼났어”라는 아이의  말에 부모는 “또 뭘 잘못했기에 혼났어?”라며 야단치기 일쑤이다. 혼이 나서 속상한 마음을 엄마한테 위로받으려고 했던 아이는 이중으로 상처를  받는다. 이럴 때는 “선생님께 혼났다니 속상했겠다. 그 동안 학교에도 일찍 가고 많이 노력했는데”라며 아이의 마음을 살피고 공감해줘야 한다.  아이가 화를 낼 때도 “너 왜 화내고 그래?” “뭐가 맘에 안 들어?”라며 취조하듯 묻는 것은 좋지 않다. “무엇이 우리 아들을 화나게  했을까?” “뭔가 원하는 것이 있는데 잘 안 되는 모양이구나? 그게 뭔지 엄마한테 얘기해 볼래”라는 질문으로 아이가 자신의 욕구와 감정을  자연스럽게 표현하도록 해야 한다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;◆스스로 도덕적 동기를 찾게 하라&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;선량한 마음의 도덕적 동기는 크게 권위에 의한 도덕적 동기와 자신이 스스로 소망하는 바에 의한 도덕적 동기로  나뉜다. 예를 들면 전자는 “거짓말하면 죽어! 너 어릴 때 아빠한테 혼난 거 기억하지?”라는 동기이고, 후자는 “나를 그렇게 믿어주셨던 아버지의  마음을 다시는 아프게 하지 않을 테야”라는 동기이다.&lt;br /&gt;&lt;br /&gt;아이가 둘 중 어느 동기를 갖느냐는 전적으로 부모의 태도에 달려 있다.  체벌 위주의 강압적 태도는 ‘착한 아이 콤플렉스’를 갖게 만든다. 공감을 바탕으로 자녀와 신뢰를 쌓아야 자신이 원하는 바에 의한 도덕적 동기를  가지고 행동하는 ‘진짜 착한’ 아이로 키울 수 있다. “무엇 때문에 엄마한테 거짓말을 했을까? 사실대로 말하면 혼날까봐 무서웠구나? 아니면  친구들이나 선생님이 알게 될까봐 창피했니?”라며 아이의 마음을 이해하려고 노력해줘야 한다. 그리고 “엄마는 네가 나쁜 아이가 아니라는 걸  안다”는 말로 믿음을 표현해 준다. 권 소장은 “공감을 바탕으로 신뢰를 쌓았을 때 아이는 부모의 권위에 대한 두려움을 버리고 자신의 잘못을  솔직하게 인정하게 된다”고 말했다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;출처: &lt;a href="http://blog.empas.com/lspyo0212/27184391"&gt;http://blog.empas.com/lspyo0212/27184391&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;//------------------------------------------------------------------------&lt;br /&gt;이글루에서 옮겨온 data입니다.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-1657787279032708674?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/1657787279032708674/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1657787279032708674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/1657787279032708674'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post.html' title='[육아]착한 아이 만들기에 집착하지 말자.'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-5782022901279856809</id><published>2008-11-19T10:04:00.001+09:00</published><updated>2009-01-21T16:48:42.805+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogging'/><title type='text'>Blog 정착 문제</title><content type='html'>지금 기존의 yahoo blog를 사용하고 있습니다.&lt;br /&gt;하지만 yahoo의 내외부적 상황이 bloger들의 안정적인 blogging에 불안함을 가중시키고 있습니다.&lt;br /&gt;&lt;br /&gt;또한 한국의 요즘 상황은 특히나 개인적인 blog까지 검열하는 판국이라 (yahoo도 안전하지 않죠.) 아무래도 불안합니다.&lt;br /&gt;빨리 옮기는게 상책이지 않을까 하는 생각이 듭니다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-5782022901279856809?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/5782022901279856809/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/11/blog.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/5782022901279856809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/5782022901279856809'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/11/blog.html' title='Blog 정착 문제'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4187212371018175208.post-9159955409525116005</id><published>2007-12-29T17:10:00.000+09:00</published><updated>2008-12-29T17:14:30.520+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='***방명록'/><title type='text'>방명록</title><content type='html'>방명록입니다.&lt;br /&gt;따로 방명록이 없으니 이렇게 만들어야죠.&lt;br /&gt;&lt;br /&gt;하고 싶은 말은 여기에 댓글로 남겨주세요^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4187212371018175208-9159955409525116005?l=wslee13.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wslee13.blogspot.com/feeds/9159955409525116005/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_29.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/9159955409525116005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4187212371018175208/posts/default/9159955409525116005'/><link rel='alternate' type='text/html' href='http://wslee13.blogspot.com/2008/12/blog-post_29.html' title='방명록'/><author><name>GhostSheep</name><uri>http://www.blogger.com/profile/00086708115887519561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-vC6SEj5GOWE/Ta_O4x8lfvI/AAAAAAAAAUw/bKaxbnj5EnM/s220/My.jpg'/></author><thr:total>0</thr:total></entry></feed>
