【軟件介紹】
GUI 經(jīng)典名庫(kù)wxWidgets對(duì)于按鍵事件的處理,和同類(lèi)產(chǎn)品相比,有個(gè)小的、但很折磨人的不同之處:如果焦點(diǎn)位于某個(gè)控件(子窗體)之上,那么當(dāng)時(shí)發(fā)生的 wxKeyEvent事件只發(fā)給那個(gè)子窗體,而主窗體攔截不到,也無(wú)法處理,這在一些時(shí)候帶來(lái)了很大麻煩。我堅(jiān)信這個(gè)功能決不是因?yàn)闆](méi)有必要而被 wxWidgets刻意取消的,這不是“你應(yīng)該修改程序邏輯”的問(wèn)題,因?yàn)閺那坝眠^(guò)的VB和Delphi都提供了這種功能,就是主窗體有一個(gè) KeyPreview屬性,設(shè)置為真之后,主窗體本身就可以先一步得到任何控件上的按鍵事件,進(jìn)行處理。如果安裝wxPack就能用,那該是更好的事。他們首先要體驗(yàn)的,是用wxWidgets做出程序來(lái),而不是在編譯wxWidgets中遇上一堆問(wèn)題,然后就沒(méi)有然后了。
用最新的wxPack,安裝了wxWidgets2.8.12,觀察庫(kù)文件,確實(shí)該有的都有了。用Code::Blocks12.11中wxWidgets2.8.x向?qū)ё龀鰞蓚€(gè)測(cè)試的程序,卻都在運(yùn)行時(shí)發(fā)生了內(nèi)存溢出的問(wèn)題。分析原因,應(yīng)該是GCC版本問(wèn)題。wxPack安裝的wxWidgets2.8.12是用GCC4.4.1編譯的,而我的CodeBlocks12.11中用GCC4.7.1,溢出不意外。這一點(diǎn),有網(wǎng)友給出評(píng)論,“不用wxpack是對(duì)的,wxPack is no longer recommended for use, as it is built with a much older version of GCC.”
下載、編譯wxWidgets3.0.0,已經(jīng)不是什么問(wèn)題(見(jiàn)前文),只編譯了用于生成Debug目標(biāo)文件版本庫(kù)文件。
但是用Code::Blocks在編出程序時(shí),卻出了問(wèn)題。
先在Code::Blocks中建立wxWidgets Project,用向?qū)д鰝€(gè)程序來(lái)玩,這是剛開(kāi)始能做的事。但是,Code::Blocks12.11中,最高版本只能建立wxWidgets2.8.x版的應(yīng)用,編譯時(shí),總找不到libwxmsw28ud.a等文件。難怪,這里只有l(wèi)ibwxmsw30ud.a。該在Code::Blocks中能夠修改設(shè)置,不想找了。
建立,wxWidgets3.0.0中的應(yīng)用,成了需要做的事情。實(shí)際上,要運(yùn)行書(shū)中和網(wǎng)絡(luò)中找到的案例,不能靠向?qū)А?

![Wxpack 2.8.12.1 官方版[網(wǎng)盤(pán)資源]](/up/1407/201471895424.jpg)
![Wxpack 2.8.12.1 官方版[網(wǎng)盤(pán)資源]圖1](/up/1407/201471895434875970.png)
![Wxpack 2.8.12.1 官方版[網(wǎng)盤(pán)資源]圖2](/up/1407/201471895435875970.jpg)
![Wxpack 2.8.12.1 官方版[網(wǎng)盤(pán)資源]圖3](/up/1407/201471895435552640.jpg)































