program_10_7.cpp
来自「清华关于C++ 的程序讲义 值得一看 关于算法」· C++ 代码 · 共 64 行
CPP
64 行
// Demonstrate selecting an action by clicking in a bitmap
#include <cassert>
#include <bitmap>
// Define a window
SimpleWindow FlipWindow("Flip Card", 15., 11., Position(1., 1.));
// Define bitmaps
BitMap CardFront(FlipWindow);
BitMap CardBack(FlipWindow);
// Need a type and object for remembering which pic
// is showing
enum Side {Front, Back};
Side SideShowing;
// MouseClickEvent(): come here when user clicks mouse
int MouseClickEvent(const Position &MousePosition) {
if (CardFront.IsInside(MousePosition)) {
// flip card
if (SideShowing == Back) {
SideShowing = Front;
CardFront.Draw();
}
else if (SideShowing == Front) {
SideShowing = Back;
CardBack.Draw();
}
}
return 1;
}
int ApiMain() {
// Open the window
FlipWindow.Open();
assert(FlipWindow.GetStatus() == WindowOpen);
// Load the images
CardFront.Load("bush.bmp");
assert(CardFront.GetStatus() == BitMapOkay);
CardBack.Load("me.bmp");
assert(CardBack.GetStatus() == BitMapOkay);
// Compute position to display the card
Position CardPosition = FlipWindow.GetCenter() +
Position(-.5*CardFront.GetWidth(),
-.5*CardFront.GetHeight());
CardFront.SetPosition(CardPosition);
CardBack.SetPosition(CardPosition);
SideShowing = Front;
CardFront.Draw();
// Set up mouse callback
FlipWindow.SetMouseClickCallback(MouseClickEvent);
return 0;
}
int ApiEnd() {
FlipWindow.Close();
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?