您的位置:首页 > 编程语言 > PHP开发

基于对话框的MFC PocketPC应用程序全屏方法

2009-06-10 14:10 357 查看
1、在OnInitDialog()中加入如下语句:

RECT rc;
GetWindowRect(&rc);
rc.top -= 26;
MoveWindow(rc.left,rc.top,rc.right,rc.bottom,FALSE); //上移26像素
SHFullScreen(this->m_hWnd,SHFS_HIDETASKBAR); //隐藏任务栏

该段代码为:将整个窗口向上平移26个像素以到达屏幕顶部,同时使用SHFullScreen()隐藏任务栏。

或者:先把该Dialog的TitleBar属性置为false,然后在OnInitDialog()函数中加入如下语句:

int iFullWidth = GetSystemMetrics(SM_CXSCREEN);
int iFullHeight = GetSystemMetrics(SM_CYSCREEN);
::SetWindowPos(this->m_hWnd, HWND_TOPMOST, 0, 0, iFullWidth, iFullHeight, SWP_NOOWNERZORDER|SWP_SHOWWINDOW);

2、由于调用输入法面板(Input Panel)时,任务栏会再次出现(依据MSDN,在Input Panel活动时会发送WM_SETTING_CHANGE和WM_ACTIVATE两个消息。因此需要手工来处理这两个消息来保持全屏),需要添加以下2个消息:

(1)选择改dlg类,在属性中添加WM_SETTINGCHANGE和WM_ACTIVATE消息。即

public:
afx_msg void OnSettingChange(UINT uFlags, LPCTSTR lpszSection);
public:
afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);

void CtestDlg::OnSettingChange(UINT uFlags, LPCTSTR lpszSection)
{
//CDialog::OnSettingChange(uFlags, lpszSection); //注释该行

// TODO: 在此处添加消息处理程序代码
}

void CtestDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
CWnd::OnActivate(nState, pWndOther, bMinimized);//CDialog改为CWnd

// TODO: 在此处添加消息处理程序代码
SHFullScreen( this->m_hWnd, SHFS_HIDETASKBAR);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: