AfxEnableDRA
更新:2007 年 11 月
這個函式可啟用裝置應用程式專案中的裝置解析度感知。
void AfxEnableDRA(BOOL bEnable);
參數
- bEnable
如果指定 TRUE,則會啟用裝置解析度感知;如果指定 FALSE 或者不呼叫這個函式,則會停用裝置解析度感知。
備註
裝置解析度感知功能可以讓應用程式回應執行階段的解析度變更,例如從縱向模式變更為橫向模式。
當您直接產生 CDialog 時,請使用 AfxEnableDRA() 函式。在這種情況下,您使用的是在 dlgcore.cpp 中定義並在 MFC DLL 和 LIB 中實作的 OnSize 方法。在這些程式庫版本中,AfxIsDRAEnabled() 是用來進行執行階段檢查,以決定是否要呼叫 DRA::RelayoutDialog(...)。只有在先前已經呼叫過 AfxEnableDRA(TRUE) 的情況下,AfxIsDRAEnabled() 才會傳回 true。
注意事項: |
---|
當您使用精靈建立裝置的 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);
}
}