#include <iostream>
#include <string>
#include "windows.h"
#include "Submenu.h"
using namespace std;
class Mainmenu
{
string Menu[3];
string MenuName1;
string MenuName2;
string MenuName3;
int pointer = 0;
public:
Mainmenu(string m1, string m2, string m3);
void Firstmenu();
};
Mainmenu::Mainmenu(string m1, string m2, string m3)
{
MenuName1 = m1;
MenuName2 = m2;
MenuName3 = m3;
}
void Mainmenu::Firstmenu()
{
string Menu[3] = { MenuName1,MenuName2,MenuName3 };
while (true)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
cout << "basemenu\n\n";
for (int i = 0; i < 3; ++i)
{
if (i == pointer)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11);
cout << Menu[i] << endl;
}
else
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
cout << Menu[i] << endl;
}
}
while (true)
{
if (GetAsyncKeyState(VK_UP) != 0)
{
pointer -= 1;
if (pointer == -1)
{
pointer = 2;
}
break;
}
else if (GetAsyncKeyState(VK_DOWN) != 0)
{
pointer += 1;
if (pointer == 3)
{
pointer = 0;
}
break;
}
else if (GetAsyncKeyState(VK_RETURN) != 0)
{
switch (pointer)
{
case 0:
{
system("cls");
Submenu1 a("aa", "bb", "exit");
a.Sub_one();
}break;
case 1:
{
}
break;
case 2:
{
exit(1);
}
break;
}
break;
}
}
Sleep(150);
system("cls");
}
}
#include <iostream>
#include <string>
#include "windows.h"
#include "Mainmenu.h" // ERROR C1014
using namespace std;
class Submenu1
{
string Menu[3];
string SubName1;
string SubName2;
string SubName3;
int pointer = 0;
public:
Submenu1(string s1, string s2, string s3);
void Sub_one();
Mainmenu *a;
};
Submenu1::Submenu1(string s1, string s2, string s3)
{
SubName1 = s1;
SubName2 = s2;
SubName3 = s3;
}
void Submenu1::Sub_one()
{
string Menu[3] = { SubName1, SubName2, SubName3 };
while (true)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
cout << "submenu 1\n\n";
for (int i = 0; i < 3; ++i)
{
if (i == pointer)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11);
cout << Menu[i] << endl;
}
else
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
cout << Menu[i] << endl;
}
}
while (true)
{
if (GetAsyncKeyState(VK_UP) != 0)
{
pointer -= 1;
if (pointer == -1)
{
pointer = 2;
}
break;
}
else if (GetAsyncKeyState(VK_DOWN) != 0)
{
pointer += 1;
if (pointer == 3)
{
pointer = 0;
}
break;
}
else if (GetAsyncKeyState(VK_RETURN) != 0)
{
switch (pointer)
{
case 0:
{
}break;
case 1:
{/*system("cls");*/
cout << "\n\nstandard";
Sleep(1000);
}break;
case 2:
{
system("cls");
Mainmenu a("a", "b", "return");
a.Firstmenu();
}break;
}
break;
}
}
Sleep(150);
system("cls");
}
};
Mainmenu.hヘッダである/これは、これはmain.cppに
-
ある/
コンソールウィンドウの最初の画面で、私は3つのメニュー(ex 1,2,3)を作成しました。
サブメニューに入る番号1。 /(番号2は設定されていません)/ 3番のコンソールがシャットダウンします
1を押してサブメニューに入ります。
#include <iostream>
#include <string>
#include "windows.h"
#include "Mainmenu.h"
using namespace std;
int main()
{
system("mode con:cols=50 lines=30");
Mainmenu test("a", "b", "c");
test.Firstmenu();
return 0;
}
Submenu.hヘッダであります
4.たとえば、サブメニュー項目は1S、2S、3Sです。
この領域にはエラーがあります - > 3Sを押して最初の画面に戻ります。
私はこれは相互参照エラーと思われます。 どうすればこの問題を解決できますか?
どのようなエラーが表示されますか? – interjay
ファイルが多すぎます。 Level = 1024そして#Includedファイルにはそれ自身のファイル自体が含まれています。 – brown
この例のサイズを小さくする必要があると思います(おそらく5倍程度)。たとえば、(コンストラクタで渡すのではなく)固定コンテンツですべてのメニューを作成し、テキストの色付けを気にしないでください。また、問題を説明してコードを表示して*始める*。 –