본문 바로가기
코스웨어/15년 스마트컨트롤러

20151117-주재민-api

by 알 수 없는 사용자 2015. 11. 18.
728x90
반응형

5-4 액셀러레이터

액셀러레이터(Accelerator)는 아주 쉽게 말해서 단축키이다

 

 

 

 

 

5-5 문자열 테이블

 

 

 

 

 

 

6-1-. GDI오브젝트

GDI 오브젝트(GDI Object)란 그래픽 출력에 사용되는 도구를 말하며 펜, 브러시, 비트맵, 폰트 등등이 모두 GDI 오브젝트이다

 

6-1-. 스톡 오브젝트

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);
OldBrush=(HBRUSH)SelectObject(hdc,MyBrush);
Rectangle(hdc,50,50,300,200);
SelectObject(hdc,OldBrush);
EndPaint(hWnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

실행화면

 

 

 

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);
OldBrush=(HBRUSH)SelectObject(hdc,MyBrush);           //옛날 상태를 저장하기 위한 것
  Rectangle(hdc,50,50,300,200);
SelectObject(hdc,OldBrush);                                       //본래 상태로 바꿔준다.
  EndPaint(hWnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

 

 

 

이번 까지는 c를 할 줄알기 때문에 쉽게 따라 할 수가 있었다. 함수의 기능을 알아 보는 단계이다.

 

객체지향으로 배우고 MFC구조 , c++공부하면 좀더 복잡하게 만들수가 있다.

펌웨어쪽으로 가려면 이정도만 알아도 된다.

 

 

MyPen = CreatePen(PS_DASHDOTDOT, 1, RGB(0, 255, 0));//선모양, 선두께, 색상

 

 

 

 

6-1-. 브러시

 

 

6-2-. Ropmode

 

점에서 선이 계속 움직인다. 그러나 전에 있던 선을 지우고 계속해서 그리고 있는 중이다.

 

 

//SetROP2(hdc, R2_NOT);

이 부분을 주석처리하면 선이 지워지지 않는다.

 

 

 

 

6-3-. 윈도우와 뷰포트

 

BOOL SetViewportOrgEx( HDC hdc, int X, int Y, LPPOINT lpPoint );
BOOL SetWindowOrgEx( HDC hdc, int X, int Y, LPPOINT lpPoint );

 

 

 

SetMapMode(hdc, MM_HIENGLISH);//이렇게 바꾸면 결과는 다음과 같다.

 

 

6-4-. bitmap.dsw

 그림을 띄운 화면

 

 

StretchBlt(hdc, 0, 0, 369, 329, MemDC, 0, 0, 739, 658, SRCCOPY);

크기 줄이기.

 

 

728x90