'My major/C++'에 해당되는 글 28건

  1. 2006/03/02 bmp 파일 구조 (22)
  2. 2006/03/02 자작 메신저 마무리... (2)
  3. 2006/03/02 나만의 MFC 강좌-21(윈도우 항상위 속성 주기) (22)
  4. 2006/03/02 나만의 MFC 강좌-20(폴더선택 다이얼로그 띄우기) (3)
  5. 2006/03/02 자작 메신저 (3)
2006/03/02 20:27 My major/C++
0x02(파일크기)의 경우 4바이트란거 아시겠죠? 크기는 귀찮아서 안 적었어요..

파일헤더
0x00 : 0x42, 0x4D 고정값 BMP 파일임을 나타냄
0x02 : 파일크기
0x06 : 예약(사용X)
0x0A : 비트맵 데이터가 저장된 위치. 보통 0x36
비트맵 정보헤더
0x0E : 비트맵 정보헤더 크기
0x12 : 비트맵 넓이
0x16 : 비트맵 높이
0x1A : 출력 디바이스의 Plane수 (잘모르겠네요. 보통 1이랍니다)
0x1C : 표현색의 수를 비트로 나타냄. ( 256색은 2의 8승이므로 8 )
0x1E : 압축 여부, 압축하지 않앗을 경우 0
0x22 : 비트맵 데이터의 크기
0x26 : 출력 디바이스 상에서 미터당 수평 픽셀수. 거의 사용되지 않음
0x2A : 출력 디바이스 상에서 미터당 수직 픽셀수. 거의 사용되지 않음
0x2E : 비트맵에서 사용되는 컬러수.
0x32 : 비트맵에서 중요하게 사용되는 컬러 수.
0x36 : 비트맵 데이터
비트맵 데이터는 컬러테이블을 사용할수도 있고 사용하지 않을수도 있습니다. 하지만 대부분 사용하는 걸로 아는데...
첫번째 컬러의 B,
첫번째 컬러의 G,
첫번째 컬러의 R,
두번째 컬러의 B,
.......
이런식으로 테이블이 생성됩니다
posted by joyoungtae
2006/03/02 20:24 My major/C++

드디어 나를 괴롭히던 메신저 프로젝트가 끝이났다.

버그도 많고 불안정 하지만 어쨌든 끝이다.

속이다 후련하다.....약간 아쉽기도 하다..좀더 잘 했으면 더 나았지 않을까 하는...ㅡㅡ;;


다음 화면은 젤 처음 메인 화면~
아무리 봐도 별로다..깔끔하기만 하고..ㅡㅡ;;

다음은 로그인 했을때 화면이다.
이래저래 메신저 다워 보이나?
별로 그렇진 않은거 같다..ㅡㅡ;;;
회사 전용으로 구현 한거다 보니 맨 아래 공지사항 란도 있다...^^;;

다음은 트레이 화면이다...
뭐..일반 메신저랑 똑같다...^^;;

이건 화상 채팅 하는 모습....
1:1 밖에 안된다...
아직 미완성 부분이므로...ㅡㅡ;;;
이녀석을 만들면서 내가 가능 느낀점...은....바로.....
MFC는 구리다는 것이다....ㅡㅡ;;;
이녀석을 만들면서 다짐한것이 하나 있다....그것은....바로....
MFC 다신 사용하고 싶지 않다 이다.....ㅡㅡ;;;
간단하게 자기가 쓸려고 혹은 테스트용으로 사용하기에는 편할듯 하지만
약간 덩치가 커지고 이래저래 복잡한 기능이 들어가는 거라면 난 안쓸생각이다.
차라리 델파이나 C++ Builder 를 사용하는게 낫을듯...아니면 그냥 API로...흠...
탈도 많고 문제도 많았던 녀석...
이제 낼모레면 이녀석과 골싸메고 싸울일은 없을듯 싶다.
이제 남은 일은 똥차 빨리 굴리기~! ㅋㅋ

posted by joyoungtae
2006/03/02 20:22 My major/C++

윈도우 속성중 항상위 속성을 어떻게 주는지 알아보자

이럴때는 SetWindowPos()함수를 사용하면 된다.

SetWindowPos(this->m_hWnd, HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);

this->m_hWnd        =>         윈도우 핸들

HWND_TOPMOST   =>          항상위로 하겠다는 define


여기서..다시...만약 이속성을 없애고 싶다면?

다음과 같이 해주면 된다.

SetWindowPos(this->m_hWnd, HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);

뭐가 바뀌었을까..

그렇다...HWND_TOPMOST 를 HWND_NOTOPMOST 로만 바꾸어주면 된다...

ㅋㅋㅋ

posted by joyoungtae
2006/03/02 20:22 My major/C++

보통 많은 프로그램들을 보면 버튼 눌렀을때 폴더 선택할수 있게 다이얼로그를 띄워준다.

이것을 어케 하는지 알아본다.

간단하다.


   ITEMIDLIST *pidlBrowse;
   char pszPathname[1000];
   BROWSEINFO BrInfo;
   BrInfo.hwndOwner = GetSafeHwnd();
   BrInfo.pidlRoot = NULL;

  
   memset(&BrInfo, 0, sizeof(BrInfo));
   BrInfo.pszDisplayName = pszPathname;
   BrInfo.lpszTitle = "경로 선택";
   BrInfo.ulFlags = BIF_RETURNONLYFSDIRS;

   pidlBrowse = ::SHBrowseForFolder(&BrInfo);

   if( pidlBrowse != NULL)
   {
       ::SHGetPathFromIDList(pidlBrowse, pszPathname);
       m_strFileDownDir = pszPathname;  // 폴더 경로
   }


반환되는 폴더 경로는 pszPathname 에 저장된다.

posted by joyoungtae
2006/03/02 20:21 My major/C++

장장 3 달에 걸친 작업끝에 메신져 대략 80%완성..ㅡㅡ;;
연구실 프로젝트 일로 한거지만 완성시키고 나니 뿌듯하다.
기능은 다중채팅, 쪽지함, 대화함, 등등 기존 메신저의 최소 기능과 화상대화 기능이 있다.
매력적인 기능으로 RFID 태그로 로그인이 가능하다는것~!
뭐 그렇게 매력적인 기능 같진 않지만...ㅠㅡㅠ
프로그래밍을 시작한 이래 첨으로 그럴듯한 결과물이 나왔따..^^
(해당 메신져 서버소스는 본인이 작성한 소스가 아니므로 첨부하지 않음.)
posted by joyoungtae
 <PREV 1 2 3 4 5 ... 6    NEXT>