sdj3338의 등록된 링크

 sdj3338로 등록된 네이버 블로그 포스트 수는 44건입니다.

MFC 팁2 [내부링크]

수행 시간재기 CTime startTime = CTime::GetCurrentTime();// ... perform time-consuming task ...for(UINT a=0;a<=1000000;a++)for(UINT b=0;b<=1000;b++);CTime endtime = CTime::GetCurrentTime();CTimeSpan elapsedTime = endtime - startTime;////////////////////////DWORD end=GetTickCount();GetTickCount()은 시스템이 시작한 시각부터 밀리센컨 단위로리턴1000=1초 =============================================== 팝업 메뉴 CMenu menu, *pMenu;menu.LoadMenu(IDR_POPUP); //리소스 뷰에서 ID IDR_POPUP 메뉴를 로드한다pMenu=menu.GetSubMenu(0); //ID IDR_POPUP 메뉴의 첫번째 서브메뉴를 로드한다ASSERT( pMenu);pMenu-&.......

MFC Ribbon Programming - MFC 리본 사용하기 [내부링크]

이 글은 Furyheimdall 에 의해 furyheimdall.tistory.com 과 http://www.ac-plus.com/ 에서 작성되었습니다. Visual Studio 2008 Feature Pack 에서 도입된 MFC Next 에는 Ribbon Interface 가 추가되었습니다.쉽게 말해 MFC 로 Office 2008 같은 UI 의 프로그래밍을 할 수 있게 되었지요.특별히 자료가 필요할 만큼 어렵지는 않고 이런 혁신적으로 바뀐 UI를 몇 줄(?)의 코드만으로 변경할 수 있다는 데 놀랐습니다. UI가 다 그렇듯 노가다성이 좀 짙게 띄는 단점이 있습니다. 그리고 설계는 잘 되어있는 듯 보이지만 자잘한 버그들이 많이 보고 되고 있는 것 같네요.어찌됬건 이번 포스팅에서는 프로젝트를 진행하면서 Ribbon 을 이용하여 프로.......

코딩룰에 관한 문서 [내부링크]

코딩룰에 관한 문서

TIP_VC++ [내부링크]

