日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MFC窗体“抽筋”

發(fā)布時(shí)間:2023/12/10 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC窗体“抽筋” 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

??????碰到的這個(gè)問題不知道用怎樣的詞去表達(dá)。能反映在屏幕上的就是MFC的窗體不能正常的進(jìn)入,雙擊圖標(biāo)后,窗體死在那邊,進(jìn)而程序掛掉。在掛掉之前,窗體是不停的閃爍,就像抽筋一樣。

產(chǎn)生問題的背景和條件:

1:用的SDI做框架

2:在CMainFrame中將Frame切割成三部分,是三部分。每部分對應(yīng)一個(gè)View

3:用GDI重新畫了整個(gè)窗體的邊框,包括標(biāo)題欄,MenuToolbar(不是不想用皮膚控件,沒辦法……)

?

產(chǎn)生問題的時(shí)間:

1:美工進(jìn)入后,給做的工具欄圖標(biāo),這樣需要調(diào)整默認(rèn)工具欄大小。

2:在寫代碼的機(jī)器上沒有任何問題,測試跑的筆記本上也沒有問題,在別人的機(jī)器上就開始抽筋。

?

問題解決:

1:開始認(rèn)為是自畫的TitleMenuToolbar有問題,全部弄成MFC自己的東西,不能解決,還是抽筋。

2:踢掉很多代碼,發(fā)現(xiàn),在CMainFrame::PreCreateWindow(CREATESTRUCT& cs)中,如果把有個(gè)風(fēng)格的設(shè)置去掉,在很多的機(jī)器上能用,但是還有機(jī)器不行。

3:仔細(xì)觀察抽筋的窗體,Toolbar不顯示。把ToolbarCreateEx()去掉,不抽了。或者把StatusBar去,掉也不抽。

4:開始考慮屏幕大小和Toolbar大小的問題。

5:經(jīng)過測試:

A:當(dāng)屏幕分辨率的Y值為768的時(shí)候,ToolbarHeight?[44,55]的時(shí)候,窗體抽筋。

B:當(dāng)屏幕分辨率的Y值為800的時(shí)候,ToolbarHeight?[49,60]的時(shí)候,窗體抽筋。

C:當(dāng)屏幕分辨率的Y值為1050的時(shí)候,ToolbarHeight?[86,97]的時(shí)候,窗體抽筋。

?????所以開始懷疑是微軟的bug。難道代碼要跟每個(gè)特定分辨率結(jié)合?還有為什么不能使用Height跨度是13?(在下面的最小的框架中也沒找到我們哪個(gè)地方有個(gè)13,這個(gè)值肯定不是我設(shè)定的)

另外,在PreCreateWindow中去掉那句話的實(shí)際作用是使整個(gè)Frame的大小變了幾個(gè)像素。

6:刪除98%代碼,只剩最簡單框架。挨個(gè)檢查代碼。

CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext *pContext)中,對Frame切割了兩次:

?????? m_wndSplitter1.SetColumnInfo();?

????? m_wndSplitter2.SetRowInfo();

試著去掉這兩行,這樣做當(dāng)時(shí)只是簡單的認(rèn)為初始化的時(shí)候很必要設(shè)定每個(gè)View的大小,因?yàn)樵谙旅娴?/span>OnSize()函數(shù)中有設(shè)定視圖大小的。

?????去掉了,不管什么值都沒有問題。

?????試著去掉其中一行,也是沒有問題。

?

總結(jié):

?????1:遺留系統(tǒng)總會(huì)給我們意想不到的驚喜。

?????2MFC太誘惑。

?????3:任何東西初始化都是必要的,但不要過于猛烈的初始化。(下面的OnSize函數(shù)是可以調(diào)整View的大小的)

?????4:與Bug作斗爭其樂無窮。

?

?????我們的生活需要力量。

轉(zhuǎn)載于:https://www.cnblogs.com/onthebox/archive/2009/02/15/1390854.html

總結(jié)

以上是生活随笔為你收集整理的MFC窗体“抽筋”的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。