利用api写窗口程序,如何实现图片的切换?(C语言)

利用api写窗口程序,如何实现图片的切换?(C语言),第1张

但按钮单击事件中,用图片框控件的图片数组属性,根据下表来一次获取图片,每执行一次,下标加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,非常常见。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11877354.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存