[問題] VC++如何改變視窗大小

看板C_and_CPP (C/C++)作者 (小可)時間14年前 (2012/03/05 15:08), 編輯推噓3(3017)
留言20則, 3人參與, 最新討論串1/1
我是在Win7安裝Visual C++ 2005 (安裝時就跑出支援的問題,不知道是不是這原因..) 因為小弟我是視窗設計的初學者 (consol的OK) 原本只是單純想用程式碼在執行時控制視窗的大小 看了很多網頁大概按照 http://msdn.microsoft.com/zh-tw/library/cc451484(v=vs.71).aspx 應該就沒問題 但放哪都有錯誤訊息 (放123.Dlg.cpp後也不對,程式本身也找不到PreCreateWindow) 後來在 "BOOL CMy123App::InitInstance()" 裡放上 m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED); 讓視窗最大化 出現記憶體錯誤訊息 "讀取位置 0x00000020 時發生存取違規" 請問要怎麼改呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.105.178

03/05 17:36, , 1F
你的MFC專案是Dialog還是SDI/MDI的?
03/05 17:36, 1F

03/05 17:41, , 2F
Dialog的話,在OnInitDialog裡加上
03/05 17:41, 2F

03/05 17:41, , 3F
ShowWindow(SW_SHOWMAXIMIZED);就行了
03/05 17:41, 3F

03/05 18:09, , 4F
感謝!視窗放最大的沒問題了,不過主要是想控制視窗大小
03/05 18:09, 4F

03/05 18:16, , 5F
SetWindowPos(xxx, HWND_TOPMOST,0,0,0,0,SWP_NOMOVE||
03/05 18:16, 5F

03/05 18:17, , 6F
SWP_NOSIZE);
03/05 18:17, 6F

03/05 18:18, , 7F
第一個參數好像是填指標 我填123、CMy123..都不對
03/05 18:18, 7F

03/05 18:19, , 8F
她如何知道是對那視窗做修改呢?
03/05 18:19, 8F

03/05 18:20, , 9F
ps:我寫在 BOOL CMy123App::InitInstance() 裡
03/05 18:20, 9F

03/05 18:39, , 10F
我在Butten裡寫OK,第一個參數用NULL(最後改SHOWWINDOW
03/05 18:39, 10F

03/05 18:40, , 11F
只差改成在程式剛執行時就改大小了 @@
03/05 18:40, 11F

03/05 23:40, , 12F
MoveWindow也可以用來改變大小,比較簡單但沒彈性
03/05 23:40, 12F

03/06 09:42, , 13F
寫在InitDialog裡,InitInstance時dialog都還沒建立
03/06 09:42, 13F

03/06 09:43, , 14F
你要怎麼對不存在的東西改變它的屬性呢?
03/06 09:43, 14F

03/06 09:44, , 15F
用SetWindowPlacement也可以
03/06 09:44, 15F

03/06 09:54, , 16F
我發現你似乎是用Doc/View?上面講的是dialog的..
03/06 09:54, 16F

03/06 09:57, , 17F
就算是Doc/View,在InitInstance時做SetWindowPos也行阿.
03/06 09:57, 17F

03/09 09:34, , 18F
感謝樓上兩位的回答 我寫在CMy123Dlg::OnInitDialog()
03/09 09:34, 18F

03/09 09:35, , 19F
就ok囉!! 果然就像樓上說的那邊都是建立前的初始設定!!
03/09 09:35, 19F

03/09 09:36, , 20F
我的好像是dialog 因為會有對話視窗
03/09 09:36, 20F
文章代碼(AID): #1FL6PffW (C_and_CPP)
文章代碼(AID): #1FL6PffW (C_and_CPP)