IE Band에서 탭키, 엔터키, 델리트키(VK_TAB, VK_RETURN, VK_DELETE) 입력가능하도록 하기
function TBand.TranslateAcceleratorIO(var lpMsg: TMsg): HResult;
// Passes keyboard accelerators to the object.
var
Disp: IDispatch;
IOIPAO: IOleInPlaceActiveObject;
begin
OutputDebugString(PChar(Format('[Band] lpMsg.WParam : %d', [lpMsg.WParam])));
Result := S_FALSE;
if (lpMsg.wParam <> VK_TAB) and (lpMsg.wParam <> VK_RETURN) and (lpMsg.wParam <> VK_DELETE) then
begin
TranslateMessage(lpMSg);
DispatchMessage(lpMsg);
Result := S_OK;
end else begin
Disp := FormBand.EmbeddedWBBand.Application;
if Disp <> nil then
begin
Disp.QueryInterface(IID_IOleInPlaceActiveObject, IOIPAO);
if IOIPAO <> nil then
begin
IOIPAO.TranslateAccelerator(lpMsg);
Result := S_OK;
end;
end;
end;
end;
흔하게 보는 밴드쪽 키 입력 소스에서는 엔터키와 델리트키가 동작하지 않는 코드가 대부분이라
약간 손을 봤습니다. 유용하셨다면 댓글하나정도~? ^^
출처 : 사진찍는 나귀