注册 登录
编程论坛 C++ Builder

怎么判断是左建还是右建,点击?

hhylly 发布于 2006-05-26 00:02, 1423 次点击
谢谢哦
4 回复
#2
Knocker2006-05-26 09:50
MouseDown事件处理一下

void __fastcall TForm1::Memo1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if ( Shift.Contains(ssLeft) )
{
ShowMessage("你按下了鼠标左键!");
}
if ( Shift.Contains(ssRight) )
{
ShowMessage("你按下了鼠标右键!");
}
}
#3
vfdff2006-06-15 01:35
请 问你的是什么语言编写的??
#4
vfdff2006-08-11 12:47

如果是用 C 的话
可以使用 bioskey(2) 判断状态

2 查询当前移位状态.状态只有下列值相或得到:
第7位 0x80 Insert ON
第6位 0x40 CapsLock ON
第5位 0x20 NumLock ON
第4位 0x10 ScrollLock ON
第3位 0x08 Alt ON
第2位 0x04 Ctrl ON
第1位 0x02 左Shift ON
第0位 0x01 右Shift ON

程序例:

#include <stdio.h>
#include <bios.h>
#include <ctype.h>

#define RIGHT 0x01
#define LEFT 0x02
#define CTRL 0x04
#define ALT 0x08

int main(void)
{
int key, modifiers;

/* function 1 returns 0 until a key is pressed */
while (bioskey(1) == 0);

/* function 0 returns the key that is waiting */
key = bioskey(0);

/* use function 2 to determine if shift keys were used */
modifiers = bioskey(2);
if (modifiers)
{
printf("[");
if (modifiers & RIGHT) printf("RIGHT");
if (modifiers & LEFT) printf("LEFT");
if (modifiers & CTRL) printf("CTRL");
if (modifiers & ALT) printf("ALT");
printf("]");
}
/* print out the character read */
if (isalnum(key & 0xFF))
printf("'%c'\n", key);
else
printf("%#02x\n", key);
return 0;
}

#5
dugujian852006-08-22 19:04
我个人的意见是:
void __fastcall TForm1::Memo1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(Button==mbLeft)

{
//你要做出的处理
}
if(Button==mbRight)
{
//你要的处理
}
}
1