본문 바로가기
반응형

C & C++444

BOOL 과 bool 의 차이점 BOOL 과 bool 의 차이점 bool은 C++의 기본 데이터 형이고 BOOL은 MFC에서 제공되는 데이터형이다. 엄연히 참/거짓을 의미하는 bool 데이터 형이 있음에도 VC++에서는 BOOL로 참/거짓을 표현하고 있다. 왜 그럴까 의아했지만, 이미 MFC의 여러 가지 방식들(매크로를 사용한 메시지 맵 처리 등) 중 일부려거니 넘기고 있었다. 하지만, 이제부터는 내가 개발한 코드에서는 bool로 통일해서 써야겠다. VC++에서 BOOL을 사용하지 말아야 하는 이유 윈도우즈 프로그래밍 시 보통 참, 거짓을 판별하기 위해 BOOL이라고 하는 데이터 형을 자주 사용한다. 이 BOOL은 windef.h 파일에 아래와 같이 정의되어 있다. typedef int BOOL; 즉, BOOL은 이름에서 오해할 수 있.. 2011. 5. 6.
[Edit] Edit & ComboBox 글자수 제한 Edit Change 이벤트가 발생할때 (즉 사용자가 Control 에 입력을 시도 하였을때) 글자 수를 체크해서 강제로 입력을 제한해야되죠. 모르겠습니다. 다른 방법이 있는지는... 뭐 코딩이라는게 효율적인것이 아무리 좋다 한들, 퍼포먼스면에 크게 지장도 없는데 효율찾다가 수십수시간수일 날리는 것보단 아는 방법 선 내에서 처리하는게 좋다고 생각합니다. 물론 더 좋은 방법을 어쩌다 찾게되면 그게 바로 Lucky~~ ^_^ 아닐까요... 아래 소스를 보실때 유심히 봐야될 것이 바로 API 함수인 WideCharToMultiByte 입니다. 해당 함수는 유니코드(WideChar)를 아스키코드(MultiByte[AnsiString])으로 변환 시켜주는 함수인데요, 왜 사용하느냐 하면 CString 은 기본적으.. 2011. 5. 4.
[List] List 컨트롤 원하는 항목 수정 ListControl은 MFC에서 굉장히 유용히 쓰이는 컨트롤입니다. 해당 컨트롤에서 직접 원하는 위치를 즉석 수정하기 위한 컨트롤을 만들었습니다. 아마 그냥 유용하게 쓰일듯 싶기도 해서 포스팅. EditListCtrl.h view plaincopy to clipboardprint? #pragma once // CEditListCtrl class CEditListCtrl : public CListCtrl { DECLARE_DYNAMIC(CEditListCtrl) public: CEditListCtrl(); virtual ~CEditListCtrl(); protected: DECLARE_MESSAGE_MAP() public: virtual BOOL PreTranslateMessage(MSG* pMsg); .. 2011. 5. 4.
[Tip] 외부 프로그램 실행 및 종료 //ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ #include #include #include DWORD dwSize = 250; HANDLE hSnapShot; PROCESSENTRY32 pEntry; BOOL bCrrent=FALSE; hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPALL,NULL); pEntry.dwSize =sizeof(pEntry); // 실행중인 프로세스들의 첫번재 정보를 가져온다. Process32First (hSnapShot,&pEntry); // Tool이 실행중인지 확인 while(1) { // 다음번 프로세스의 정보를 가져온다. BOOL hRes=Process32Next (hSnapShot,&pEntry); if(hR.. 2011. 5. 4.
[Tip] 키 조합으로 프로그램 종료하기 (응용가능) 실습예제 4 :: [Alt + F4] 키를 누르면 WM_CLOSE 메시지가 발생하고 프로그램이 종료됩니다. 유사하게 [Alt + X] 키를 누르면 프로그램이 종료되도록 예제를 작성해봅시다. void CKeyMoveView::OnSysChar(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: Add your message handler code here and/or call default if(nChar == VK_RETURN) AfxMessageBox(TEXT("Alt + Enter")); else if(nChar == 's' || nChar == 'S') AfxMessageBox(TEXT("Alt + S")); else if(nChar == 'x' || nChar.. 2011. 5. 4.
[List] List 컨트롤에 비트맵 이미지 셋팅 CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); static CImageList ImgList; ImgList.Create(153, 171, ILC_COLOR32, 1, 1); //이미지 아이콘의 크기를 결정하는듯 ImgList.Add(&bmp, RGB(0,0,0)); // 두번째 인자는 마스크로 검정색으로 해야 이미지 주변이 하얗게 나온다. m_List.SetImageList(&ImgList, LVSIL_NORMAL); m_List.InsertItem(0, _T("1th Test item")); //////////////////////////////////////////////////////////////////////////////////////////////// // 25.. 2011. 5. 4.
반응형