2

クラス内で静的メソッドを使用して、Windows C++ アプリケーションのコンソールのテキストの色を設定することはできますか? 私のコードは次のようになります。

Display.h:

class Display {
public:
  Display();
  static void setTextColor(int color);
};

Display.cpp:

#include <windows.h>
#include "Display.h"

void Display::setTextColor(int color) {
  HANDLE cHandle;
  cHandle = GetStdHandle(STD_OUTPUT_HANDLE);

  SetConsoleTextAttribute(cHandle, color);
}

main.cpp:

#include <iostream>
#include "Display.h"

int main(int argc, char *argv[]) {
  std::cout << "HI"; //Outputs default color
  Display::setTextColor(9);
  std::cout << "HI"; //Still default color

  return 0;
}

この静的メソッドがテキストの色を更新しない理由を誰か説明してもらえますか? この excat コードは、インラインに配置すると機能します。

お時間をいただきありがとうございます。

4

0 に答える 0