Q&A

  • [답변] 프로그램에서 ctrl + Tab key를 막는방법을 가르쳐 주세요....
고수님들의 도움이 필요합니다...
mdi프로그램에서 몇개의 창이 실행된상태에서  ctrl + tab을 누르면 다른창으로 이동을 하는것을 막을려고 합니다...
어떻게 해야되는지 막막해요...
고수님들의 조언이 필요합니다...
그럼 즐거운 코딩 되세요...
2  COMMENTS
  • Profile
    홍성락 2002.07.30 03:17
    hsr////////////////////////////////////////////////////////
    게시판에 보시면 키보드 훅킹에 대해서 많이나옵니다.
    일걸 좀 응용하면 됩니다.

    ....
    var
      Form1: TForm1;
      KeyHook: HHOOK;
      function KeyboardHook(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LResult; stdcall;
    implementation
    {$R *.dfm}
    procedure TForm1.FormCreate(Sender: TObject);
    begin
        KeyHook := SetWindowsHookEx(WH_KEYBOARD, @KeyboardHook, 0, GetCurrentThreadID);
    end;

    procedure TForm1.FormDestroy(Sender: TObject);
    begin
        UnHookWindowsHookEx(KeyHook);
    end;

    function KeyboardHook(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LResult;
    begin
      if nCode > -1 then begin
        if (wParam = VK_TAB)and(GetKeyState(VK_CONTROL)<0) then begin
            Result := -1;
            exit;
        end;
      end;
      Result := CallNextHookEx(KeyHook, nCode, wParam, lParam);
    end;
  • Profile
    ^ㅡ^ 2002.07.30 02:58


    KeyDown 이벤트에서
      if (key = Vk_Tab) and (ssCtrl in shift) then //ctrl + tab이면
      begin
        Key := 0; //키값을 클리어한다.
      end;


    맞는지는 적확히 함 해 보세요