Qt ActiveX控制項

2021-06-03 12:16:05 字數 947 閱讀 1453

activex控制項類繼承自qaxbindable  注意點:

1、 介面函式必須為public slots,且函式返回值不能寫hresult

實現乙個控制項覆蓋顯示在另乙個控制項上,需要先建立底層的控制項,再建立上層的控制項,這樣通過上層控制項的show或hide能實現顯示或隱藏的功能。別人說layout新增控制項的順序也可以影響這個實現,沒有論證。

設定乙個定時器,當滑鼠移動時,控制條顯示並啟動定時器,當定時器timeout()時隱藏控制條。

當滑鼠移動到控制條上時,此時控制條應該不再隱藏。qt父子窗體訊息傳遞是當子窗體不響應其上產生的訊息時,此訊息會自動傳遞給父窗體,但此處控制條控制項設定了setattribute(qt::wa_nomousepropagation);即不往上傳遞滑鼠訊息,所以在主視窗中新增eventfilter來處理控制條控制項的mousemove訊息。

2、 雙擊全屏的實現:

在類中設定乙個變數作為是否全屏的標記,當全屏時,還需記錄當前窗體的rect,再呼叫

setwindowflags(qt::dialog);

showfullscreen();

實現全屏,退出全屏時,

setwindowflags(qt::subwindow);

shownormal();

setfocus();  //設定鍵盤焦點,保證退出全屏後能立即響應鍵盤訊息

再setgeometry(),此時geometry設為剛才記錄的rect,即還原了窗體。

3、開始裡面寫了些快捷鍵是用qshortcut來實現的,但發現在網頁上時並不能響應,以為是activex控制項快捷鍵須由鉤子來實現,後來試了下keypressevent()發現可以在網頁中響應(必須在初始化窗體物件時呼叫setfocuspolicy函式),深層緣由有待挖掘。

今天出現個問題    控制項註冊不成功  dllregisterserver失敗 返回0xc0000005  發現是路徑中帶有括號  留記

使用Qt ActiveX生成Ocx 避坑指南(一)

最近做專案用qt生成ocx供mfc呼叫,經歷坎坷,問題不斷。這下面詳細給出qt生成ocx的避坑指南,本人使用的是qt5.9 vs2015 用vs生成比較簡單,vs上裝上qt的外掛程式,然後新建專案 選擇qt5 projects 選擇最後乙個activeqt server,然後就可以生成如下圖 qt使...

C 控制項 MenuStrip控制項(選單控制項)

一 概述 選單通過存放按照一般主題分組的命令將功能公開給使用者。menustrip 控制項是此版本的 visual studio 和 net framework 中的新功能。使用該控制項,可以輕鬆建立 microsoft office 中那樣的選單。menustrip 控制項支援多文件介面 mdi ...

隱藏控制項 HiddenField控制項

hiddenfield 控制項hiddenfield 控制項顧名思義就是隱藏輸入框的伺服器控制項 它能讓你儲存那些不需要顯示在頁面上的且對安全性要求不高的資料。也許這個時候應該有這麼乙個疑問,為什麼有了 viewstate session 和cookie 等狀態儲存機制,還需要用起 hiddenfi...