티스토리 뷰
문자 메시지
아래 메시지와 같이 WM_CHAR 또는 WM_SYSCHAR 메시지를 문자 메시지라 한다.
R(VK_R) 키를 누른경우 메시지
WM_KEYDOWN
WM_CHAR
WM_KEYUP
Alt+R 키를 누른 경우
WM_SYSKEYDOWN
WM_SYSKEYDOWN
WM_SYSCHAR
WM_SYSKEYUP
WM_KEYUP
메시지핸들러
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnsysChar(UINT nChar, UINT nRepCnt, UINT nFlags);
nChar : 키에 해당하는 문자코드 값을 가진다
nRepCnt : 키를 계속 누른 경우 1보다 큰 값을 가진다
nFlags : 키와 관련된 다양한 정보를 저장한다
입력한 문자를 화면에 출력해주는 코드
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 |
class CMFCApplication2View : public CView
{
private:
CString m_str;
...
}
void CMFCApplication2View::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if (nChar == VK_RETURN)
{
m_str.AppendChar(nChar);
Invalidate(TRUE); // WM_PAINT 메시지 발생 시켜 사각형을 다시 그린다.
}
CView::OnKeyDown(nChar, nRepCnt, nFlags);
}
void CMFCApplication2View::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if (nChar >= 32) // ASCII문자 제외
{
m_str.AppendChar(nChar);
Invalidate(TRUE);
}
CView::OnChar(nChar, nRepCnt, nFlags);
} |
cs |