Можно ли создать макрос препроцессора C ++ на основе результата функции?
Например, я бы хотел динамически сохранить высоту экрана в определении макроса препроцессора:
#define SCREEN_HEIGHT GetSystemMetrics(SM_CYVIRTUALSCREEN)
Затем я хочу использовать результат для установки значений на основе высоты экрана:
#if SCREEN_HEIGHT < 1200
#define TOP_COORD 200
#define BOTTOM_COORD 500
#define LEFT_COORD 0
#define RIGHT_COORD 1280
#else
#define TOP_COORD 1100
#define BOTTOM_COORD 1400
#define LEFT_COORD 0
#define RIGHT_COORD 1280
#endif
Это не работает, так как SCREEN_HEIGHT, похоже, не определяется должным образом.
Есть ли лучший способ сделать это? Это вообще возможно? Я хочу иметь возможность получить эту информацию о высоте экрана в заголовочном файле, если это возможно, так как это является частью большой части устаревшего кода.