VS通过鼠标滑轮对图形缩放

int m_nScale = 100; // 比列,初始为100%
void CaDlg::OnPaint()
{
    CPaintDC dc(this); // 用于绘制的设备上下文
    CRect rc( 10, 20, 100, 200 ); // 初始矩形
    rc = rc.MulDiv( m_nScale, 100 ); // 按比例求大小
    dc.FillRect( rc, 0 ); // 画比例改变后的矩形
}
void CaDlg::OnMouseHWheel(UINT nFlags, short zDelta, CPoint pt) //滚动消息
{
    CDialogEx::OnMouseHWheel(nFlags, zDelta, pt);
    m_nScale += zDelta; // 设置比例
    Invalidate(); // 重画
}

WM_MOUSEWHEEL:鼠标滑轮消息,使用WM_MOUSEWHEEL需要将CWnd设置为focus

EGE是Easy Graphics Library的缩写,是一款基于C语言的图形库,主要用于Windows平台下的图形绘制。 要实现通过鼠标滚轮缩放图形和字体大小,可以使用EGE提供的鼠标事件函数和缩放函数。 首先,在程序开头需要引入头文件和定义全局变量: ```c #include <graphics.h> int main() { initgraph(640, 480); // 初始化图形窗口 int font_size = 16; // 字体大小 double scale = 1.0; // 缩放比例 int x = 320, y = 240; // 图形中心点坐标 setbkcolor(WHITE); // 设置背景颜色为白色 cleardevice(); // 清空屏幕 while (1) { if (MouseHit()) // 检测是否有鼠标事件 { MOUSEMSG msg = GetMouseMsg(); // 获取鼠标事件信息 if (msg.uMsg == WM_MOUSEWHEEL) // 判断是否为鼠标滚轮事件 { if (msg.zDelta > 0) // 滚轮向上滚动 { scale += 0.1; // 缩放比例增加0.1 } else if (msg.zDelta < 0) // 滚轮向下滚动 { scale -= 0.1; // 缩放比例减少0.1 } cleardevice(); // 清空屏幕 } } settextcolor(BLACK); // 设置字体颜色为黑色 settextstyle(0, 0, font_size); // 设置字体样式和大小 outtextxy(x, y, "Hello, EGE!"); // 在指定位置输出文本 setlinestyle(PS_SOLID, 2); // 设置线条样式为实线,线宽为2 setlinecolor(RED); // 设置线条颜色为红色 rectangle(x - 50 * scale, y - 50 * scale, x + 50 * scale, y + 50 * scale); // 绘制矩形 Sleep(10); // 暂停10毫秒,避免CPU占用过高 } closegraph(); // 关闭图形窗口 return 0; } ``` 在主循环中,首先检测是否有鼠标事件,如果是鼠标滚轮事件,则根据滚动方向调整缩放比例,并清空屏幕。然后,根据字体大小和缩放比例设置字体样式和大小,并在指定位置输出文本。最后,根据缩放比例绘制矩形。程序运行后,可以通过鼠标滚轮缩放图形和字体大小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值