Chinaunix首页 | 论坛 | 博客
  • 博客访问: 37720
  • 博文数量: 9
  • 博客积分: 453
  • 博客等级: 下士
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-18 13:13
文章分类
文章存档

2011年(1)

2010年(3)

2009年(5)

最近访客

分类: C/C++

2009-10-10 13:47:08

   这是我搜到的比较好的解决方案了,调试然后修改了nDoFirstHide = 4 ,使得正好隐藏了,代码如下:

 

class CxxDlg : public CDialog
{
protected:
    int nDoFirstHide;//设置第一启动就隐藏的次数
}

CxxDlg::CxxDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CxxDlg::IDD, pParent)
{
    nDoFirstHide = 4;
}

BEGIN_MESSAGE_MAP(CxxDlg, CDialog)
ON_WM_WINDOWPOSCHANGING()
END_MESSAGE_MAP()

void CxxDlg::OnWindowPosChanging(WINDOWPOS* lpwndpos)
{
    if(nDoFirstHide -- < 1)//开始运行才隐藏,以后有SW_SHOW就正常显示
    {
        CDialog::OnWindowPosChanging(lpwndpos);
        return;
    }
    //启动隐藏
    if(lpwndpos->flags&SWP_SHOWWINDOW)
    {
        lpwndpos->flags&=~SWP_SHOWWINDOW;
        PostMessage(WM_WINDOWPOSCHANGING,0,(LPARAM)lpwndpos);
        ShowWindow(SW_HIDE);
    }
    else
        CDialog::OnWindowPosChanging(lpwndpos);
}


阅读(1239) | 评论(0) | 转发(0) |
0

上一篇:秋去春来

下一篇:电子邮件给我的启发

给主人留下些什么吧!~~