2014-02-01 2 views
0

Я играю с приложениями HTA, я запускаю программу для устройства USB.Как сделать вкладку для перемещения окна приложения HTA ​​в VBScript?

У меня есть caption, установленный на "no", так что я могу сделать плоское приложение пользовательского интерфейса. Поскольку я отключил подпись, у меня нет бара, чтобы перемещать окно.

Я пробовал всевозможные вещи, но не могу понять это. Я хочу небольшую вкладку в нижнем правом углу, чтобы переместить окно вокруг экрана. Не как квадрат, а треугольник, чтобы поместиться в углу. Кто-нибудь может мне с этим помочь?

ответ

4

Вот простой скрипт, который перемещает окно.

window.onload = function() { 
    var grip = document.getElementById('grip'), 
     oX, oY, 
     mouseDown = function (e) { 
      if (e.offsetY + e.offsetX < 0) return; 
      oX = e.screenX; 
      oY = e.screenY; 
      window.addEventListener('mousemove', mouseMove); 
      window.addEventListener('mouseup', mouseUp); 
     }, 
     mouseMove = function (e) { 
      window.moveTo(screenX + e.screenX - oX, screenY + e.screenY - oY); 
      oX = e.screenX; 
      oY = e.screenY; 
     }, 
     gripMouseMove = function (e) { 
      this.style.cursor = (e.offsetY + e.offsetX > -1) ? 'move' : 'default'; 
     }, 
     mouseUp = function (e) { 
      window.removeEventListener('mousemove', mouseMove); 
      window.removeEventListener('mouseup', mouseUp); 
     }; 
    grip.addEventListener('mousedown', mouseDown); 
    grip.addEventListener('mousemove', gripMouseMove); 
} 

HTML, CSS &

<div id="grip"></div> 

#grip { 
    position: fixed; 
    bottom: 0px; 
    right: 0px; 
    border-bottom: 25px solid #ff0000; 
    border-left: 25px solid transparent; 
} 

Обратите внимание, что только видимая часть #grip является border-bottom из div.

+0

Спасибо, но не сработал? Похоже, это сработает, но я получаю сообщение об ошибке. Ошибка: «Ошибка: объект не поддерживает свойство или метод» addEventListener ». Любые другие предложения? – user3184214

+0

@ user3184214 Отрывок проверен и работает хорошо. Возможно, вы запустили приложение в режиме Quirks? См. [Этот ответ] (http://stackoverflow.com/a/19570684/1169519). Если вы запускаете HTA с IE <9, вам нужно использовать устаревшую модель обработки событий, то есть 'grip.attachEvent ('onmousedown', mouseDown);' и т. Д. И 'grip.detachEvent ('onmousedown', mouseDown);' и т. Д. – Teemu

+0

Спасибо большое! Это заставило его работать, я вам обязан. – user3184214

Смежные вопросы