WM_CHAR 키의 값을 캡처 한 다음 캡처 된 모든 값을 단일 문자열에 넣으려고합니다. 내가 눌린 키 값을 2, 3, 4와 5를 _tcscat로 연결하려고 시도한 결과, TCHAR 문자열은 "22232323423423452345"처럼 보입니다. TCHAR 문자열을 2345와 같이 만드는 방법을 알고 싶습니다. 다음 코드는 I입니다. 있다.누른 WM_Char 키 값 연결 win32API
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static PMSG pmsg ;
int i, iType ;
int StrLen;
TCHAR StrBuf[9];
static TCHAR tBuf[32];
TCHAR MyTchar[8] = TEXT ("A");
WORD wCharCode;
switch (message)
{
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect(hwnd, &rect);
SelectObject (hdc, GetStockObject (SYSTEM_FONT)) ;
SetBkMode (hdc, TRANSPARENT) ;
for (i = min (cLines, cLinesMax), cScreenLine=1; i>0 ; i--, cScreenLine++)
{
iType = pmsg[i-1].message == WM_CHAR ;
if (!iType)
{
StrLen= wsprintf(StrBuf, TEXT("%s"), TEXT(" "));
}
else
{
wCharCode = (WORD)(pmsg[i-1].wParam & 0xffff);
memcpy(&MyTchar, &wCharCode, 2);
StrLen = wsprintf(StrBuf[2], TEXT("%s"), &MyTchar);
_tcscat(tBuf, MyTchar);
}
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
}
tBuf가 정적 인 이유는 중지 집중이 필요하고 반환 키를 누를 때 함수에 문자열을 전달했기 때문입니다. – user651659