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系列
主站蜘蛛池模板: 欧美黄网站免费观看| 99久久99这里只有免费的精品| 久久一本日韩精品中文字幕屁孩| 亚洲精品无码av中文字幕| 狠狠亚洲婷婷综合色香| 91黄视频在线观看| www.91在线播放| 国产精品视频a| 亚洲欧美日韩中文字幕在线一区| 九色91在线视频| 青青操国产| 91国内外精品自在线播放| 麻豆精品在线播放| 国产精品永久免费嫩草研究院| 久久夜色精品国产嚕嚕亚洲av| 亚洲精品人成网线在线 | 99热这里只有精品5| 无码aⅴ精品一区二区三区| 国产欧美日韩在线在线不卡视频| 中文字幕无码av专区久久| 九九精品在线观看| 国产精品刺激对白在线| 精品国产乱码久久久久久一区二区| 午夜色综合| 国产成人精品一区二区免费看京| 国产亚洲成AⅤ人片在线观看| 四虎国产精品永久一区| 成人福利在线免费观看| 国产视频你懂得| 伊人激情久久综合中文字幕| 亚洲有无码中文网| 中文字幕色站| 91午夜福利在线观看| 日本高清免费一本在线观看 | 亚洲成人在线网| 欧洲精品视频在线观看| a级毛片在线免费| 亚洲国产成人精品青青草原| 老汉色老汉首页a亚洲| 91精品国产91久无码网站| 国产精品中文免费福利| 色婷婷综合激情视频免费看| 欧美a√在线| 国产精品国产主播在线观看| 婷婷色在线视频| аⅴ资源中文在线天堂| 欧美性精品不卡在线观看| 99福利视频导航| 免费黄色国产视频| 中文字幕欧美日韩| 中文字幕资源站| 久久久久88色偷偷| 亚洲动漫h| 日韩在线播放欧美字幕| 狠狠躁天天躁夜夜躁婷婷| 国产小视频在线高清播放| 播五月综合| 亚洲第一国产综合| 国产一区二区免费播放| 国产精品自在线天天看片| 国产自视频| 国产激情在线视频| 国产正在播放| 在线高清亚洲精品二区| 亚洲综合精品香蕉久久网| 免费精品一区二区h| 亚洲精品久综合蜜| 99在线视频精品| 91网在线| AV老司机AV天堂| av在线无码浏览| 99热线精品大全在线观看| 激情在线网| 免费一级毛片不卡在线播放| 在线观看免费国产| 无码免费的亚洲视频| 久久综合成人| 久久久久久久久久国产精品| 国产一区二区三区在线观看视频 | 日韩精品无码免费一区二区三区 | 91青青草视频| 91精品视频播放|