void photos(int sz,int tao) { if (tao == 1) { IMAGE img;//定义一个(变量)对象 switch (sz) {//输出图片 case(1): loadimage(&img, "图片/1.png", 1024, 768);//加载图片 putimage(0, 0, &img);break; case(2): loadimage(&img, "图片/2.png", 1024, 768);//加载图片 putimage(0, 0, &img);break; case(3): loadimage(&img, "图片/3.png", 1024, 768);//加载图片 putimage(0, 0, &img);break; case(4): loadimage(&img, "图片/4.png", 1024, 768);//加载图片 putimage(0, 0, &img); skin(); break; case(5): background(tao); break; case(6): loadimage(&img, "图片/6.png", 1024, 768);//加载图片 putimage(0, 0, &img);break; case(7): loadimage(&img, "图片/7.png", 1024, 768);//加载图片 putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x > 175 && mag.x < 420 && mag.y>85 && mag.y < 385) { yuyen(4); } else if (mag.x > 656 && mag.x < 894 && mag.y>85 && mag.y < 385) { yuyen(4); } else if (mag.x > 175 && mag.x < 420 && mag.y>452 && mag.y < 748) { yuyen(4); } else if (mag.x > 656 && mag.x < 894 && mag.y>450 && mag.y < 748) { yuyen(4); } else if (mag.x > 0 && mag.x < 94 && mag.y>713 && mag.y < 768) { start(); } break; } } } break; case(8): loadimage(&img, "图片/8.png", 1024, 768);//加载图片 putimage(0, 0, &img);break; case(9): loadimage(&img, "图片/9.png", 1024, 768); putimage(0, 0, &img); BGM(1); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x > 0&& mag.x < 196 && mag.y>685 && mag.y < 768) { setting(); } else if (mag.x >469 && mag.x <555 && mag.y>673 && mag.y < 757) { photos(10, 1); } else if (mag.x >0 && mag.x < 1024&& mag.y>0 && mag.y < 651) { photos(10, 1); } else if (mag.x > 798&& mag.x < 1005 && mag.y>690 && mag.y <760) { start(); } break; } } }break; case(10): loadimage(&img, "图片/10.png", 1024, 768); putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN: if (mag.x > 803 && mag.x < 1003 && mag.y>644 && mag.y < 743) { start(); } break; } } }break; case(11): loadimage(&img, "图片/11.png", 1024, 768); putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x > 157 && mag.x < 359 && mag.y>564 && mag.y < 664) {//白子 start(); } } } } case(12): loadimage(&img, "图片/12.png", 1024, 768);//加载图片 putimage(0, 0, &img); break; case(13): loadimage(&img, "图片/13.png", 1024, 768);//加载图片 putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x > 346 && mag.x < 535 && mag.y>360 && mag.y < 408) { start(); //点击“再想一下,”返回游戏界面1 } else if (mag.x > 0&& mag.x <39 && mag.y>740 && mag.y <768) { photos(14, tao); }//点击“确定”转到游戏界面14 break; } } }break; case(14): loadimage(&img, "图片/14.png", 1024, 768);//加载图片 putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x >372&& mag.x <702 && mag.y>419 && mag.y <673) { start(); } else if (mag.x > 0 && mag.x < 39 && mag.y>740 && mag.y < 768) { photos(15, tao); }//点击“确定”转到游戏界面15 break; } } }break; case(15): loadimage(&img, "图片/15.png", 1024, 768);//加载图片 putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x >465 && mag.x < 521 && mag.y> 504&& mag.y <543) { setting(); } break; } } } } } else if (tao == 2) { IMAGE img;//定义一个(变量)对象 switch (sz) {//输出图片 case(1): loadimage(&img, "图片1/1.png", 1024, 768);//加载图片 putimage(0, 0, &img); break; case(2): loadimage(&img, "图片1/2.png", 1024, 768);//加载图片 putimage(0, 0, &img); break; case(3): loadimage(&img, "图片1/3.png", 1024, 768);//加载图片 putimage(0, 0, &img); break; case(4): loadimage(&img, "图片1/4.png", 1024, 768);//加
理解问题void photos(int sz,int tao) { if (tao == 1) { IMAGE img;//定义一个(变量)对象 switch (sz) {//输出图片 case(1): loadimage(&img, "图片/1.png", 1024, 768);//加载图片 putimage(0, 0, &img);break; case(2): loadimage(&img, "图片/2.png", 1024, 768);//加载图片 putimage(0, 0, &img);break; case(3): loadimage(&img, "图片/3.png", 1024, 768);//加载图片 putimage(0, 0, &img);break; case(4): loadimage(&img, "图片/4.png", 1024, 768);//加载图片 putimage(0, 0, &img); skin(); break; case(5): background(tao); break; case(6): loadimage(&img, "图片/6.png", 1024, 768);//加载图片 putimage(0, 0, &img);break; case(7): loadimage(&img, "图片/7.png", 1024, 768);//加载图片 putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x > 175 && mag.x < 420 && mag.y>85 && mag.y < 385) { yuyen(4); } else if (mag.x > 656 && mag.x < 894 && mag.y>85 && mag.y < 385) { yuyen(4); } else if (mag.x > 175 && mag.x < 420 && mag.y>452 && mag.y < 748) { yuyen(4); } else if (mag.x > 656 && mag.x < 894 && mag.y>450 && mag.y < 748) { yuyen(4); } else if (mag.x > 0 && mag.x < 94 && mag.y>713 && mag.y < 768) { start(); } break; } } } break; case(8): loadimage(&img, "图片/8.png", 1024, 768);//加载图片 putimage(0, 0, &img);break; case(9): loadimage(&img, "图片/9.png", 1024, 768); putimage(0, 0, &img); BGM(1); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x > 0&& mag.x < 196 && mag.y>685 && mag.y < 768) { setting(); } else if (mag.x >469 && mag.x <555 && mag.y>673 && mag.y < 757) { photos(10, 1); } else if (mag.x >0 && mag.x < 1024&& mag.y>0 && mag.y < 651) { photos(10, 1); } else if (mag.x > 798&& mag.x < 1005 && mag.y>690 && mag.y <760) { start(); } break; } } }break; case(10): loadimage(&img, "图片/10.png", 1024, 768); putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN: if (mag.x > 803 && mag.x < 1003 && mag.y>644 && mag.y < 743) { start(); } break; } } }break; case(11): loadimage(&img, "图片/11.png", 1024, 768); putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x > 157 && mag.x < 359 && mag.y>564 && mag.y < 664) {//白子 start(); } } } } case(12): loadimage(&img, "图片/12.png", 1024, 768);//加载图片 putimage(0, 0, &img); break; case(13): loadimage(&img, "图片/13.png", 1024, 768);//加载图片 putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x > 346 && mag.x < 535 && mag.y>360 && mag.y < 408) { start(); //点击“再想一下,”返回游戏界面1 } else if (mag.x > 0&& mag.x <39 && mag.y>740 && mag.y <768) { photos(14, tao); }//点击“确定”转到游戏界面14 break; } } }break; case(14): loadimage(&img, "图片/14.png", 1024, 768);//加载图片 putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x >372&& mag.x <702 && mag.y>419 && mag.y <673) { start(); } else if (mag.x > 0 && mag.x < 39 && mag.y>740 && mag.y < 768) { photos(15, tao); }//点击“确定”转到游戏界面15 break; } } }break; case(15): loadimage(&img, "图片/15.png", 1024, 768);//加载图片 putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x >465 && mag.x < 521 && mag.y> 504&& mag.y <543) { setting(); } break; } } } } } else if (tao == 2) { IMAGE img;//定义一个(变量)对象 switch (sz) {//输出图片 case(1): loadimage(&img, "图片1/1.png", 1024, 768);//加载图片 putimage(0, 0, &img); break; case(2): loadimage(&img, "图片1/2.png", 1024, 768);//加载图片 putimage(0, 0, &img); break; case(3): loadimage(&img, "图片1/3.png", 1024, 768);//加载图片 putimage(0, 0, &img); break; case(4): loadimage(&img, "图片1/4.png", 1024, 768);//加
已完成理解「void photos(int sz,int tao) { if (tao == 1) { IMAGE img;//定义一个(变量)对象 switch (sz) {//输出图片 case(1): loadimage(&img, "图片/1.png", 1024, 768);//加载图片 putimage(0, 0, &img);break; case(2): loadimage(&img, "图片/2.png", 1024, 768);//加载图片 putimage(0, 0, &img);break; case(3): loadimage(&img, "图片/3.png", 1024, 768);//加载图片 putimage(0, 0, &img);break; case(4): loadimage(&img, "图片/4.png", 1024, 768);//加载图片 putimage(0, 0, &img); skin(); break; case(5): background(tao); break; case(6): loadimage(&img, "图片/6.png", 1024, 768);//加载图片 putimage(0, 0, &img);break; case(7): loadimage(&img, "图片/7.png", 1024, 768);//加载图片 putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x > 175 && mag.x < 420 && mag.y>85 && mag.y < 385) { yuyen(4); } else if (mag.x > 656 && mag.x < 894 && mag.y>85 && mag.y < 385) { yuyen(4); } else if (mag.x > 175 && mag.x < 420 && mag.y>452 && mag.y < 748) { yuyen(4); } else if (mag.x > 656 && mag.x < 894 && mag.y>450 && mag.y < 748) { yuyen(4); } else if (mag.x > 0 && mag.x < 94 && mag.y>713 && mag.y < 768) { start(); } break; } } } break; case(8): loadimage(&img, "图片/8.png", 1024, 768);//加载图片 putimage(0, 0, &img);break; case(9): loadimage(&img, "图片/9.png", 1024, 768); putimage(0, 0, &img); BGM(1); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x > 0&& mag.x < 196 && mag.y>685 && mag.y < 768) { setting(); } else if (mag.x >469 && mag.x <555 && mag.y>673 && mag.y < 757) { photos(10, 1); } else if (mag.x >0 && mag.x < 1024&& mag.y>0 && mag.y < 651) { photos(10, 1); } else if (mag.x > 798&& mag.x < 1005 && mag.y>690 && mag.y <760) { start(); } break; } } }break; case(10): loadimage(&img, "图片/10.png", 1024, 768); putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN: if (mag.x > 803 && mag.x < 1003 && mag.y>644 && mag.y < 743) { start(); } break; } } }break; case(11): loadimage(&img, "图片/11.png", 1024, 768); putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x > 157 && mag.x < 359 && mag.y>564 && mag.y < 664) {//白子 start(); } } } } case(12): loadimage(&img, "图片/12.png", 1024, 768);//加载图片 putimage(0, 0, &img); break; case(13): loadimage(&img, "图片/13.png", 1024, 768);//加载图片 putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x > 346 && mag.x < 535 && mag.y>360 && mag.y < 408) { start(); //点击“再想一下,”返回游戏界面1 } else if (mag.x > 0&& mag.x <39 && mag.y>740 && mag.y <768) { photos(14, tao); }//点击“确定”转到游戏界面14 break; } } }break; case(14): loadimage(&img, "图片/14.png", 1024, 768);//加载图片 putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x >372&& mag.x <702 && mag.y>419 && mag.y <673) { start(); } else if (mag.x > 0 && mag.x < 39 && mag.y>740 && mag.y < 768) { photos(15, tao); }//点击“确定”转到游戏界面15 break; } } }break; case(15): loadimage(&img, "图片/15.png", 1024, 768);//加载图片 putimage(0, 0, &img); while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); switch (mag.uMsg) { case WM_LBUTTONDOWN://左键按下 if (mag.x >465 && mag.x < 521 && mag.y> 504&& mag.y <543) { setting(); } break; } } } } } else if (tao == 2) { IMAGE img;//定义一个(变量)对象 switch (sz) {//输出图片 case(1): loadimage(&img, "图片1/1.png", 1024, 768);//加载图片 putimage(0, 0, &img); break; case(2): loadimage(&img, "图片1/2.png", 1024, 768);//加载图片 putimage(0, 0, &img); break; case(3): loadimage(&img, "图片1/3.png", 1024, 768);//加载图片 putimage(0, 0, &img); break; case(4): loadimage(&img, "图片1/4.png", 1024, 768);//加」
展开阅读网页
您提供的代码是一个C++函数,名为photos
,它根据传入的参数sz
和tao
来加载和显示不同的图片,并在某些情况下处理鼠标点击事件。这个函数使用了IMAGE
类型的对象来存储图片数据,并使用loadimage
和putimage
函数来加载和显示图片。此外,它还包含了一个循环,用于检测鼠标点击事件,并根据不同的点击区域执行不同的函数,例如yuyen
、start
、setting
等。
以下是对您代码中关键部分的解释:
-
图片加载与显示:使用
loadimage
函数加载指定路径和大小的图片到IMAGE
对象中,然后使用putimage
函数将图片显示在屏幕上。例如:loadimage(&img, "图片/1.png", 1024, 768); // 加载图片 putimage(0, 0, &img); // 显示图片
-
鼠标点击事件处理:通过一个无限循环,使用
MouseHit
函数检测鼠标点击事件。如果检测到点击,使用GetMouseMsg
获取鼠标消息,并根据消息类型(如WM_LBUTTONDOWN
表示左键按下)执行不同的操作。例如:while (1) { if (MouseHit()) { MOUSEMSG mag = GetMouseMsg(); // 根据鼠标点击位置执行不同的函数 } }
-
条件判断:在处理鼠标点击事件时,使用
if
语句和mag.x
、mag.y
的值来判断鼠标点击的具体区域,并调用相应的函数。例如:if (mag.x > 175 && mag.x < 420 && mag.y > 85 && mag.y < 385) { yuyen(4); // 调用yuyen函数 }
-
不同场景的处理:函数中使用了
switch
语句来根据sz
的值选择不同的图片和处理逻辑。每个case
对应一个场景,加载不同的图片,并可能包含鼠标点击事件的处理。 -
背景音乐播放:在某些场景中,如
case(9)
,调用BGM(1)
函数来播放背景音乐。 -
不同
tao
值的处理:函数还根据tao
的值来选择不同的图片文件夹,例如当tao == 1
时加载"图片"文件夹下的图片,当tao == 2
时加载"图片1"文件夹下的图片。
请注意,您提供的代码片段是从一个更大的程序中提取的,因此一些函数和变量可能需要在其他部分定义。此外,代码中的while (1)
循环可能会导致程序无限运行,除非在循环体内部有适当的退出条件。12345678910
MFC中如何实现图片控件的加载和显示?
在MFC中实现图片控件的加载和显示,可以通过以下步骤进行:
- 添加图片控件:在对话框中拖拽Picture Control控件到窗口中。
- 设置图片控件属性:双击Picture Control控件,设置其属性,如将Type设置为“Bitmap”,ID设置为IDB_BITMAP1(或自定义),Size设置为“Auto”。
- 加载图片资源:在资源视图中添加图片资源,并将图片资源与控件关联。
- 显示图片:在对话框的初始化函数中,调用图片控件的
SetBitmap
函数来加载并显示图片。
具体代码示例如下:
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1); // 加载图片资源
m_ctrlPic.SetBitmap(bitmap); // 将图片设置到图片控件中
其中,m_ctrlPic
是图片控件的关联变量。14
在MFC中,如何使用OnMouseMove函数处理鼠标移动事件?
在MFC中,处理鼠标移动事件通常涉及到重写OnMouseMove
函数。以下是实现步骤:
- 添加消息映射:在类向导中为控件添加
OnMouseMove
消息映射。 - 重写OnMouseMove函数:在控件的类中重写
OnMouseMove
函数,以便在鼠标移动时响应。 - 实现鼠标移动逻辑:在
OnMouseMove
函数中添加代码,实现所需的鼠标移动处理逻辑。
示例代码如下:
void CMyStatic::OnMouseMove(UINT nFlags, CPoint point)
{
CStatic::OnMouseMove(nFlags, point);
// 在这里添加鼠标移动时的处理逻辑
}
确保控件的Notify
属性被勾选,以便能够接收鼠标事件。2
如何使用OnLButtonDown函数处理鼠标点击事件?
处理鼠标点击事件通常涉及到重写OnLButtonDown
函数。以下是实现步骤:
- 添加消息映射:在类向导中为控件添加
OnLButtonDown
消息映射。 - 重写OnLButtonDown函数:在控件的类中重写
OnLButtonDown
函数,以便在鼠标左键按下时响应。 - 实现点击逻辑:在
OnLButtonDown
函数中添加代码,实现所需的点击处理逻辑。
示例代码如下:
void CMyStatic::OnLButtonDown(UINT nFlags, CPoint point)
{
CStatic::OnLButtonDown(nFlags, point);
// 在这里添加鼠标左键按下时的处理逻辑
}
确保控件的Notify
属性被勾选,以便能够接收鼠标事件。3
在MFC中,如何实现鼠标指针在特定区域变为手形的效果?
在MFC中实现鼠标指针在特定区域变为手形的效果,可以通过以下方法:
- 重写OnSetCursor函数:在控件的类中重写
OnSetCursor
函数。 - 判断鼠标位置:在
OnSetCursor
函数中,判断鼠标是否在特定区域内。 - 设置鼠标指针:如果鼠标在特定区域内,调用
SetCursor
函数设置鼠标指针为手形。
示例代码如下:
BOOL CMyStatic::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
if (nHitTest == HTCLIENT)
{
::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_HAND));
return TRUE;
}
return CStatic::OnSetCursor(pWnd, nHitTest, message);
}
这种方法不需要处理OnMouseMove
消息。33
如何根据鼠标点击的不同区域加载不同的图片?
根据鼠标点击的不同区域加载不同的图片,可以通过以下步骤实现:
- 定义图片区域:在图片上定义不同的点击区域,并为每个区域分配一个标识。
- 处理鼠标点击事件:在
OnLButtonDown
函数中,获取鼠标点击的坐标。 - 判断点击区域:根据点击坐标判断点击的是哪个区域,并加载对应的图片。
示例代码如下:
void CMyStatic::OnLButtonDown(UINT nFlags, CPoint point)
{
CStatic::OnLButtonDown(nFlags, point);
// 判断点击区域并加载对应图片
if (区域1.Contains(point))
{
m_ctrlPic.SetBitmap(区域1图片);
}
else if (区域2.Contains(point))
{
m_ctrlPic.SetBitmap(区域2图片);
}
// 其他区域...
MFC 图片控件图片加载以及鼠标移动事件和鼠标点击事件1 | MFC图片控件事件处理 展示鼠标移动和点击事件在MFC图片控件上的应用。 |
MFC的picture control响应鼠标操作2 | MFC图片控件鼠标响应 描述如何通过类向导添加响应函数实现鼠标操作。 |
点击picture控件响应3 | 设置Notify属性响应 通过设置Picture Control的Notify属性为true实现点击响应。 |
MFC picture控件 鼠标响应4 | MFC图片控件鼠标交互 讨论如何在MFC图片控件上实现鼠标响应功能。 |
在 MFC 中响应鼠标点击事件5 | MFC鼠标点击事件处理 介绍在MFC中添加事件处理程序以响应鼠标点击事件。 |
SFML 多媒体库使用7 | SFML多媒体库应用 SFML库提供创建图形、音频、视频等应用程序的接口和工具。 |