Win32アプリケーションのダイアログボックスを中央に配置したいのですが、resource.rcファイルに定数を渡すのに問題があります。resource.hで次の宣言を行います。
const int SCREENX = GetSystemMetrics(SM_CXSCREEN);
ただし、.rcファイル(以下)で100をSCREENXに置き換えてビルドすると、エラーRC2108:期待される数値ダイアログ定数が表示されます。
#include <windows.h>
#include "resource.h"
#include "afxres.h"
// I'd like to replace "100" with "GetSystemMetrics(SM_CXSCREEN)"
ID_ABOUT DIALOG DISCARDABLE 100, 0, 237, 87
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About"
FONT 10, "MS Sans Serif"
BEGIN
GROUPBOX "Contact", IDC_CONTACT, 7, 43, 98, 39, WS_CHILD | WS_VISIBLE
LTEXT "My info", IDC_CONTACT, 16, 53, 85, 25, WS_CHILD | WS_VISIBLE
END
GetSystemMetrics(SM_CXSCREEN)を目的の場所で直接使用することもできません(同じエラー)。
データ型を.rcに渡すのは日常的なことだと思うので、ここでは基本的なものが欠けているに違いありません。(リソースファイルは私に頭痛の種を終わらせません。)ありがとう!