TIP_VC++ 참고 링크 C++, WinAPI : API 관련 세세한 샘플과 더불어 자세한 설명이 돋보이는 사이트임. 2008/05/06 17:34:55 C++ HowTo: 여러 주제 ATL + BHO: ATL관련 내용을 링크한 사이트.. MFC 에서.. DLL의 사용 Visual C++ 디버거 사용 팁 Visual C++ AddIns Professional User Interface Suite CString 형변환 관련 TIP 디버깅 콘솔창 이용하기 : 원 참고 소스 Source Insight: 사용법1, 사용법2 11. Visual Assist X Memory Leaker : 메모리 누수를 체크하는 프로그램. 2008/07/02 21:27:38 종속성 이해하기: MSDN 글 VC2005로 설치판 만들기 세로 탭(Tab) 사용하기 : 방식은 CPropertySheet이용. 견마::렌더링 방법 (08.09/26. 창원 국.......

역행렬 존재 여부 [내부링크]

행렬 A의 역행렬이 존재한다고 가정... 행렬의 상등 정의 연립방정식 가감법 사용 [출처] 역행렬 존재 여부..|작성자 파이

A-특공대 [내부링크]

A-특공대 (The A-Team) 감독 조 카나한 출연 리암 니슨, 브래들리 쿠퍼, 제시카 비엘, 퀸튼 램페이지 잭슨, 샬토 코플리, 패트릭 윌슨 제작 2010 미국, 119분 평점 재밌음!

알포월드 사전가입 방법 [내부링크]

요즘 엄청 핫한 NFT~! 최근 뉴스에 어떤 NFT 가 몇억에 팔렸다 얼마에 팔렸다 많이 보셨을텐데요 이 NFT 를 소유하거나 구매하기 위해서는 특정 이벤트에 참가하여 AirDrop을 받는 방법과 직접 암호화화폐를 구매하여 NFT를 구매 했어야 했습니다 그런데 우리나라에 신박한 사이트가 나왔네요 이제는 암호화화폐를 구입하지 않아도 원화로 구매할수 있습니다 알포월드라는 사이트인데요 지금 사전가입을 받고 있으니 사전가입해 줍시다 현재 사이트가 접속이 되었다 안되었다 하는데 새로고침 시도 몇번 해주면 접속 가능합니다 가입시엔 성함과 이메일 그리고 핸드폰번호만 입력해주면 간단히 가입가능합니다 일반 회원과 작가회원을 고를수 있.......

StrTrim [내부링크]

문자열 중 특정문자를 앞 혹은 뒤에서 잘라버리는 역활을 한다. 보통은 공백을없애기 위해서 사용된다. CString의 경우 Trimleft, TrimRight를 이용해서 앞과 뒤를 잘라낸다. 그런데 한번에 할수 있는 것도 있는데 그것이 바로 StrTrim이다. BOOL StrTrim( LPTSTR pszSource, //Trim을 하고자 하는 버퍼 LPCTSTR pszTrimChars // 잘라내고자 하는 char ); 예제. (from msdn) #include <windows.h>#include <iostream.h>#include "Shlwapi.h"void main( void ){ //String one TCHAR buffer[] = TEXT("_!ABCDEFG#"); TCHAR trim[] = TEXT("#A!_\0"); cout << "The string before calling StrTrim: "; cout << buffer; cout.......

template 정리 [내부링크]

C++은 여러 가지 개발 방법을 지원하는 멀티 패러다임 언어라고 하는데 적어도 다음 세 가지 방법으로 개발을 할 수 있다. ① 구조적 프로그래밍 : C언어에서와 마찬가지로 함수 위주로 프로그램을 작성할 수 있다. C++이 C언어의 계승자이므로 C언어의 개발 방법을 지원하는 것은 당연하다. ② 객체 지향 프로그래밍 : 캡슐화, 추상화를 통해 현실 세계의 사물을 모델링할 수 있으며 상속과 다형성을 지원하기 위한 여러 가지 언어적 장치를 제공한다. ③ 일반화 프로그래밍 : 임의 타입에 대해 동작하는 함수나 클래스를 작성할 수 있다. 객체 지향보다 재사용성과 편의성이 더 우수하다. 템플릿(Template)이란 무엇인가를 만들기 위한 형틀이.......

툴바(Toolbar) 에 대한것 정리 [내부링크]

Toolbar에 버튼 추가하기 방법1) - SetButton을 이용하여 버튼을 설정할수있습니다. 이 방법을 이용하면 이벤트가 발생할때 툴바를 Dynamic하게 변경하기가 쉽습니다. static UINT ZukenToolbars[] ={ ID_WTOOL_BTN1, ID_SEPARATOR, // status line indicator ID_WTOOL_BTN2, ID_WTOOL_BTN3,}; m_wndToolBar.SetButtons(ZukenToolbars , sizeof(ZukenToolbars)/sizeof(ZukenToolbars[0])); 방법2) CToolBarCtrl을 받아 AddButtons를 이용하는 방법입니다. 이 방법은 조금은 번거롭고 소스 코드가 길어지는 단점을 안고 있습니다. 하지만 코드가 길어지는 만큼 버튼의 상태 및 이미지를 임의로 선택할수 있다는 장점을 가지고 있습니다. 즉 이미지.......

종합 샘플 (아웃룩바 + 다중분할 + statusbar + toolbar ) [내부링크]

그동안 올렸던 각 컨트롤을 하나로 모았습니다. Toolbar에 ComboBox 넣기 화면 분할하기 상태바에 ProgressBar 넣기 아웃룩 바 넣기 물론 많은 부분 인터넷에서 떠도는 샘플 소스들을 이용하여 만들었습니다. 프로젝트를 시작하기에 앞서 만든 샘플 예제 입니다. 즐거운 코딩 됩시다. 아자. 출처 케이코드구루

디자인 패턴 배우기 [내부링크]

디자인 패턴 - http://younghoe.info/tag/Design%20Patterns 디자인 패턴 - http://whiteship.tistory.com/category/Design%20Pattern 패턴의 장단점 - http://blog.naver.com/phoogu 정리된 문서 다운받기 GOF의 디자인 패턴 이렇게 활용한다 샘플 예제 다운받기 출처 케이코드구루

Edit Plus(에디트 플러스) 에서 C 컴파일 및 실행 방법 [내부링크]

Microsoft Visual Studio 2005가 설치되어 있다는 가정하에 설명합니다.(이전 버전도 가능함) 우선 edit plus에 컴파일에 쓸 컴파일러를 등록해줘야 합니다. 상단 메뉴의 도구(T) - 사용자 도구 구성(C) 을 클릭하면 아래와 같은 화면이 나옵니다. 1. 여기서 우측 상단의 추가(D)>> 를 클릭하고, 프로그램(P)를 선택한뒤, New Program 이라고 되어있는 메뉴제목을 자신이 정하고싶은 이름으로 정합니다. ex) C_Compile 2. 명령 부분의 우측에 를 클릭하고, 폴더화면이 나오면 Microsoft Visual Studio 를 설치한 폴더안의 \VC\bin\ 폴더를 찾아갑니다. 예를 들어 c: 에 설치를 했다면 아래와 같은 경로를 찾아가면 됩니다. C:\Program File.......

MFC Tip [내부링크]

1. DC얻기 CClientDC dc(this); 2. Client 영역 구하기 GetClientRect(&rect); WM_SIZE 메시지발생후 cx,cy 사용 3. 문자열 사각형안에 그리기 pDC->DrawText(문자열,사각형,Style); Style: DT_BOTTOM - 문자열을 사각형 맨아래줄에배열 반드시 DT_SINGLELINE과 함께사용 DT_CENTER - 문자열을 가로중앙에 배치 DT_VCENTER - 문자열을 세로중앙에 배치 DT_LEFT,RIGHT - 문자열을 좌,우로 배치 DT_SINGLELINE - 문자열을 한줄로만 쓴다 4. Brush 사용법 CBrush brushname(RGB(red,green,blue)); //브러쉬 생성 CBrush *oldBrush=pDC->SelectObject(&brushname); //이전Brush 저장, 새로운 Brush 선택 pDC->SelectObject(oldBrush.......

C 프로그래머가 알아야 할 것들 - Chapter 9 좋은 프로그래밍 습관 [내부링크]

(1) 마인드를 바꾸자누구에게나 하루는 24시간 입니다. 똑같이 주어져 있는 시간을 효율적으로 하는 습관을 들여야 합니다. 업무시간 내내 집중력을 발휘 할 수 있는 사람은 거의 없습니다. 중요한 건 한 시간을 일 하더라도 얼마만큼 집중력 있게, 업무 효율을 높일 수 있는지 여부가 중요합니다. 버그가 없는 프로그램을 만드는 것은 불가능 하다는 것을 인지해야 합니다. 버그를 줄이려는 노력은 당연하지만, 버그 0%에 도전하기 위해 몇 달 몇 일 테스트만 주구장창 하는 것은 비 효율적입니다.일에는 우선 순위를 두는 것이 좋습니다. 여러 개의 버그를 동시에 수정해야 하는 상황이라면 발생 빈도가 높고, 프로그램이나 컴퓨터가 비정상 종.......

C 프로그래머가 알아야 할 것들 - Chapter 10 객체 지향 프로그래밍 [내부링크]

(1) 객체 지향 프로그래밍에 대한 썰 제가 프로그래밍을 처음 공부하던 시기인 97년에 객체 지향 프로그래밍(Object Oriented Programming. 이하 OOP)은 단연 화두였습니다. 이번 챕터에서는 지금은 당연히 여겨지고 있는 객체 지향 프로그래밍과 그 3대 특징(객체 지향 프로그래밍의 3대 원칙이란, 추상화, 캡슐화(은닉화), 다형 성(상속)을 말합니다) 이라 불렸던 것에 대해 알아보는 시간을 가져보겠습니다. (2) 추상화 (Abstraction) OOP에서는 모든 사물을 객체로 보기로 했다고 했었죠? 만약 여러 가지 자동차의 전, 우, 좌, 우 사진을 보여주는 프로그램에서, 자동차를 객체로 구성한다고 해 봅시다. 자동차의 엔진, 타이어, 연료탱크 등.......

MFC How To.. [내부링크]

꽤나 오래된 자료..허나 초보에겐 유용함

TCP/IP 프로토콜 제작 / 파싱 및 Auditing 강좌 - 5 [내부링크]

이번 강좌에서 배울 내용은 프로토콜을 만들려면 어떻게 해야 하는가에 대한 간단한 튜토리얼이라고 생각 해 주시기 바랍니다. 실제 프로그램을 만들고 하나하나 따라하기 식으로 한참동안 글을 작성했지만, 글을 쓰고 보니 이건 초보자를 위한 글도 아니요, 중급자를 위한 글도 아닌 애매한 글이 되어버리더군요. 조금 딱딱하지만 간단하게 정리하도록 하겠습니다. 프로토콜을 한 번 만들어 볼까요? 메신저 프로그램을 만든다고 가정하겠습니다. 구성도는 다음과 같습니다. 메신저 서버 --- 클라이언트 --- 클라이언트 --- 클라이언트 1. 원하는 기능 리스트 만들기 대표적인 기능 몇 가지만을 추려보도록 합니다. (S는 Server, C는 Client를.. .......

p2p 동영상 송수신 강의 [내부링크]

먼저 완성도 높은 소스를 http://www.codeproject.com/KB/IP/videonet.aspx 사이트에 올려주신 Nagareshwar 프로그래머에게 감사합니다. 이 강의는 위의 소스를 분석 위주로 간단하게 설명했습니다 . 쉽게 프로젝트에 응용하시길 바랍니다.

WIndows XP SP3 다운로드 [내부링크]

우선 알려드리고 싶은건 최근에 문제가 된 버그수정은 안한 상태에서 배포하는것이라는걸 참고 하시기 바랍니다. 어차피 일반유저들은 상관없습니다. 배포하는거 보니 핫픽스로 버그를 해결할 방침인듯하네요 전 개인적으로 RTM이상의 서비스팩 배포분은 정식버전이라기 보단 배포버전이라고 부릅니다. 이유는 RTM버전=정식배포 를 하기때문이죠 기존에 RTM설치한 분들은 그냥 사용하셔도 됩니다. 직접다운로드 [CD버전] http://download.microsoft.com/download/c/3/7/c375a72d-b83a-40f4-82c6-da3f1499ddeb/xpsp3_5512.080413-2113_kor_x86fre_spcd.iso [파일버전] http://download.microsoft.com/download/7/9/a/79aaf123-878f-4945-933c-7b13.......

실행파일 이름지정 [내부링크]

Project settings - debug tab - Executable for debug session G:\Test\Debug\test.exe (실행파일의 이름을 지정)Project settings - link tab - output file name ..\Debug/test.exe (실행파일의 이름을 지정)

USB 포트로 장착된 장치 인식하기 [내부링크]

요즘 진행하고 있는 프로젝트가 둘 있는데, 모두 하드웨어와 Interface하는 프로그램이다.제작된 하드웨어가 컴퓨터에 연결되었을 때 이를 인식하여 Application level에서 일련의 동작을 수행하는 것으로, 하드웨어와 커널 중간에 Device Driver와 Filter Driver가 작동하고 있다.이 때, 장치가 장착되었을 때와 탈착되었을 때를 알아야 이에 맞는 동작을 수행할 수 있어서 이런 Event를 잡아내는 것이 필요하며, Windows에서는 WM_DEVICECHANGE라는 메시지를 Broadcast하므로 이 메시지를 잡아 처리하면 알아낼 수 있다.MSDN을 보면 함수 원형은 afx_msg BOOL OnDeviceChange(UINT nEventType, DWORD dwData) ;이고, nEventType은 발생한 이벤.......

콤마 넣기 [내부링크]

int GetNumberFormat( LCID Locale, // locale DWORD dwFlags, // options LPCTSTR lpValue, // input number string CONST NUMBERFMT *lpFormat, // formatting information LPTSTR lpNumberStr, // output buffer int cchNumber // size of output buffer); 넘버를 스트링으로 변환할때 Format이 필요할때가 있는데.. 바로.. 그걸 해주는 겁니다. 즉 3자리씩 끊어서 콤마(,)를 넣어준다는 것이지요 123456789 --> 123,456,789 이런식.. CString InSertComma(double dNum){ int i, j; CString strTmp; CString strNum; strTmp.Format("%.0f", dNum); for(i = strTmp.GetLength() - 1, j = 1; i >= 0; i--, j++) { if( ((j % 3) == 1 ) &am.......

CString으로 문자열 리소스를 사용하자 [내부링크]

문자열을 스트링 테이블에 담아놓고 사용하는게 좋다고들 말하지만 쓰기가 귀찮아서 그냥 소스에 적는 경우가 많습니다. 하지만 CString에서는 스트링 테이블 사용을 쉽게 하기 위한 좋은 방법을 많이 제공합니다. 적극 활용하시기 바랍니다. 혹시 압니까? 프로그램이 평가가 좋아서 수출하게 됐는데 CPP코드 죄다 뒤져가면서 "아, 여기도 문자열이 있다" "아, 100개쯤 더 있는데 어디지..." 라고 하면서 밤을 세게 될지. 미리 스트링 테이블에 넣어뒀다면. "아저씨, 이거 일본어로 번역해주세요." 라고 하면서 번역 잘하는 사람에게 넘기면 끝이란 것이죠. 음하하!1. 초기화CString strError((LPCSTR)IDS_ERROR_FAILED);strError += "너 바보?";.......

C 프로그래머가 알아야 할 것들 - Chapter 5 메모리 [내부링크]

Chapter 5 포인터(1) 메모리를 알자(2) 변수와 포인터의 차이점(3) 포인터를 써보자(4) 포인터를 쓰는 이유(5) 배열과 포인터 (1) 메모리를 알자 계산을 할 때에 일반적으로 데이터와 연산자가 필요합니다. 예를 들어, 1 + 2 라는 식을 계산 하기 위해선, 1과 2라는 데이터가 필요하고, + 라는 연산자가 필요하죠. 우리가 노트에 계산을 할 때에는 계산 결과를 노트에 표기 합니다. 계산 결과를 기록해 두는 이유는 그 계산 결과를 가지고 다른 연산을 해야 하거나, 그 결과 자체가 의미를 갖기 때문입니다. 컴퓨터에서 계산된 결과를 위해서 어떻게 해야 할까요? 바로 변수에 저장하면 됩니다. int a = 1 + 2; 이렇게 하면, 1 + 2 의 결과가 변.......

C 프로그래머가 알아야 할 것들 - Chapter 6 자료 구조 [내부링크]

Chapter 6 자료구조 (1) 자료 구조란? 프로그램이 어떤 일을 할 때에는, 그 일을 하기 위해 필요한 데이터가 존재 합니다.예를 들어, 비디오 대여점 관리 프로그램을 작성한다고 생각해 봅시다.우선 비디오 정보들이 필요합니다. 비디오의 정보에는, 비디오에 담긴 미디어의 작품 명, 감독, 출연진 (혹은 성우) 등과, 비디오의 위치, 대여료, 대여기일 등의 정보를 포함합니다.그리고, 회원 정보도 필요합니다. 회원 정보에는, 회원의 이름, 나이, 주소, 전화번호, 대여한 비디오 정보가 포함 될 것입니다.이 정보들이 있어야만, 비디오 대여 관리를 프로그램으로 처리 할 수 있습니다.이런 정보들을 어떻게 저장하고 관리 할까요?그 저장하는 저.......

C 프로그래머가 알아야 할 것들 - Chapter 7 어셈블리 [내부링크]

(1) 어셈블리 언어C언어는 다른 언어들 보다 어셈블리에 근접한 언어입니다. 인라인 어셈블리가 가능한 데다가, 메모리를 직접 다루는 것이 가능하며, C언어는 어셈블리어와 1:1대응까진 아니지만 직접 대응 되는 언어이기 때문입니다.C언어로 작성한 코드는 컴파일러를 통해서 어셈블리어와 대응되는 오브젝트 파일로 반드시 변환이 되어야 해당 코드가 실행 될 수 있습니다. 어셈블리 언어는 그 코드가 어떤 일을 할지를 추상적이 아니라, 직접적으로 보여줍니다. 논리상의 오류나, 수행 속도, 수행 과정에 대해 명확히 해준다는 점에서 직관적인 언어입니다.어셈블리 언어를 사용하면 메모리에 대한 이해도도 높아집니다. 우리가 포인터에 대.......

[에디트컨트롤-기초05] 배경을 투명하게 만들어 보자. [내부링크]

에디트 컨트롤의 배경을 투명하게 만드는 건 쉬운일이 아니다..www.codeguru.com(이하 그루)이나 www.codeproject.com (이하 플젝)에 찾아보면..그나마 플젝 사이트에나 쓸만한거 하나 건질 수 있다.버뜨... 에디트 컨트롤 배경하나 투명하게 만들자고.. 클래스를 자꾸 추가하는건..전혀 입맞에 맞는일이 못된다.작업하다 보면 늘어나는 클래스에 골머리 뽀사지고, 이기능 넣느라 이 클래스 추가하고저 기능 넣느라 저거 추가하고.. ㅜㅜ그냥 다얄로그에 몇줄 추가해서 해결할 방법이 있을까? 당연히 있다.. ㅎㅎ좀 귀찬긴 하지만 원하는 기능을 만드는 즐거움을 어떤것에 비할까..이전의 샘플 sample2.zip 프로젝트를 조금 변화 시켜보았다.배경.......

[에디트컨트롤-기초06] 이벤트에 대하여 알아보자 [내부링크]

대부분의 컨트롤을 다룰 때 초기에는 별 필요성이 없다가, 이것 저것 기능을 처리할려다 보면 꼭 필요한것들이 바로 이벤트를 핸들링 하는 일이다.정확한 개념 이해를 위해서 MSDN의 원문을 첨가한다. 물론 딸려오는 한글 설명은 번역한 내용을 기술하는 것이 아니고, 그냥 정리된 개념을 서술하는 것이다.에디트 컨트롤에 특화되어 제공되는 이벤트는 다음과 같이 8개가 있다.1. EN_CHANGEThe EN_CHANGE notification message is sent when the user has taken an action that may have altered text in an edit control. Unlike the EN_UPDATE notification message, this notification message is sent after the system updates the screen. .......

[에디트컨트롤-기초07] 응용 : 시리얼 입력창을 구현해보자. [내부링크]

그림과 같이 에디트 컨트롤이 5개 있는 화면이라고 가정해 보자..위 화면에서 시리얼 키를 입력받는 다고 가정할 때.. 숫자영어로 조합된 5개 문자씩을 각각의에디트에 입력받으려면 어떻게 구현해야 할까?또한 에디트 하나에 5개의 문자가 입력되면 어떻게 자동으로 다음 에디트로 넘어갈까?요런 자동화가 되어있지 않다면 하나씩 입력하고 5개 확인하고 탭 누르고 또 입력하고 탭 누르고..그렇게 간단한건 아니지만 사용자 편의를 제공해야 하는 입장이라면 구현해야 할것이다.아래는 WM_KEYDOWN메시지 하나로 몽땅 처리한 구조이다.여러가지 방법이 존재하겠지만.. 이렇게도 구현할 수 있음을 보여주는 샘플이므로 참조해보자.코드 자체가 난.......

[에디트컨트롤-기초08] 응용 : 로그인 입력창을 구현해보자 [내부링크]

지금까지 진행해 왔던 과정을 돌이켜 보고, 몇가지 정리를 하면서 이러한 기능을 대부분 수용하는 샘플을 만들어 보았다. 또한 에디트 컨트롤 기초편의 마지막 장이기도 하다.1. 부모 다이알로그와 자식 다이알로그간의 데이터 전달.2. 입력된 데이터의 올바른지 판단여부.3. 최대 입력 수 재한4. 데이터의 저장 및 비교5. 글자 색상 변경6. 다이알로그 배경색 변경처음 프로그램을 실행 시키면 뜨는 화면우선 가입하기 버튼을 누르면 조인할 수 있는 창이 뜬다.우선 아이디를 입력한다. 아이디는 4-8자리 까지 제한이 있고,영문과 숫자만 입력받는다.[한글을 넣으면 오동작을 할 수 있다. 한글 처리는 여기서 다루지 않는다.]아이디를 입력하고.......

[에디트컨트롤-기초09] 글자 배경 바꾸기 2 [내부링크]

지난 강좌를 찾아보니, 에디트에 대한 배경 처리가 제대로 마무리 되지 못한 상태에서강좌를 마쳐 혼란을 가져온것일 수 있을꺼 같아.. 질문을 토대로 배경처리 기능을 마무리 하려고 한다.위 그림은 두가지로 그 기능이 분류된다.1. 왼쪽 에디트-> 글자 바탕과 배경색상을 모두 녹색으로 처리한 것2. 오른쪽 에디트-> 글자 바탕은 TRANSPARENT 시키고, 바탕에는 HATCH 브러쉬를 뿌린것이다.위 두가지 구현에는 다음과 같은 차이가 있다.1번은 글자와 배경을 모두 그려주므로, 글씨를 쓸때 잔상이 남거나 깜빡임이 전혀없다.2번은 글자는 쓰되 배경을 그려주지 않으므로 글씨를 쓸때 깜빡임은 없으나 잔상이 남는다.이러한 이유로 두가지의.......

중첩된 클래스 멤버를 사용하는 경우에 발생하는 VC++ 버그 [내부링크]

BUG: C2352 Error for Reference to Nested Class MemberBUG: 중첩된 클래스 멤버를 사용할 때 C2352 에러가 발생한다 View products that this article applies to. Article ID : 153801 Last Review : December 8, 2003 Revision : 2.0 This article was previously published under Q153801 On This Page SYMPTOMS CAUSE RESOLUTION STATUS MORE INFORMATION Sample Code SYMPTOMS When you attempt to build the sample code below, you will get an error message similar to the following: 다음의 샘플 코드를 빌드 하려고 할때, 아래와 같은 에러를 만나게 됩니다: error C2352: 'A::AA::m' : illegal call of nonstatic member function.......

VC6의 유용한 기능... 한가지(Gallery) [내부링크]

지금껏 수만은 프로젝트(VC6)를 생성하면서 기존의 소스를 사용 할 일이 있을 때에는 항상 소스를 복사하여 사용하고.. 다이얼로그가 끼었을 경우에는 rc파일을 열어서 복사를 했었는데.. 이런 생 노가다가 전혀 필요가 없는 기능이 VC6에 있었네요.. (전혀 몰랐음... 이제 VC6 거의 안쓰는데.. ㅜㅜ) 우선 테스트용으로 프로젝트를 하나 만들면서 설명하겠습니다. 아래 그림처럼 클래스뷰에서 마우스 오른쪽 버튼을 눌러 [Add to Gallery] 를 선택합니다. 그러면 해당 클래스 및 해당 클래스의 리소스 파일까지 몽땅 Gallery 폴더에 저장 됩니다. 이것으로 현재 테스트 프로젝트에서 할 일은 끝났습니다.. --;; 그리고 다른 프로젝트에서 이 클.......

C 프로그래머가 알아야할 것들 - Chapter 1. 진법 [내부링크]

Chapter 1. 진법 (1) 왜 진법에 대하여 배워야 하는가?(2) 2진법(3) 8진법(4) 16진법 (1) 왜 진법에 대하여 배워야하는가? 진법이 뭘까요? 바로 수를 세는 단위입니다.진법중에는 우리가 흔히 사용하고 있는것은 60진법(초,분을 재는데에 쓰이는 방식. 0~59까지 세고, 60이 되었을떄 자리올림하는 수체계)이나, 10진법(0~9까지 세고, 10이 되었을 때는 자리올림을 하는 우리가 기본적으로 수를 세는방식)등도 있습니다.그 중에서도 여기서 배울 것은 2진법,8진법,16진법이 있는데요, 이 진법들에 공통점은, 모두다 2진수와 연관이 있는 진법이라는 겁니다.왜 2진수(혹은 2진수와 관련이 깊은 진법에 대해 알아야 될까요? 그 이유는 컴퓨터는 0과.......

C 프로그래머가 알아야할 것들 - Chapter 2. 비트의 법칙 [내부링크]

Chapter 2. 비트의 법칙 (1) 비트가 뭐지? (2) 프로그램 작성하는데 비트가 왜 필요한걸까? (3) 데이터형 (4) 바이트로 구성된 파일(5) 비트 연산자 (6) 간단히 구현해보는 압축 (1) 비트가 뭐지? 비트란 Binary Digit. 즉 이진수의 약자입니다. 한마디로 이진수를 의미한다고 할 수 있죠. 비트는 컴퓨터에서 제어 가능한 데이터의 최소단위입니다. 하지만, 컴퓨터에서 입출력할때 사용하는 최소 단위는 바이트죠. 둘다 최소단위인데...저게 뭔소린가...하실분도 있을겁니다. 간단히 설명하자면, 비트란 저번 강좌에서 배웠던 이진수 10을 2비트(2진수 2자리 수이기에)로 표현 가능하고 제어 가능하단 의미고, 바이트는 비트 8개가 모여서 구성된.......

C 프로그래머가 알아야할 것들 - Chapter 3. 운영체제와 컴퓨터 원리 [내부링크]

Chapter 3. 운영체제와 컴퓨터 원리 (1) 운영체제란?(2) 이벤트(3) 프로세스와 쓰레드(4) 컴퓨터는 계산기다(5) 디지털과 아날로그(6) 2D게임이 3D게임보다 빠르다?(1) 운영체제란?초기에 컴퓨터는 컴퓨터를 키자마자 애플리케이션 디스크를 삽입해야만 했습니다.그리고 특별한 경우를 제외하고는 다른 프로그램 사용시에는 재부팅 시켜야만 했습니다.이 방법은 매우 불편했습니다. (비디오 게임기들은 아직 이 방식을 채용하고 있는 경우도 있습니다.)그래서 유닉스, MS-DOS등의 운영체제가 나오게 됐습니다. (많은 분들이 오해하시는 것이 있으신데, MDIR은 운영체제가 아닙니다. 인터페이스를 제공해주는 프로그램이죠)각 운영체제하에 프로그.......

C 프로그래머가 알아야할 것들 - Chapter 4. 프로그램 언어 [내부링크]

Chapter 4. 프로그램 언어 (1) 왜 문법을 배워야하는가?(2) 내가 이걸 배워서 과연 실전에 사용할 수 있을까?(3) 무엇을 위한 프로그램인가?(1) 왜 문법을 배워야 하는가?사실 이건 당연한 이야기 일 수 있는데요, 한국어를 할줄 모르는 독일인과, 독일어를 할줄 모르는 한국인과 대화가 가능할까요? 바디 랭귀지로 하면 되지 않느냐는 분도 계시겠지만 그것도 어느정도 한계가 있기에, 제대로된 의사소통은 불가능할겁니다.컴퓨터는 0과 1 (2진수)밖에 인식하지 못한다고 앞에서 배웠습니다.그렇다고 컴퓨터에게 00001110 01010101 이런식으로 모든 명령을 내려야한다면 프로그래머는 정말 수학에 능통한 사람이 아니면 힘들껍니다. (수학에 능.......

[에디트컨트롤-기초01] 에디트 컨트롤 시작하기. [내부링크]

의미. 지금 글을 보여주는 것과 같이 사용자로 부터, 어떠한 글을 입력받거나 혹은 입력된 글을 보여주거나하는 기능을 제공한다.기본기능.1. 글을입력한다.2. 복사-잘라내기-붙히기 등의 기본 기능과 메뉴를 제공한다.3. 저장된 글을 불러와 편집가능하도록 제공되거나 읽기 전용으로 사용할 수 있다. 워크스페이스에서 리소스 편집창을 열면 오른쪽에 동그라미 처진 것이 에디트 컨트롤이다.다이알로그에 에디트 컨트롤을 올리기 위해서는 드래그&드랍을 이용하거나, 툴바에서 에디트 컨트롤을 클릭하고, 다시 다이알로그의 적당한 위치에서 클릭하면 그 위치에 에디트 컨트롤이 생성된다.위의 그림은 대표적인 4가지 속성의 에디트 컨트롤.......

[에디트컨트롤-기초02] 어디다 써먹을까? [내부링크]

일단 외부에서 입력을 받는 모든 곳에서 사용할 수 있습니다. 또한 입력해 놓은 값을 살펴볼 때, 편집할 때 모두 사용가능하죠..아이디와 암호를 입력 받는다던가, 주소록을 기록할 때, 어떤 계측 장비의 설정값을 입력할 때제품 시리얼 키를 입력할 때, 전자 일기장을 쓰고 편집한다던지.. 먼가 문자를 기록하는 모든 곳에사용된다고 보시면 됩니다. notepad도 CEdit컨트롤을 이용하면 간단하게나마 만들어 볼 수도 있습니다.위에서 보는것 처럼 에디트의 활용은 엄청나고 거의 모든 윈도우 폼에 사용된다.저렇게 여러가지 기능을 에디트로 쉽고 편리하게 사용할 수 있다.그렇다면 폼에는 저렇게 올렸는데, 프로그램에서 저 값들을 어떻게 읽고.......

[에디트컨트롤-기초03] 글자색과 배경색 바꾸기 [내부링크]

저번에 이어 에디트 컨트롤을 사용하면서 글자색이나 배경색을 바꾸는 것에 대하여 알아보자.이 기능은 에디트 컨트롤 뿐만 아니라, 거의 모든 문자열 입출력이 있는 컨트롤에 해당하는 기능이므로잘 알아두면 다른 컨트롤에서도 쉽게 사용할 수 있다.다이알로그의 이벤트 중에 WM_CTLCOLOR 라는 이벤트가 있습니다.저걸 추가하고 나면 화면상에 다음과 같은 코드가 자동으로 추가됩니다.HBRUSH CSssDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Return a different brush if the default is not desired return hbr;}1. CDC* pDC - MFC에서 제공하는 디바이스 컨.......

[에디트컨트롤-기초04] 폰트를 바꾸어 보자. [내부링크]

에디트 컨트롤의 글자는 보통 윈도우의 기본 화면체를 따르게 된다.울나라 한글 윈도우는 - 글씨체:굴림, 크기 9pt이다.위의 그림은 아이디쪽의 폰트는 이탤릭 스타일을 넣어 보았고,일기장의 글씨는 크기를 20pt로 키워보았다.글씨체.. 즉, FONT는 MFC에서도 CFont라고 하는 잘 관리된 클래스로 기능을 제공한다.여기서 할일은 CFont라는 객체를 생성해서 위에서 나오는것과 같은 속성을 부여한 다음에컨트롤에다가 이 폰트를 쓰거라... 라고 해주면 끝난다.두가지 스타일이므로 다이알로그의 헤더에 다음과 같이 폰트를 선언하였다. CFont m_bigfont; CFont m_stylefont;이제는 소스에서 저 폰트를 각 속성별로 생성하여 에디트에 연결해 주어.......