TODAY : / TOTAL :

Devlog

DrawBitmap :: 비트맵 출력용으로 자주 쓰는 함수.

void DrawBitmap(HDC hdc,int x,int y,HBITMAP hBit) { HDC MemDC;// 메모리 DC HBITMAP OldBitmap;// 비트맵 핸들 int bx,by;// 좌표 BITMAP bit;// 비트맵 정보 MemDC=CreateCompatibleDC(hdc); OldBitmap=(HBITMAP)SelectObject(MemDC, hBit); GetObject(hBit,sizeof(BITMAP),&bit); // 메모리에 저장된 비트맵 정보를 가져옴 bx=bit.bmWidth; by=bit.bmHeight; BitBlt(hdc,x,y,bx,by,MemDC,0,0/*복사 시작 좌표*/,SRCCOPY); SelectObject(MemDC,OldBitmap); Delete..

연산자

ㅇ Short Cut Pass a = 3 , b = 5, c = 4 (a>b) & (++a>c) 앞의 연산을 끝내고 거짓이 나와도 뒤의 연산을 계속 진행. (a>b) && (++a>c) 앞의 연산이 거짓으로 나오면 결과값은 거짓이 나오므로 뒤의 연산은 계산 할 필요없이 넘어감. (Short Cut Pass) ㅇ 문자열 연결 int a = 5; int b = 3; int c = 10; System.out.println(a+b+"ab"); // 8ab System.out.println("a*b"+a+b); // a*b53 System.out.println(a*b); // 15 * 숫자 + 숫자 = 숫자 * 숫자 + 문자열 = 문자열 ㅇ 문자열 출력 int i = 10; System.out.println("i..

120626_API :: Old Object

void TestResource(BOOL bUnSel,BOOL bDelete,int num) { HDC hdc; HPEN hPen,OldPen; int i; TCHAR str[256]; hdc=GetDC(hWndMain); for (i=0;i ** DC에는 항상 오브젝트가 장착 되어 있는 상태여야 함. case '2': TestResource(FALSE,TRUE,10000); // 기본 오브젝트를 다시 장착시켜주지 않고, 바로 삭제한 경우. break; // => DC에 펜이 장착된 채로 삭제됨. - 다른 작업을 진행 할시 문제가 발생. case '3': TestResource(FALSE,FALSE,10000); // 기본 오브젝트를 다시 장착시켜주지도 않고, 삭제도 하지 않은 경우. break; //=..

120626_API :: GDI

STOCK OBJECT //스톡 브러시 예제 LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; HBRUSH MyBrush,OldBrush; switch (iMessage) { case WM_PAINT: hdc=BeginPaint(hWnd,&ps); MyBrush=(HBRUSH)GetStockObject(GRAY_BRUSH); // 기본적으로 제공되는 스톡오브젝트(브러쉬,펜,폰트) 제공. // 그중에서 브러쉬만 지정해서 가져오므로 HBRUSH 로 캐스팅. OldBrush=(HBRUSH)SelectObject(hdc,MyBrush); // DC 에 도구를 장착 하는 함수...

120621_API :: MOUSE

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { HDC hdc; // 좌표를 지속적으로 저장해 두기 위해 static static int x; //-> static short x; static int y; //-> static short y; static BOOL bNowDraw = FALSE; // 마우스 클릭중에만 그리기 작업이 진행되므로 작업여부를 확인 switch (iMessage) { case WM_LBUTTONDOWN: SetCapture(hWnd); // 그리기 작업이 시작되는 시점부터 마우스 이벤트를 받도록해서 윈도우 밖으로 빠져나가도, 마우스의 메시지를 모두 받을수 있음. = 작업영역을 벗어나도..

120620_API :: 도형 그리기(Graphic Draw) , 키 입력(KeyDown)

Draw Graphic LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; static bool Check = false; int xPos; int yPos; static int xPos1; static int yPos1; int xPos2; int yPos2; switch (iMessage) { case WM_DESTROY: PostQuitMessage(0); return 0; case WM_LBUTTONDOWN : // lParam 에 x,y 좌표 정보가 저장되고 rParam 에는 조합키정보가 들어감. MSDN 참고. /**************** 클릭한 두점을 이..

120620_API :: DC(Device Context) - TextOut , DrawText

TextOut hdc=GetDC(hWnd); SetTextAlign(hdc,TA_CENTER); // TA_CENTER :: 가운데 정렬. TextOut(hdc,250,100,TEXT("PRINT TA_CENTER "),17); // 문자열 좌표는 문자열 중간을 기준으로 함. TextOut(hdc,250,120,TEXT("PRINT TA_CENTER "),17); ReleaseDC(hWnd, hdc); // 가져왔던 DC 반환. ** 핸들은 사용하고 바로 반납을 해야 함. DrawText HDC hdc; PAINTSTRUCT ps; RECT rt={100,100,400,300}; // { Left Pos , Top Pos, Right Pos, Bottm Pos } TCHAR *str=TEXT("님은 갔습..

120619_API :: API 기본형식 (Default Form)

#include // 프로시저 [콜백] 함수 선언 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); HINSTANCE g_hInst; LPCTSTR lpszClass=TEXT("First"); // == const char* ptr = "First"; => const char* ptr = TEXT("first"); // 운영체제가 ANSI 형식이면 상관없지만, 유니코드면 오류 발생. 반드시 TEXT 안에 글자를 넣을것. //메인 [콜백] 함수

120619_API :: 변수명명법 / 유니코드

:: 변수 명명법 :: cb~ 바이트 수 (Count of Byte) dw~ 부호 없는 long형 정수 (Double Word) h~ 핸들(Handle) sz~ - lp~ 포인터 (long pointer ) WORD 2byte Word DWORD 4byte Word :: 유니코드 :: C타입 유니코드 (호환)타입 char TCHAR char* LPSTR const char* LPCTSTR :: 유니코드 지원함수 :: C타입 유니코드 (호환) 타입 strlen lstrlen strcpy lstcpy strcat lstrcat strcmp lstrcmp sprintf wsprintf(printf : 화면 / sprintf: 메모리 == 출력 대상의 차이) * 프로젝트 속성 - 문자 집합 - "유니코드 설정"..

120618_API :: 기초 이론

SDK (Software Development Kit) : 소프트웨어 개발 도구 API (Application Programming Interface) : 프로그래밍을 위해 제공되는 C타입의 함수들의 집합. MFC (Microsoft Foundation Class) : 다양한 API를 여러 개의 C++ 클래스로 작성한 클래스의 집합.-클래스 라이브러리 API 장점 - 로우레벨(Low Level) 의 프로그래밍 가능 - 우수한 성능 - 윈도우 동작원리 이해 단점 - 배우기가 어렵고 시간이 많이 소요. - 컴포넌트 프로그래밍 곤란. (컴포넌트 프로그래밍 :: 클래스화 시킨 프로그래밍) MFC 장점 - API 함수 사용가능. - RAD 툴과 같은 비주얼 기능 제공 - 컴포넌트 프로그래밍에 적합 단점 - 배우기..

SEARCH

태그로 찾아보기