举报

setorigin 与 鼠标坐标

0

请教一个各位大佬,我在easyx中进行了中心偏移后,绘制图形能够按偏移后的中心计算坐标。

为什么鼠标的坐标还是按窗口左上角计算?是偏移坐标对鼠标不起作用吗?

可以让鼠标的坐标也按偏移后的坐标中心,进行计算吗?

谢谢

#include<easyx_graphics.h>
#include<iostream>
using namespace std;

int main() {
	initgraph(600, 600,EX_SHOWCONSOLE);
	double x = 300, y = 400;

	BeginBatchDraw();
	ExMessage msg;
	setorigin(300,300);
	while (1) {
		solidcircle(0,0,1);
		setlinecolor(GREEN);
		setlinestyle(PS_SOLID,3);
		while (peekmessage(&msg)) {
			if (msg.message == WM_MOUSEMOVE) {
				x = msg.x, y = msg.y;
				printf("x:%.1f y:%.1f\n",x,y);	
			}
		}
		FlushBatchDraw();
		Sleep(1);
		cleardevice();
	}
	EndBatchDraw();
	cleardevice();
	return 0;
}
ava
李铁柱

2024-11-6

举报
0

似乎不能,鼠标的坐标是物理坐标,setorigin 修改的是逻辑坐标,不会改变鼠标的坐标

自己封装一个 peekmessage() 函数吧,里面把物理坐标转换为逻辑坐标返回

ava
xiongfj ◑◑

2024-11-7

技术讨论社区