반응형
윈도우즈 프로그램에서 어떤 변수 또는 결과의 값을 확인하고 싶을 때가 있다. 디버거로 확인할 수 있지만 가끔 디버거로 확인하기 어려운 경우도 있다. 그럴 때 다음과 같이 사용해서 윈도우 메세지로 띄우면 된다.
다음은 숫자 타입의 값을 확인하고 싶을 때 문자열로 변경하여 메세지로 출력하는 방법이다. 문자열 출력을 원할 경우 그냥 바로 MessageBoxA() 함수에 넣으면 된다. MessageBoxA()는 두 번째 인자가 char* 타입이다. 따라서 와이드 타입의 문자열일 경우 MessageBoxW()를 사용하면 된다. 와이드 타입의 경우 std::wstring과 std::to_wstring()을 사용한다.
#include <string>
VOID CheckValue()
{
// 숫자 타입의 값을 문자열로 변경
int x = 10;
std::string integerVal = std::to_string(x);
// 메세지로 출력
MessageBoxA(NULL, integerVal.c_str(), NULL, MB_OK); // 와이드 타입의 문자열은 MessageBoxW 사용
}
다음은 TextOut을 이용하여 x, y 좌표의 위치를 화면에 출력한다.
#include <string>
VOID PrintPosition(WORD x, WORD y)
{
// 숫자 타입의 값을 와이드 타입 문자열로 변경
std::wstring tmpX = std::to_wstring(x);
std::wstring tmpY = std::to_wstring(y);
std::wstring xyPosText = tmpX + L", " + tmpY; // x, y
TextOut(hdc, x, y, xyPosText.c_str(), xyPosText.size());
}
'게임 공부 > Windows API' 카테고리의 다른 글
[WinAPI] GDI+를 이용하여 이미지 파일(png, jpg 등) 출력하기 (0) | 2020.09.19 |
---|---|
[WinAPI] LParam으로부터 마우스 커서의 좌표를 얻을 때 (0) | 2020.09.16 |
[WinAPI] 윈도우 크기 고정시키기, 리사이즈 막기 (0) | 2020.09.07 |
UpdateWindow()와 InvalidateRect()와 WM_PAINT 메세지 (0) | 2020.09.06 |
GetMessage()와 PeekMessage()의 차이 (0) | 2020.06.22 |
댓글