999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Pro/E二次開發中Edit Control控件中文輸入問題的解決方案

2011-06-23 03:02:10黃海英穆立茂
裝備制造技術 2011年12期
關鍵詞:二次開發解決方案模態

張 靖,黃海英,穆立茂

(解放軍軍械工程學院,河北 石家莊 050003)

Pro/TOOLKIT開發工具包,是Pro/ENGINEER(簡稱Pro/E)提供的實現參數化設計的應用程序接口(API)。其封裝了許多針對Pro/E底層資源調用的庫函數與頭文件,借助第三方編譯環境(如VC等)進行調試,可以開發出能夠與Pro/E的無縫連接的應用程序[1]。

對話框是實現人機交互的重要通道。目前對話框的開發方式有兩種:UI對話框和MFC對話框。雖然利用Pro/TOOLKIT提供的UI對話框與Pro/E界面風格相一致,但不足之處是用文本文件的形式定義對話框,不能直觀地反映界面的布局。而MFC是VC++程序的一個重要軟件資源,使用MFC可以充分利用VC++開發環境的先進技術的工具,實現程序界面的可視化設計,與UI對話框相比,使用MFC的對話框界面布局上更為容易,設計、修改和調試更為方便。

1 問題的提出

MFC對話框的顯示方式分為兩種:模態對話框和非模態對話框。

模態對話框(Mode):在模態對話框激活狀態下,不允許用戶再選擇或激活其他窗口,只有在模態對話框關閉之后,用戶才能對其他窗口進行操作。模態對話框的設計比較簡單,但在Pro/E中使用有些不配套。

非模態對話框(Modeless):在非模態對話框激活狀態下,用戶可以激活其他窗口,激活其他窗口之后,非模態對話框處于非活動狀態;只要用鼠標重新選中非模態對話框,就可以激活它。

非模態對話框使用更為靈活。模態對話框激活時,不能使用其他窗口,這與Pro/E的慣例不相符,從而使得有些功能無法實現,比如查詢長度時需要和主界面交互數據。因此,一般情況下,我們使用MFC的非模態對話框。

編輯控件(Edit Control)是對話框實現鍵盤輸入的重要的人機交互接口。通過編輯控件,用戶可以輸入文本信息,并將輸入信息轉換為各種類型的數據。然而由于Pro/E對中文的支持得不夠完善,在使用Edit Control控件編程過程中,當此控件位于非模態對話框中時不能輸入中文。

針對這個問題,在《Pro/ENGINEER二次開發技術基礎》著作中提出了一種解決方案[3],就是建立模態對話框,然后在模態對話框中使用Edit Control控件,這樣就可以接收中文輸入了,也就是通過模態對話框進行中轉。然而這種方案存在兩方面不足:

一是與Pro/E軟件的整體風格不一致,其軟件的風格是絕大多數對話框使用非模態對話框。

二是此模態對話框不是純粹的模態對話框。雖然采用的是模態對話框,但Pro/E主窗口仍然能接收到鼠標消息。比如:在打開模態對話框的環境下,如果不小心單擊了Pro/E主窗口上的“新建”按鈕,雖然“新建”功能不會立即執行,但是當退出模態對話框后,“新建”功能會馬上實現,也就是會立刻彈出一個“新建”對話框。所以在Pro/E環境下基于MFC開發的模態對話框,不是真正意義上的模態對話框。因此這種方案還不夠理想,下面提供另外一種解決方案。

2 解決方案

首先進行問題分析,出現在非模態對話框中Edit Control控件不能接收中文的這種情況的原因是:輸入的文本先被Pro/E翻譯,然后才傳到對話框資源中,在這個轉換過程中,就會出現亂碼。

因為使用的是非模態對話框,而使用模態對話框就不會出現這個問題。因為非模態對話框和Pro/E的主對話框是同時進行工作的,這個時候如果響應一個消息,是Pro/E的主窗口首先響應這個消息,然后經過翻譯,才傳到開發者設計的對話框當中,所以是在這個轉換過程中出現了BUG,造成顯示結果是亂碼。

下面就提供一種解決方案:

(1)第一步。為Edit Control控件的EN_SETFOCUS消息添加消息處理函數,代碼如下:

(2)第二步。為Edit Control控件的EN_KILLFOCUS消息添加消息處理函數,代碼如下:

當點擊Edit Control控件時,也就是輸入的焦點放到了Edit Control控件上面,這時就產生一次EN_SETFOCUS消息,在這個消息處理函數中,建立一個新的消息循環,這個消息循環是不經過Pro/E主程序的當前的消息循環,這時候輸入的數據直接進入對話框當中,不經過再進行翻譯。

