달력

11

« 2018/11 »

  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  

'문자열 출력'에 해당되는 글 3

  1. 2010.04.19 API-DrawText
  2. 2010.04.19 API-TextOut
  3. 2010.03.08 문자열과 배열
2010.04.19 22:23

API-DrawText 프로그래밍/API2010.04.19 22:23





DrawText,
TextOut과 비슷하지만, 영역이 존재하고 그 안에 문자열을 넣는다고 보면 될 것 같다.

바뀐건 PAINT에서 TextOut을 해주던 것을, 그냥 DrawText로 바꿔 준것 밖에 없다.


마찬가지로 처음엔 BeginPaint 사용해서 hdc를 받아 주고, 마지막엔 EndPaint 사용했다.
DrawText에는 hdc, "문자열", 문자열의길이, 사각영역, 스타일 이 들어 가는데,
-1을 두게 되면 끝까지 출력한다고 보면 된다.
DT_CENTER는 문자열을 중앙으로 정렬, DT_WORDBREAK 를 사용하면,
자동개행 이라고 한다.
rt에 대해서 해맬 수도 있지만, RECT 구조체에는,
시작점 x,y 와 끝점 x,y를 받아 그 사이의 영역을 정의 한다고 보면 된다.

출력 결과

'프로그래밍 > API' 카테고리의 다른 글

API-Key입력(1)  (0) 2010.04.21
API-MessageBox  (0) 2010.04.19
API-GraphOut  (0) 2010.04.19
API-DrawText  (0) 2010.04.19
API-TextOut  (0) 2010.04.19
API-창만들기  (0) 2010.04.19
Posted by 안식의후크
2010.04.19 22:13

API-TextOut 프로그래밍/API2010.04.19 22:13





아직도........... 3개나 더남았네 ㅋㅋ 슈디두바 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

다 끝나면 씻고 자야겠구만 ㅋㅋㅋ





Window창에 Text를 출력해 보자.


소스를 전부 올리긴 했지만, 창띄우는 기본적인것을 제외하고, Text에 대해서만 보자.
먼저 전역으로 선언되어있는 MyTextOut에 대해서는 잠시 미뤄두고,
WndProc에 지역변수로 hdc와,
ps를 각각 선언해 주었는데,
hdc = DC에 대한 핸들이라고 보면 될거 같다.

DC란, Device Context의 약자로,
문자열의 폰트, 선의 색상, 굵기, 채움 무늬와 색상, 그리디 모드 등등 출력에 필요한 정보들을 가지고 있다고 보면된다.
실제로 LBUTTONDOWN에서 보면,
GetDC를 사용해서 hWnd에서 DC를 받아오는 것을 볼 수 있고,
마찬가지로 PAINT에서도,
BeginPaint에서 dc를 가져 오는 것을 볼 수 있다.

BeginPaint를 보면 hWnd를 보내주고, &ps를 하는걸 알 수 있는데,
그때 ps에 paint에 필요한 정보가 삽입 된다고 보면 된다.

그리고 추가적으로 GetDC - ReleaseDC 는 각각 DC를 받고, DC를 지우는 역활을 한다고 볼 수 있다.
PAINT에 있는 BeginPaint - EndPaint도 같은 의미이다.
단, GetDC - EndPaint 처럼은 짝지을 수 없다는 것을 기억하자.

TextOut은 그렇게 어려운 함수는 아니다. TextOut(hdc, 100, 100, TEXT("Beautiful Korea"),15);
hdc을 보내고, 시작x, 시작y, 문자열, 문자열의 길이가 저장되는데,
문자열을 보내주기 위해선 TEXT()안에 넣어야 한다는 것을 주의하자.
변수 또한 TCHAR, TCHAR *를 사용해서 값을 넣고 있는 것을 볼 수 있다.
또한 strlen이 아닌 lstrlen을 사용해야 하고,
wsprintf를 사용해서 문자열을 변수에 넣어 주는 것을 확인 할 수 있다.

SetTextAlign는 문자열에 대한 기준(정렬)을 해주는 것인데, 시작점을 Center로 할 것인가. TA_TOP | TA_LEFT로 할것인가, 또는 다른 무엇인가로 할 것인가에 대해 설정해 줄 수 있다.
그 외 내용은 모두 소스 주석에 삽입 시켜 놓았다.
cp대해서 언급하고 있지만, 단순히 내부에서 가지고 있는 일종의 커서 정도로 생각하면 될것 같다.
출력 결과

'프로그래밍 > API' 카테고리의 다른 글

API-Key입력(1)  (0) 2010.04.21
API-MessageBox  (0) 2010.04.19
API-GraphOut  (0) 2010.04.19
API-DrawText  (0) 2010.04.19
API-TextOut  (0) 2010.04.19
API-창만들기  (0) 2010.04.19
Posted by 안식의후크
2010.03.08 19:10

문자열과 배열 프로그래밍/C언어2010.03.08 19:10




사실 이 부분은 크게 중요하진 않지만 언제 어떻게 쓰일지 모르는게 배열과 문자열인것 같다.

특별한 건 없고 포인터 변수를 사용하여 문자열을 저장하는 것과,
strlen을 사용하지 않고, 배열의 사이즈를 파악, 생성 하는 것과
간단한 출력 방법을 코딩하였다.



사실 str___과 같은 함수를 쓰면 쉽게 해결 할 수 있는 것이기도 하지만
const와 sizeof를 사용하여 초기에 배열을 설정해 줄 수 있다는 장점이 있다.(물론 실행중에 변경을 할려면 결국 동적할당을 해야겠지만)
const를 쓰지 않으면 배열을 생성 할 수 없는데,
배열을 초기화 하기 위해서는 상수화된 숫자가 필요 하기 때문이다.

'프로그래밍 > C언어' 카테고리의 다른 글

2차원 배열 동적 할당  (0) 2010.03.09
가변 인수  (0) 2010.03.08
문자열과 배열  (0) 2010.03.08
재귀 호출  (0) 2010.03.08
bit연산자 - & | ^ << >> (3)  (0) 2010.03.08
bit연산자 - & | ^ << >> (2)  (0) 2010.03.08
Posted by 안식의후크