'API Reference'에 해당되는 글 75건

  1. 2007.10.17 SetTextAlign
  2. 2007.10.17 TextOut
  3. 2007.10.17 DC 를 얻는 방법
  4. 2007.10.17 DC
  5. 2007.10.17 dwStyle( 윈도우 스타일 )
  6. 2007.10.17 LoadCursor
  7. 2007.10.17 WM_MESSAGE
  8. 2007.10.17 MSG 구조체
  9. 2007.10.17 GetMessage, TranslateMessage, DispatchMessage
  10. 2007.10.17 ShowWindow

SetTextAlign

API Reference 2007. 10. 17. 10:33

UINT SetTextAlign( HDC hdc, UINT fMode );


문자열의 정렬 방법을 변경하는 함수

두 번째 인수 fMode 가 지정하는 정렬 정보에 따라 hdc 의 정렬 상태를 변경하며 이후부터 hdc 를 참조하여 출력되는 모든 문자열은 이 함수가 지정한 정렬 상태를 따른다.



fMode값


TA_TOP

지정한 좌표가 상단 좌표가 된다.


TA_BOTTOM

지정한 좌표가 하단 좌표가 된다.


TA_CENTER

지정한 좌표가 수평 중앙 좌표가 된다.


TA_LEFT

지정한 좌표가 수평 왼쪽 좌표가 된다.


TA_RIGHT

지정한 좌표가 수평 오른쪽 좌표가 된다.


TA_UPDATECP

지정한 좌표대신 CP를 사용하며 문자를 출력 후에 CP를 변경한다.


TA_NOUPDATECP

CP를 사용하지 않고 지정한 좌표를 사용하며 CP를 변경하지 않는다.


정렬 위치를 지정하는 플래그 외에 두 개의 플래그가 더 있는데 이 플래그들은 CP( Current Position )의 사용 여부를 결정한다.

텍스트 모드에서 다음 문자가 출력될 위치를 커서( Cursor )가 표시하듯 그래픽 모드에서는 다음 그래픽이 출력될 위치를 CP가 가지고 있다.

CP는 내부적으로 유지되는 좌표일 뿐 커서처럼 화면에서 깜박거리지는 않는다.

Posted by 명혀니
,

TextOut

API Reference 2007. 10. 17. 10:33

BOOL TextOut( HDC hdc, int nXStart, int nYStart, LPCTSTR lpString, int cbString );


문자열을 출력하는 함수



hdc

화면에 무엇인가를 출력하는 모든 함수들의 첫 번째 인수는 항상 hdc 이다.


nXStart, nYStart

문자열이 출력될 좌표이며 윈도우의 작업영역 원점을 기준으로 한다.


lpString

출력할 문자열을 담고 있는 문자열 포인터


cbString

출력할 문자열의 길이

TextOut 함수는 널 종료 문자열을 인식하지 않으므로 출력할 문자열의 길이를 인수로 반드시 밝혀야 한다.



래퍼

void MyTextOut( HDC hdc, int x, int y, LPCTSTR Text )

{

    TextOut( hdc, x, y, Text, lstrlen( Text ) );

}

Posted by 명혀니
,

DC 를 얻는 방법

API Reference 2007. 10. 17. 10:32

DC 를 얻는 첫 번째 방법


HDC GetDC( HWND hWnd );

int ReleaseDC( HWND hWnd, HDC hDC );


DC 는 주로 하나의 윈도우와 연관되는 출력 정보를 가진다. 그래서 인수로 어떤 윈도우에 대한 DC 가 필요한가를 밝혀야 한다.  GetDC 는 hWnd 가 가리키는 윈도우에 적당한 DC 를 만들어 그 핸들을 리턴한다.


GetDC 에 의해 얻어진 핸들은 사용 후에 반드시 ReleaseDC 함수로 해제해야 한다.




DC 를 얻는 두 번째 방법


HDC BeginPaint( HWND hWnd, LPPAINTSTRUCT lpPaint );

BOOL EndPaint( HWND hWnd, CONST PAINTSTRUCT *lpPaint );


WM_PAINT 메시지 루틴에서만 사용할 수 있다.

BeginPaint 함수는 윈도우 핸들 외에도 페인트 정보 구조체를 인수로 요구하며 이 구조체에 그림 그리기에 필요한 여러 가지 복잡한 정보를 리턴한다.


typedef structPAINTSTRUCT

{

    HDC    hdc;

    BOOL  fErase;

    RECT  rcPaint;

    BOOL  fRestore;

    BOOL  flncUpdate;

    BYTE  rgbReserved[16];

} PAINTSTRUCT;


앞의 세 멤버는 사용자가 사용하는 멤버이며 나머지 세 멤버는 윈도우즈가 내부적으로 사용하므로 사용자가 건드려서는 안 된다.

Posted by 명혀니
,

DC

API Reference 2007. 10. 17. 10:32

윈도우즈는 세 가지 동적 연결 라이브러리( DLL )로 구성되어 있다.


KERNEL

메모리를 관리하고 프로그램을 실행


USER

유저 인터페이스와 윈도우를 관리


