Для решения ошибки C2398, связанной с необходимостью сужающего преобразования из типа "int" в тип "float", вы можете попробовать использовать статическое приведение типов с помощью функции static_cast. Вот как вы можете это сделать:
C++:
static float Alpha = 0.0f;
float screenWidthX = static_cast<float>(GetSystemMetrics(SM_CXSCREEN));
float screenHeightY = static_cast<float>(GetSystemMetrics(SM_CYSCREEN));
В этом примере я использовал static_cast для явного приведения значений, возвращаемых функцией GetSystemMetrics, к типу float. Это позволяет избежать потенциальных проблем с несоответствием типов данных.
Если после применения этого подхода ошибка C2398 все еще возникает, рекомендую также проверить другие места в вашем коде, где могут возникать подобные проблемы с типами данных, и убедиться, что все переменные корректно инициализированы и используются в соответствии с их типами.