我想程序启动后窗口就全屏显示,要怎么样实现?谢谢给点提示!

解决方案 »

  1.   

    ::ShowWindow(::FindWindow("Shell_TrayWnd",NULL),SW_HIDE);在初始化函数中添加以上API函数就ok。
      

  2.   

    hzyem,看来你api很熟阿,我都没有仔细去看过!
    你说的这个函数我试过了,可是下面就空了一块!还是不能够到屏幕的最下面!
    我是在PreCreateWindow()中这样设置的!
    cs.x=0;
    cs.y=0;
    cs. cx=GetSystemMetrics (SM_CXSCREEN);
    cs. cy=GetSystemMetrics (SM_CYSCREEN);
    return CFrameWnd::PreCreateWindow(cs);
    这样就下面就空了一块!
    我是想用窗口覆盖下面的任务栏,这样可能会好一点!
    这有什么办法可以实现?
      

  3.   

    我看还有一种办发,就是把系统任务栏在程序初始化时设定为自动隐藏,然后设一个BOOL值检测用户是否修改这一属性,或者禁止用户修改这一属性?
    这样怎样实现?
      

  4.   

    hzyem(大峡) 给出的意见很正确,比较方便地的做法是将::ShowWindow(::FindWindow("Shell_TrayWnd",NULL),SW_HIDE)这一句提前(例如放在App::InitInstance()函数里面),然后再像power4(我要多学习!) 说的那样加上给cs的成员变量赋值的代码,就可以看到现在窗口是真正的全屏显示,包括覆盖了原来的任务栏的位置。如果设置断点来调试,不难发现,每次调用GetSystemMetrics (SM_CXSCREEN)和GetSystemMetrics (SM_CYSCREEN),返回的值都是一样的(我个人的机器上是1024和768),所以差别不出在这里。可能是因为窗口初始化时,虽然设定了新窗口的大小为全屏幕的大小,但是系统仍然保留了任务栏的位置;如果将隐藏任务栏的操作提前,这时候新窗口初始化时就不再保留任务栏所占的位置了,您的意图就达到了。为了恢复任务栏的显示,在窗口关闭的时候再调用
    ::ShowWindow(::FindWindow("Shell_TrayWnd",NULL),SW_SHOW)
    就可以了。- 微软全球技术中心 VC技术支持本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。为了为您创建更好的讨论环境,请参加我们的用户满意度调查
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。