GDI( Graphic Device Interface )

화면 처리와 그래픽을 담당

화면으로 출력되는 모든 글자와 그림은 GDI를 통해야 한다.



DC( Device Context )

출력에 필요한 모든 정보를 가지는 데이터 구조체이며

GDI 모듈에 의해 관리된다.


DC 는 그리기에 필요한 다양한 정보들의 저장소 역할을 한다.

DC 는 그리기 함수들이 참조하는 원점의 정보를 제공한다.

DC 는 현재 상황에서 어떤 영역이 출력 허가된 영역인가를 계산하여 허가된 영역에만 출력을 내보낸다.

DC 는 윈도우끼리의 출력 결과가 서로를 방해하지 않도록 완충 역할을 한다.


DC 가 그리기에 필요한 여러 가지 정보와 안전 장치 역할을 하기 때문에 모든 그리기 함수는

DC 의 핸들을 첫 번째 인수로 전달받아야 한다.

Posted by 명혀니
,

CreateWindow 함수의 세 번째 인수 dwStyle 은 윈도우의 모양과 동작 방식을 결정하는 여러 가지 속성을 지정한다.


WS_CAPTION

타이틀 바를 가진다.


WS_HSCROLL

수평 스크롤 바를 가진다.


WS_VSCROLL

수직 스크롤 바를 가진다.


WS_MAXIMIZEBOX

최대화 버튼을 가진다.


WS_MINIMIZEBOX

최소화 버튼을 가진다.


WS_SYSMENU

시스템 메뉴를 가진다.


WS_THICKFRAME

크기를 조절할 수 있는 경계선을 가진다.



WS_OVERLAPPEDWINDOW


#define WS_OVERLAPPEDWINDOW ( WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU |

 WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX )

Posted by 명혀니
,

LoadCursor

API Reference 2007. 10. 17. 10:31

HCURSOR LoadCursor( HINSTANCE hInstance, LPCTSTR lpCursorName );


커서를 읽어오는 함수



hInstance

커서를 가지고 있는 프로그램의 인스턴스 핸들이되 윈도우즈가 제공하는 표준 커서를 사용하려면 NULL 로 지정


lpCursorName

사용하고자 하는 커서의 이름을 지정



윈도우즈가 디폴트로 제공하는 커서


IDC_ARROW

화살표 모양


IDC_CROSS

십자 모양


IDC_IBEAM

I 자 모양


IDC_NO

원 안에 빗금이 쳐진 모양


IDC_WAIT

모래시계 모양

Posted by 명혀니
,

WM_MESSAGE

API Reference 2007. 10. 17. 10:30

windows.h 에서 메시지별로 매크로 상수를 정의해 두었으며 접두어 WM_으로 시작된다.


WM_QUIT

프로그램을 끝낼 때 발생하는 메시지


WM_LBUTTONDOWN

마우스의 좌측 버튼을 누를 경우 발생


WM_KEYDOWN

키보드의 키를 눌렀다.


WM_CHAR

키보드로부터 문자가 입력될 때 발생


WM_PAINT

화면을 다시 그려야 할 필요가 있을 때 발생


WM_CREATE

윈도우가 처음 만들어질 때 발생


WM_DESTROY

윈도우가 메모리에서 파괴될 때 발생

Posted by 명혀니
,

MSG 구조체

API Reference 2007. 10. 17. 10:28

typedef struct tagMSG
{
    HWND    hwnd;
    UINT    message;
    WPARAM  wParam;
    LPARAM  lParam;
    DWORD   time;
    POINT   pt;
} MSG;


hwnd
메시지를 받을 윈도우 핸들


message
어떤 종류의 메시지인가를 나타낸다.


wParam
전달된 메시지에 대한 부가적인 정보를 가진다.


lParam
전달된 메시지에 대한 부가적인 정보를 가진다.


time
메시지가 발생한 시간이다.


pt
메시지가 발생했을 때의 마우스 위치이다.

Posted by 명혀니
,

BOOL GetMessage( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax );


메시지 큐에서 메시지를 읽어들인다.

메시지 큐( Message Queue )는 시스템이나 사용자로부터 발생된 메시지가 잠시 대기하는 일종의 메시지 임시 저장 영역이다.

읽어들인 메시지는 첫 번째 인수가 지정하는 MSG 구조체에 저장된다.



BOOL TranslateMessage( CONST MSG *lpMsg );


키보드 입력 메시지를 가공하여 프로그램에서 쉽게 쓸 수 있도록 한다.

WM_KEYDOWN 메시지가 발생할 때 문자가 입력되었다는 메시지( WM_CHAR )를 만드는 역할을 한다.



LONG DispatchMessage( CONST MSG *lpmsg );


메시지 큐에서 꺼낸 메시지를 윈도우의 메시지 처리 함수( WndProc )로 전달한다.

Posted by 명혀니
,

ShowWindow

API Reference 2007. 10. 17. 10:27

BOOL ShowWindow( hWnd, nCmdShow );


메모리에 만들어진 윈도우를 화면으로 보이게 하는 함수

Posted by 명혀니
,