日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DELPHI 开发的 OCX 控件在 MFC 程序中编辑框快捷键不好使的解决

發布時間:2024/1/17 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DELPHI 开发的 OCX 控件在 MFC 程序中编辑框快捷键不好使的解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

公司一個大型的項目中使用了 DELPHI 來開發 OCX 控件做數據庫的管理,但是GIS圖形系統使用 MFC 開發,最后將 OCX 嵌入到 MFC 程序中作為一個完整的系統交付用戶使用,但是在使用過程中發現一個問題:當啟動 DELPHI 開發的管理程序使用 OCX 時, "剪貼、復制、黏貼"的快捷鍵都是好使的,但是當 MFC 程序加載 OCX 后,OCX 中的文本框只能使用右鍵菜單來完成這些事情,使用快捷鍵毫無反應(當然對于 MFC 中的文本框是好使,即使沒有設置加速鍵表),幾經嘗試,最終靈光一閃突然想到了一個簡單的方法,經過測試該問題已經解決,代碼如下;

BOOL?CAppEntry::PreTranslateMessage(MSG*?pMsg)
{
????
int?Key?=?pMsg->wParam?;?UINT?Msg?=?pMsg->message?;
????
if(?Msg?==?WM_KEYDOWN?&&?::GetFocus(?)?&&?::GetAsyncKeyState(?VK_CONTROL?)?)
????{
????????
if(?Key?==?'Z'?){?::SendMessage(?::GetFocus(?)?,?WM_UNDO?,?0?,?0?);?return?TRUE;?}
????????
if(?Key?==?'X'?){?::SendMessage(?::GetFocus(?)?,?WM_CUT??,?0?,?0?);?return?TRUE;?}
????????
if(?Key?==?'C'?){?::SendMessage(?::GetFocus(?)?,?WM_COPY?,?0?,?0?);?return?TRUE;?}
????????
if(?Key?==?'V'?){?::SendMessage(?::GetFocus(?)?,?WM_PASTE,?0?,?0?);?return?TRUE;?}
????}

????
return?CWinApp::PreTranslateMessage(pMsg);
}

需要注意的是:在 WM_KEYDOWN 消息中的字符都是大寫的,小寫字母是在 WM_CHAR 中結合 CAPS LOCK 和 SHIFT 按鍵的狀態轉換出來的,所以上面代碼中的按鍵判斷只需要判斷大寫字母即可(實際情況中小寫字母是不會進來的)

?

轉載于:https://www.cnblogs.com/WonKerr/archive/2009/09/11/MFC_OCX_SHORTCUT.html

總結

以上是生活随笔為你收集整理的DELPHI 开发的 OCX 控件在 MFC 程序中编辑框快捷键不好使的解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。