當離開Edit Control控件結束了輸入操作,這時就產生一次失去焦點EN_KILLFOCUS消息,在這個消息處理函數中,使用PosTQuiTMessage(0)命令,結束開發人員建立的消息循環。也就是當點擊開始輸入的時候和退出輸入的時候,這之間建立了一個消息循環,使得輸入的文字直接傳遞到對話框當中。圖1是此解決方案在齒輪參數化設計程序中的應用實例(實例是使用Pro/E 4.0版本搭配Visual Studio 2008進行開發的)。

圖1 Pro/E參數化設計生成內齒輪界面

3 結束語

Pro/TOOLKIT是Pro/E系統中功能強大的二次開發工具,使用Pro/TOOLKIT進行專業化應用程序設計、創建和調試是一種最佳的選擇。此文針對Pro/E的一個BUG提出了一種有效的解決方法,為開發過程中遇到的Edit Control控件不能錄入中文的問題提供了一種新思路。

[1]李世國.Pro/Toolkit程序設計[M].北京:機械工業出版社,2003.

[2]Parametric Technology Corporation.Prop ToolkiTUser’s Guide[M].USA:Parametric Technology Corporation,2004.

[3]吳立軍.Pro/ENGINEER二次開發技術基礎[M].北京:電子工業出版社,2006.

猜你喜歡
二次開發解決方案模態
解決方案和折中方案
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
簡潔又輕松的Soundbar環繞聲解決方案
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
西門子Easy Screen對倒棱機床界面二次開發
國內多模態教學研究回顧與展望
4G LTE室內覆蓋解決方案探討
基于HHT和Prony算法的電力系統低頻振蕩模態識別
由單個模態構造對稱簡支梁的抗彎剛度
計算物理(2014年2期)2014-03-11 17:01:39
Moxa 802.11n WLAN解決方案AWK-1131A系列
主站蜘蛛池模板: 国产精品福利在线观看无码卡| 狠狠亚洲五月天| 人妻精品久久无码区| 亚洲综合色在线| 国产在线一区视频| 国产精品区视频中文字幕| 亚洲成网站| 女人18毛片久久| 91久久偷偷做嫩草影院| 色综合狠狠操| 国产成人亚洲无码淙合青草| 91精品在线视频观看| 国产成人精彩在线视频50| 亚洲欧美精品日韩欧美| 国产女人18毛片水真多1| 国产精选小视频在线观看| 国国产a国产片免费麻豆| 亚洲福利视频网址| 日本福利视频网站| 午夜免费视频网站| 亚洲日本一本dvd高清| 男女男精品视频| 日本午夜视频在线观看| 三上悠亚精品二区在线观看| 亚洲欧美在线看片AI| 午夜久久影院| 国产精品极品美女自在线看免费一区二区 | 伊人天堂网| 欧美一区精品| 欧美在线三级| 欧美成人一级| 全裸无码专区| 亚洲无码高清一区二区| 国产精品永久免费嫩草研究院| 国产自视频| 国产正在播放| 九九九久久国产精品| 国产精品制服| 日本免费a视频| 精品欧美一区二区三区久久久| 青青草原偷拍视频| 无码专区国产精品第一页| 在线a视频免费观看| 美女一级毛片无遮挡内谢| av一区二区三区高清久久| 日本不卡视频在线| 成人无码一区二区三区视频在线观看| 激情综合五月网| 日韩精品无码一级毛片免费| 九色在线视频导航91| 久久精品无码国产一区二区三区 | 精品国产成人国产在线| 91国内视频在线观看| 国产一级无码不卡视频| 亚洲国产91人成在线| 美女无遮挡拍拍拍免费视频| av在线5g无码天天| 日韩午夜福利在线观看| 伊人久久久久久久| 免费人欧美成又黄又爽的视频| 中文字幕永久在线观看| 亚洲国产综合第一精品小说| 在线观看免费黄色网址| 日日噜噜夜夜狠狠视频| 精品久久综合1区2区3区激情| 亚洲IV视频免费在线光看| 中文字幕无码av专区久久| 国产大片喷水在线在线视频 | 日韩区欧美国产区在线观看| 高清久久精品亚洲日韩Av| 国产日韩欧美精品区性色| 亚洲综合18p| 国产在线第二页| 激情综合五月网| 亚洲色图另类| 四虎永久免费网站| 日韩亚洲综合在线| 波多野结衣一区二区三区AV| 好吊色国产欧美日韩免费观看| a亚洲视频| Aⅴ无码专区在线观看| 成人看片欧美一区二区|