分享

VS2008 MFC用向导生成的SDI的OFFICE2007风格的程序如何修改初始化窗口的位置和大小

 Frank_Chia 2010-07-17
这个问题困扰我好几天了,之前在网上搜索了,有如下解决方案,
1. 在CmainWindow的PrecreateWindow函数中对cs.x cs.y cs.cx cs.cy 等值进行设定即可。窗口生成的大小和位置根本不是我设定的想要的。
2. 在CmainWindow的OnCreate函数中调用SetWindowPos来设定窗口的位置和大小,尝试之后,发现SetWindowPos是将窗口定位到了我想要的地方和指定的大小,但随后调用了CRibbonTestView的OnInitialUpdate函数
void CRibbonTestView::OnInitialUpdate()
{
        CFormView::OnInitialUpdate();
        GetParentFrame()->RecalcLayout();
        ResizeParentToFit();
  
}
窗口位置和大小又改变了,最后程序出来的窗口的位置和大小也不是我指定的
还有一点我注意到了就是他窗口的大小和位置和最近一次关闭时是一样,如果它是在注册表里保存了这些信息下一次启动窗口的时候再从注册表内读出来设置的话,我这样还有机会能指定初始化窗口的位置和大小吗?
在你的程序一次都没有运行的情况下,改 CMainFrame 的初始化函数改 cx cy 即可;
  -------------------------------------------------------------------------------------------------------------------
如果你已经运行过一次程序,改完 cx cy 之后,还需要清理一下注册表
HKCUsoftware[YourComp][YouApp]
再运行就 ok 了 
  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多