AfxEnableDRA
更新 : 2007 年 11 月
この関数は、デバイス アプリケーション プロジェクトでデバイス解像度認識を有効にします。
void AfxEnableDRA(BOOL bEnable);
パラメータ
- bEnable
TRUE を指定するとデバイス解像度認識が有効になり、FALSE を指定するかこの関数を呼び出さないとデバイス解像度認識が無効になります。
解説
デバイス解像度認識機能を使うと、アプリケーションでは、縦向きモードから横向きモードへの変更など、実行時に解像度の変更に応答できます。
CDialog を直接インスタンス化するときに AfxEnableDRA() 関数を使用します。この場合には、dlgcore.cpp に定義され、MFC DLL と LIB に実装された OnSize メソッドを使用することになります。これらのライブラリ バージョンでは、AfxEnableDRA(TRUE) が以前に呼び出されたことがある場合にのみ DRA::RelayoutDialog(...). AfxIsDRAEnabled() 呼び出しが true を返すかどうかを実行時に確認するために AfxIsDRAEnabled() が使用されます。
メモ : |
---|
ウィザードを使ってデバイスに MFC プロジェクトを作成すると、生成されるコードには、CDialog 派生クラスのオーバーライド (CDialog::OnSize(int, int)) が実装されます。デバイス解像度認識がコンパイル時にチェックされ、DRA::RelayoutDialog(...) の呼び出しを実行するかどうかが決定されます。 |
使用例
AfxEnableDRA(TRUE); //Enable Device Resolution Awareness
...
void CDialog::OnSize(UINT nType, int cx, int cy)
{
if (AfxIsDRAEnabled())
{
DRA::RelayoutDialog(
AfxGetInstanceHandle(),
this->m_hWnd,
DRA::GetDisplayMode() != DRA::Portrait ?
m_lpszWideTemplateName : m_lpszTemplateName);
}
else
{
CWnd::OnSize(nType, cx, cy);
}
}