但按钮单击事件中,用图片框控件的图片数组属性,根据下表来一次获取图片,每执行一次,下标加1.但是,在此之前应设置一个全局变量i。给i赋个初值,然后在将i作为图片数组下标,最后设置一个判断下表i值为多少时重新赋值为第一张图片的下标!
下面是完整代码,仅作参考(我用了9张图片):
using System
using System.Collections.Generic
using System.ComponentModel
using System.Data
using System.Drawing
using System.Text
using System.Windows.Forms
namespace PicExplorer
{
public partial class FrmMyPicExp : Form
{
int index = 0//全局变量
public FrmMyPicExp()
{
InitializeComponent()
}
private void FrmMyPicExp_Load(object sender, EventArgs e)//加载图片
{
MyPicpictureBox.Image = MyPicimageList.Images[index]
}
private void tSBnext_Click_1(object sender, EventArgs e)//下一张图片 按钮单击事件
{
if (index < 9)
{
MyPicpictureBox.Image = MyPicimageList.Images[index + 1]
index++
}
else
{
index = 0
MyPicpictureBox.Image = MyPicimageList.Images[index]
}
}
private void tSBlast_Click(object sender, EventArgs e)//上一张 按钮单击事件
{
if (index < 9)
{
MyPicpictureBox.Image = MyPicimageList.Images[9-index]
index++
}
else
{
index = 0
MyPicpictureBox.Image = MyPicimageList.Images[index]
}
}
private void tSBplay_Click(object sender, EventArgs e)//自动播放按钮
{
secondtimer.Start()
}
private void tSBstop_Click(object sender, EventArgs e)//停止播放按钮
{
secondtimer.Stop()
}
private void secondtimer_Tick_1(object sender, EventArgs e)//时间控制器,这里可以设置时间间隔
{
if (index < 9)
{
MyPicpictureBox.Image = MyPicimageList.Images[index + 1]
index++
}
else
{
index = 0
MyPicpictureBox.Image = MyPicimageList.Images[index]
}
}
}
}
WINAPI和CALLBACK都是宏, 这样定义的:#define WINAPI__stdcall
#define CALLBACK __stdcall
实际上就是约定了函数的调用方式.
以下来自百度百科:
__stdcall是函数调用约定的一种,函数调用约定主要约束了两件事:
1.参数传递顺序
2.调用堆栈由谁(调用函数或被调用函数)清理
常见的函数调用约定:stdcall cdecl fastcall thiscall naked call
__stdcall表示
1.参数从右向左压入堆栈
2.函数被调用者修改堆栈
3.函数名(在编译器这个层次)自动加前导的下划线,后面紧跟一个@符号,其后紧跟着参数的尺寸
在win32应用程序里,宏APIENTRY,WINAPI,都表示_stdcall,非常常见。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)