這個問題困擾我好幾天了,之前在網(wǎng)上搜索了,有如下解決方案,
1. 在CmainWindow的PrecreateWindow函數(shù)中對cs.x cs.y cs.cx cs.cy 等值進行設(shè)定即可。窗口生成的大小和位置根本不是我設(shè)定的想要的。 2. 在CmainWindow的OnCreate函數(shù)中調(diào)用SetWindowPos來設(shè)定窗口的位置和大小,嘗試之后,發(fā)現(xiàn)SetWindowPos是將窗口定位到了我想要的地方和指定的大小,但隨后調(diào)用了CRibbonTestView的OnInitialUpdate函數(shù) void CRibbonTestView::OnInitialUpdate() { CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); } 窗口位置和大小又改變了,最后程序出來的窗口的位置和大小也不是我指定的 還有一點我注意到了就是他窗口的大小和位置和最近一次關(guān)閉時是一樣,如果它是在注冊表里保存了這些信息下一次啟動窗口的時候再從注冊表內(nèi)讀出來設(shè)置的話,我這樣還有機會能指定初始化窗口的位置和大小嗎? 在你的程序一次都沒有運行的情況下,改 CMainFrame 的初始化函數(shù)改 cx cy 即可; ------------------------------------------------------------------------------------------------------------------- 如果你已經(jīng)運行過一次程序,改完 cx cy 之后,還需要清理一下注冊表 HKCUsoftware[YourComp][YouApp] 再運行就 ok 了 |
|
來自: Frank_Chia > 《.NET》