VBA如何设置窗体form背景 和窗体中的鼠标/光标的外观,设置 mouseicon注意点

1 设置form的背景图 picture

1.1 设置背景图picture的属性

  • picture 
  • picturealignment                                 '试了下默认center居中,还有topleft等4个角对齐选择。
  • picturesizemode                                 '默认是clip截断(原尺寸),zoom 缩放好像是等比例缩放?  stretch拉伸
  • pictureTiling                                        '默认是否,置为1后为平铺 (可见平铺是单独的属性)

 

2 图片在窗体的属性设置和方法

2.1 (窗体属性图片的对齐方式 : pictureAlignment

我觉得这是窗体属性,只是把图片在窗体内如何对齐放置,和图片无关。

  • picturealignment
  • 默认center居中
  • 还有topleft等4个角对齐选择

 

2.2 (图片属性)图片的尺寸显示方式: pictureSizemode

我觉得这是图片属性,即使只是图片的副本,也是改变了图片本身的大小或比例

  • 图片的方式--option :  clip, stretch, zoom是3种方式,可选其1
  • 默认是clip
  • clip---------截断:目的是图片保持原尺寸完全不变,如果窗体大则会有空白,如果窗体小则会截断图片只显示一部分
  • zoom------缩放:目的是比例不变形,控制图片宽高比例,缩放是把图片进行等比例缩放,而不在乎图片实际大小。
  • stretch----拉伸:目的是拉伸填满为止,不在乎比例,也不在于实际大小,把图片按窗体的大小进行拉升,不控制图片比例。

clip,可见图标被截断了一部分

 zoom 只是绝对尺寸变化,比例还是原图的

 stretch 拉伸了

 

2.3 窗体属性:图片是否平铺到整个窗体:pictureTiling

我觉得这是窗体属性,是设置好显示模式的图片如何充满窗体,和图片无关。

  • 图片的拉升方式--option :  clip, stretch, zoom是3种方式,可选其1
  • 图片的平铺--------bool:      是/否

clip+Tiling  效果

zoom+tiling 效果

 

3 mouseicon 鼠标外观

3.1 鼠标相关属性

  • mouseicon      只有需要自定义时才修改
  • mousepointer   应该可以设置不同的鼠标外观
  1. 可以是十字星,加问号,等等各种外观

 

3.2 自定义鼠标光标外观:VBE设置上的要求

  • 必须同时MouseIcon设置成你要的Ico文件,并且把MousePointer设置为99 Custom
  • mousepointer已设置为99,就是   custom
  • custom 是让设计者自定义的意思

 

3.3 自定义鼠标光标外观:VB对 mouseicon的美术要求

  • 如果不满足下面的要求,设置mouseicon会各种报错
  • 对icon有很多美术上的要求---PS不太会用
  • VB要求格式一般是 .ico  ,据说不支持 .ani 动画光标格式
  • VB要求图片是24位色的,这个PS里另外为bmp的时候可以设置,其他方式怎么设置我不清除
  • 据说图片像素大小需要在48*48以内

 

4 也可以代码实现,暂时还没弄

  • object.MouseIcon = LoadPicture(pathname)
  • object.MouseIcon [= picture]

 

5  美术抠图(百度的)

4.1 VB好像不支持我抠图后的无背景光标,所以例子里还是用的不抠图的,原因还不明,有些问题没解决

 

4.2 如何抠图?百度的方法之一

4.2.1 适合这种背景色和图像颜色不同的方法

  • 首先,要解锁图片,否则无法修改操作
  • 和选择对应的图层
  • 有些图片本身就带多个图层,比如图像图层和背景图层,这时候只需要隐藏背景图层就可以
  • 操作后经常需要多按按ctrl D
  • 快捷键Ctrl+D是取消当前选区选择的

 

  • 适合这种背景色和图像颜色不同的方法
  • 有白色背景的图
  • PS里,选择/色彩范围--选图像,然后取色----再删掉出缺色的背景色这部分。

 

4.2.2 魔术棒勾边

  • PS菜单叠加隐藏,需要点击右键才会出魔术棒工具,平时默认叠在 快速选择工具下面
  • 选择背景颜色后,按delete,可以删掉边上的颜色
  • 也可以反向选择,拷贝图像,新建图片后拷贝过去,隐藏背景就可以了

 

 

4.2.3 橡皮擦类---右键选魔术橡皮擦工具

  • 选择魔术橡皮擦
  • 点击背景,选择连续,也可以擦除

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java实现黄金矿工游戏老鼠自动的左右移动,可以考虑使用Java Swing的Timer类和KeyListener接口。 首先,需要在游戏界面添加一个老鼠,可以使用JLabel组件来实现。然后,需要在窗口添加KeyListener,用于监听键盘事件,当用户按下箭头键时,改变老鼠的方向。接着,使用Timer类来定时触发老鼠的移动,每次移动一定距离,实现左右移动的效果。 下面是一个简单的示例代码: ``` import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Mouse extends JFrame implements KeyListener { private JLabel mouseLabel; private int mousePosX, mousePosY; private int mouseDirection = 1; // 1表示向右,-1表示向左 public Mouse() { setTitle("黄金矿工游戏"); setSize(600, 400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(null); // 添加老鼠 ImageIcon mouseIcon = new ImageIcon("mouse.png"); mouseLabel = new JLabel(mouseIcon); mousePosX = 100; mousePosY = 200; mouseLabel.setBounds(mousePosX, mousePosY, mouseIcon.getIconWidth(), mouseIcon.getIconHeight()); add(mouseLabel); // 添加键盘监听器 addKeyListener(this); setFocusable(true); setFocusTraversalKeysEnabled(false); // 定时移动老鼠 Timer timer = new Timer(50, new ActionListener() { public void actionPerformed(ActionEvent e) { mousePosX += mouseDirection * 5; mouseLabel.setLocation(mousePosX, mousePosY); if (mousePosX <= 0 || mousePosX >= getWidth() - mouseLabel.getWidth()) { mouseDirection = -mouseDirection; } } }); timer.start(); } public void keyPressed(KeyEvent e) { int keyCode = e.getKeyCode(); if (keyCode == KeyEvent.VK_LEFT) { mouseDirection = -1; } else if (keyCode == KeyEvent.VK_RIGHT) { mouseDirection = 1; } } public void keyReleased(KeyEvent e) { } public void keyTyped(KeyEvent e) { } public static void main(String[] args) { Mouse game = new Mouse(); game.setVisible(true); } } ``` 在这个示例,我们使用了50毫秒的定时器来触发老鼠的移动,每次移动5个像素,当老鼠到达窗口左右边缘时,改变老鼠的方向。同时,我们实现了KeyListener接口,监听键盘事件,当用户按下左右箭头键时,改变老鼠的方向。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值