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久久国产自偷自偷免费一区| 国产精品无码一二三视频| 天天做天天爱天天爽综合区| 成人亚洲视频| 亚洲日韩精品欧美中文字幕 | 亚洲无码视频喷水| 国产在线无码一区二区三区| 无码视频国产精品一区二区| 亚洲成a人片77777在线播放| 国产在线八区| 天天躁夜夜躁狠狠躁图片| 免费A级毛片无码免费视频| 999精品视频在线| 国产福利大秀91| 亚洲av无码专区久久蜜芽| 久久久精品国产SM调教网站| 国内精品久久久久久久久久影视| 亚洲精品无码不卡在线播放| 国产99精品视频| 黄色片中文字幕| 国产人碰人摸人爱免费视频| 亚洲欧洲日产国码无码av喷潮| 最新午夜男女福利片视频| 免费又爽又刺激高潮网址| 久久久久久国产精品mv| 午夜丁香婷婷| 不卡午夜视频| 国产成人凹凸视频在线| 精品三级网站| 色婷婷亚洲综合五月| 国内精品九九久久久精品| 亚洲aaa视频| 亚洲色欲色欲www在线观看| 色综合久久无码网| 91久久国产综合精品| 国产无套粉嫩白浆| av色爱 天堂网| 日本欧美视频在线观看| 色哟哟国产精品| 亚洲视频一区| 毛片基地美国正在播放亚洲| 久久午夜夜伦鲁鲁片无码免费| 久996视频精品免费观看| 亚洲无码电影| 国产chinese男男gay视频网| 国产jizz| 97se综合| 91区国产福利在线观看午夜| 亚洲人成网站日本片| 青青操视频在线| 暴力调教一区二区三区| 久久免费精品琪琪| 亚洲人成网站色7799在线播放| 亚洲大尺度在线| 视频二区国产精品职场同事| 国产99视频在线| 99热亚洲精品6码| 免费看美女自慰的网站| 国产精品永久久久久| 亚洲高清在线天堂精品| 无码中文字幕加勒比高清| 国产精品2| 毛片久久久| 国产91透明丝袜美腿在线| 久久综合九色综合97婷婷| 中文字幕久久亚洲一区| 欧美特黄一免在线观看| 伊人91在线| 人妻91无码色偷偷色噜噜噜| 天天婬欲婬香婬色婬视频播放| 久久77777| 中文字幕 日韩 欧美| 少妇精品网站| 综合社区亚洲熟妇p| 午夜视频日本| 欲色天天综合网| 亚洲成人在线网| 亚洲an第二区国产精品| 国产精品高清国产三级囯产AV| 狠狠色噜噜狠狠狠狠奇米777 |