通过鼠标滚轮的事件来实现。
事件中利用e XXX可以获取到鼠标的X,Y坐标。
的放大不是你想的那样儿实现的,并不是以上的某个位置放大缩小。
而是以某个坐标为中心放大缩小。
所以你只要获取到鼠标的X,Y坐标就OK了。
至于放大缩小的API 百度下就有了吧。我之前是WPF做的。API函数不一样。
涉及多个知识点。 OnMouseMove中获取鼠标左键状态MK_LBUTTON、获取dc、记录第一个左键按下坐标 DC *** 作,Rectangle画矩形,注意设置SetROP2,每次画的时候要对上一个重画(即消除)鼠标左键抬起的时候,如果需要,要使用颜色填充或者画实线完成
import javaawt;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingSwingConstants;
import javaxswingWindowConstants;
import javaxswingborder;
public class jframe {
/
@param args
/
public void CreateJFrame(String title) {
JFrame jf = new JFrame(title);
Container container = jfgetContentPane();
JLabel jl = new JLabel("");
jlsetHorizontalAlignment(SwingConstantsCENTER);
containeradd(jl);
containersetBackground(Colorwhite);
jfsetVisible(true);
jfsetSize(200, 150);
jfsetDefaultCloseOperation(WindowConstantsEXIT_ON_CLOSE);
};
1、新建一个 Window,添加一个Grid
<Window x:Class="WpfApplication1MainWindow"xmlns=";
2、添加类 FunnyBrush,这是我自己写着玩的
public class FunnyBrush{
public static void Draw(Panel panel)
{
var brush = new RadialGradientBrush();
var center = new Point(panelActualWidth / 2d, panelActualHeight / 2d);
brushCenter = center;
brushGradientOrigin = center;
brushRadiusX = centerX;
brushRadiusY = centerY;
brushMappingMode = BrushMappingModeAbsolute;
ConsoleWriteLine(center);
var stops = new GradientStopCollection();
stopsAdd(new GradientStop(ColorsYellow, 0d));
stopsAdd(new GradientStop(ColorsRed, 025d));
stopsAdd(new GradientStop(ColorsBlue, 075d));
stopsAdd(new GradientStop(ColorsLimeGreen, 1d));
brushGradientStops = stops;
panelBackground = brush;
var win = FindParent<Window>(panel) as FrameworkElement;
if (win == null) win = panel;
winMouseMove += (obj, args) =>
{
brushGradientOrigin = argsGetPosition(panel);
};
winSizeChanged += (obj, args) =>
{
var pt = new Point(panelActualWidth / 2d, panelActualHeight / 2d);
brushCenter = pt;
brushRadiusX = ptX;
brushRadiusY = ptY;
};
}
// 这个方法来自
// >}
3、在 Window_Loaded 事件中添加代码
FunnyBrushDraw(panel);以上就是关于winform 如何实现鼠标位置获取picturebox的焦点,然后焦点放大全部的内容,包括:winform 如何实现鼠标位置获取picturebox的焦点,然后焦点放大、如何wpf 中 鼠标左击画矩形、wpf 如何获取canvas中的正方形的各个点的坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)