程序代碼
程序代码:
#pragma comment (lib, "MyTools")
#include <Windows.h>
#include <cstdlib>
#include <vector>
#include <string>
#include "MyTools.h"
#include "MyConsole.h"
#include "MyWindow.h"
#include "PopMenu.h"
using namespace TonyDeng; // 專用命名空間
const SHORT Console_Rows = 50; // 控制臺行數
const SHORT Console_Columns = 160; // 控制臺列數
const SMALL_RECT Screen = { 0, 0, Console_Columns - 1, Console_Rows - 1 }; // 控制臺窗口範圍
const TextAttribute Console_Color = TextAttribute(TextColor::LightRed, TextColor::Blue); // 控制臺默認文本顏色
// 菜單列表
const std::vector<std::string> Menu = {
"1.AAAAAA",
"2.BBBBBB",
"3.CCCCCC",
"4.DDDDDD",
"0.Exit "
};
int main(void)
{
MyConsole::Set_Title("test MyConsole & PopMenu"); // 設置控制臺窗口標題文字
MyConsole::Set_Size(Console_Rows, Console_Columns); // 設置控制臺窗口尺寸
MyConsole::Clear(Screen, Console_Color); // 控制臺窗口清屏
const COORD pos = { 15, 12 };
MyConsole::Say("Hello, world!", pos, Console_Color); // 在控制臺窗口指定位置輸出文本
// 創建並顯示彈出式菜單PopMenu
PopMenu menu(Menu); // 將菜單清單傳入對象
const TextAttribute normal = TextAttribute(TextColor::LightWhite, TextColor::Green); // 正常文字顏色
const TextAttribute highlight = TextAttribute(TextColor::LightCyan, TextColor::Megenta); // 高亮文字顏色
menu.Set_Color(normal, highlight); // 設置菜單顏色體系
menu.Show(10, 5); // 將菜單顯示在指定位置
// 菜單與用戶交互
int choice = Menu.size() - 1; // 默認選定菜單最後一項
do
{
// Choice()方法若傳入參數,則高亮條指向指定選項,默認為菜單第1項
// 用戶可用光標方向鍵上下箭頭移動高亮條,按回車確認選擇該項,返回値為選定項在菜單列表中的序數,按Esc鍵放棄選擇(返回-1)
choice = menu.Choice(choice);
} while ((choice != Menu.size() - 1) && (choice != -1));
// 收回菜單,恢復被遮蓋的屏幕內容
menu.Close();
MyConsole::ReadKeypress(); // 等待按任意鍵
return EXIT_SUCCESS;
}