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系列
主站蜘蛛池模板: 久久精品人妻中文视频| 无码内射中文字幕岛国片| 亚洲一区二区日韩欧美gif| 欧美在线伊人| 亚洲高清无码精品| www亚洲天堂| 九九热精品视频在线| 91 九色视频丝袜| 国产91丝袜在线播放动漫| 亚洲日本中文字幕乱码中文| 精品91在线| 无码AV动漫| AV无码无在线观看免费| 欧美日韩中文国产va另类| 国产一区二区色淫影院| 国产91小视频在线观看| 国产乱子伦精品视频| 熟妇人妻无乱码中文字幕真矢织江 | 夜夜爽免费视频| 蜜臀AV在线播放| 国产乱子伦一区二区=| 自拍偷拍欧美日韩| 欧美精品影院| 在线高清亚洲精品二区| 中文字幕在线播放不卡| 高清国产va日韩亚洲免费午夜电影| 2048国产精品原创综合在线| 福利在线一区| 人人澡人人爽欧美一区| 午夜爽爽视频| 国产免费黄| 国产va在线观看| 中文字幕伦视频| 亚洲精品亚洲人成在线| 欧美国产日产一区二区| 蜜桃视频一区二区三区| 免费一级毛片| 成人午夜久久| 国产欧美高清| 大香网伊人久久综合网2020| 国产精品中文免费福利| 97青青青国产在线播放| 老司机午夜精品网站在线观看| 午夜视频www| 在线观看免费黄色网址| 国产拍揄自揄精品视频网站| 欧美日韩中文国产va另类| av大片在线无码免费| 四虎在线观看视频高清无码| 国产男女XX00免费观看| 国产精欧美一区二区三区| 国产日韩久久久久无码精品| 国产成人免费视频精品一区二区| 亚洲AV无码不卡无码| 麻豆国产原创视频在线播放| 欧美一区二区啪啪| 40岁成熟女人牲交片免费| a亚洲视频| 日韩在线视频网| 亚洲欧美天堂网| 国产欧美日韩精品综合在线| www.国产福利| 久久精品波多野结衣| 99九九成人免费视频精品| 一本大道香蕉高清久久| 国产精选自拍| 亚洲人在线| 97免费在线观看视频| 人人91人人澡人人妻人人爽| 另类欧美日韩| 成人国产精品网站在线看| 玖玖精品视频在线观看| 免费人成又黄又爽的视频网站| 免费A∨中文乱码专区| 国产在线自乱拍播放| 久久国语对白| 91久久国产综合精品女同我| 亚洲乱码在线播放| 国产va视频| 99草精品视频| 日本久久久久久免费网络| 在线看片中文字幕|