From YYpBD's MediaWiki
[답변] panel 에서 방향키 입력받기
장성호
(nasilso)
2008-11-07 오전 1:50:59
54회 조회
등록된 파일이 없습니다.
제가 답변을 잘못드렸네요
방법은
CN_KEYDOWN 을 메세지를 처리하지 않고 return해버리시면됩니다.
procedure TForm1.PanelProc(var Msg: TMessage);
begin
if(Msg.Msg=WM_KEYDOWN)then
begin
if( Msg.WParamLo=37) then
Memo1.Lines.Add('Panel1 WM_KEYDOWN VK_LEFT')
else if( Msg.WParamLo=38) then
Memo1.Lines.Add('Panel1 WM_KEYDOWN VK_UP')
else if( Msg.WParamLo=39) then
Memo1.Lines.Add('Panel1 WM_KEYDOWN VK_RIGHT')
else if( Msg.WParamLo=40) then
Memo1.Lines.Add('Panel1 WM_KEYDOWN VK_DOWN')
else
Memo1.Lines.Add('Panel1 WM_KEYDOWN Another');
end;
if(Msg.Msg=WM_KEYUP)then
begin
Memo1.Lines.Add('Panel1 WM_KEYUP');
end;
// TPanel 컨트롤에서 키보드 입력을 받게하고
// Tab 및 방향키 같은것을 받을수 있도록 ...
// 핵심
if(Msg.Msg=CN_KEYDOWN)then Exit;
OrgPanelProc(Msg);
end;
이것 저도 얼마전에 으럽게 알아내어서 .. 나만 몰래 알고 있으려 했는데...