LINUX.ORG.RU

Юмористъ

anonymous
()
Ответ на: комментарий от anonymous

а вот и можно. спорим на пиво!

100пудово знаю что можно, только не знаю как. сам видел исходник и работающую программу

da_fault
() автор топика
Ответ на: комментарий от da_fault

int onWM_LBUTTONDOWN(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
.....
me.x=LOWORD(lParam);
me.y=HIWORD(lParam);
....
return 0;
}
int onWM_LBUTTONUP(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
int onWM_MBUTTONDOWN(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
int onWM_MBUTTONUP(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
int onWM_RBUTTONDOWN(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
int onWM_RBUTTONUP(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
int onWM_MOUSEMOVE(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
int onWM_xBUTTONDBLCLK(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

anonymous
()

Где? Под досом или в мышевозе?

Под досом в realmode -- через мышиное прерывание (в protected mode -- тот ещё цирк). В мышевозе -- без понятия.

Obidos ★★★★★
()

там же самли есть :) под пинду ...

robot12 ★★★★★
()
Ответ на: комментарий от IMNSHO

Если это действительно борланд, то там попросту юзается работа с 33 прерыванием, кажется. давно это уже все было. ну ты нашел где спросить

Vinill ★★
()

нашел. разобрался.
кому интересно:

#ifndef MOUSEH
#define MOUSEH 1
#include <dos.h>

#define MOUSE_INT 0x33
#define RESET 0x00
#define SHOW 0x01
#define HIDE 0x02
#define BUTT_POS 0x03

int mouse(int command,int *x,int *y,int *buttons)
{
union REGS inregs,outregs;
   switch(command)
      {
      case RESET:
	   {
	   inregs.x.ax=0x00;
	   int86(MOUSE_INT,&inregs,&outregs);
	   *buttons=outregs.x.bx;
	   return(outregs.x.ax);
	   }
      case SHOW:
// функция инкрементирует счетчик драйвера. Когда значение счетчика становится
// больше или равно 0, курсор появляется на экране
	   {
	   inregs.x.ax=0x01;
	   int86(MOUSE_INT,&inregs,&outregs);
	   return(1);
	   }
      case HIDE:
// функция декрементирует счетчик драйвера. Когда значение счетчика становится
// меньше  0, курсор исчезает с экрана
	   {
	   inregs.x.ax=0x02;
	   int86(MOUSE_INT,&inregs,&outregs);
	   return(1);
	   }
      case BUTT_POS:
// функция позволяет получить полный статус состояния мыши, включая позицию
// курсора в координатах (х,у) и состояние кнопок
	   {
	   inregs.x.ax=0x03;
	   int86(MOUSE_INT,&inregs,&outregs);
	   *x=outregs.x.cx;
	   *y=outregs.x.dx;
	   *buttons=outregs.x.bx;
	   return(1);
	   }
       default: break;
   }
   return(0);
}
#endif

da_fault
() автор топика
Ответ на: комментарий от da_fault

Это, насколько помню, для DOS realmode решение. Кстати, лучше (во времена 386-х, когда боролись за каждый такт проца) работу с мышиными прерываниями оформить как отдельный asm-модуль (кроме того, читабельнее становится).

P.S. Когда будете переписывать код под Protected mode, вот там начнётся хардкор... ;-)

Obidos ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.