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

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);
}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值