在VC中,讓動態建立的ActiveX控制元件響應Windows訊息。 (轉)
當我們透過CWnd::CreateControl()動態建立時,訊息並不會被髮送給我們的由CWnd派生得控制元件類。例如,即使我們為WM_KILLFOCUS訊息建立了控制程式碼,這個控制程式碼也是不會被的。(不信你試試 :))
引起這個問題的原因時,CWnd::CreateControl()並不會使我控制元件的HWND子類化。
知道了原因,要解決問題就不難了。我們只要在控制元件建立之後使它子類化就行了。透過一下步驟可以實現:
1.當然是新增控制元件啦,先生成控制元件的C++包容類。
2.再要建立控制元件的類中宣告成員變數,此成員變數是包容類的指標。
3.在包容類的頭中新增:
//{{AFX_MSG(CMyClass)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
CMyClass是實際的類名。
4.在包容類的CPP檔案的#include段下面新增:
BEGIN_MESSAGE_MAP(CMyClass, CWnd)
//{{AFX_MSG_MAP(CMyClass)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
5.刪除工程目錄下的.clw檔案,在工程中開啟ClassWizard,先選yes,在選Add All。
6.現在你就可以使用ClassWizard為控制元件包容類新增訊息對映和處理了。
完成這些修改後,你必須建立控制元件並且使它子類化,下面是個例子:
void CSDIApp2View::OnInitialUpdate()
{
CView::OnInitialUpdate();
m_pFlexGrid = new CMlexGrid;
CRect rect;
GetClientRect(&rect);
m_pFlexGrid->Create(NULL, WS_CHILD | WS_VISIBLE, rect, this, IDC_FLEXGRID);
HWND hWnd = m_pFlexGrid->Detach();
m_pFlexGrid->SubclassWindow(hWnd);
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1007385/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MFC vc++ 中CTreeContrl如何自定義實現滑鼠單擊或雙擊響應事件 ,即重寫類似於控制元件的響應事件或訊息C++事件控制元件
- VC2008 Windows Media Player控制元件的使用技巧(三)Windows控制元件
- MFC DLL如何響應PreTranslateMessage訊息
- OCX 控制元件主動傳送訊息給 MFC 視窗訊息控制元件
- iOS探索 動態方法解析和訊息轉發機制iOS
- Protobuf_動態訊息-反射反射
- Qt開發Activex筆記(二):Qt呼叫Qt開發的Activex控制元件QT筆記控制元件
- iOS探索:Runtime之訊息轉發及動態新增方法iOS
- win10activex控制元件怎麼安裝_win10如何安裝activex控制元件Win10控制元件
- Objective-C中的訊息轉發Object
- 在 Windows 上搭建 MQTT 訊息伺服器WindowsMQQT伺服器
- 用程式碼理解 ObjC 中的傳送訊息和訊息轉發OBJ
- 兩大訊息爆出,幣圈正在響應全球“去美元化”行動!
- Redis 中如何讓訊息永不過期Redis
- Python中動態類和動態方法的建立與呼叫Python
- Runtime底層原理探究(三) --- 訊息轉發機制(動態方法解析)
- windows10系統下IE瀏覽器怎麼開啟activex控制元件Windows瀏覽器控制元件
- 用C#建立ActiveX問題C#
- Windows訊息鉤取Windows
- windows 訊息斷點Windows斷點
- 在Apple Watch上如何讓你的圖片響應式APP
- 簡單建立VC + DDK的驅動開發環境開發環境
- 「譯」有限狀態機在 CSS 動畫中的應用CSS動畫
- 訊息同步 —— 在 Airbnb 我們是怎樣擴充套件移動訊息的AI套件
- RabbitMq中的訊息應答與持久化MQ持久化
- windows應急響應(二)Windows
- 好訊息!微軟已將Windows子系統轉為win11應用程式微軟Windows
- 00024.06 反射:反射的應用2:動態建立物件反射物件
- MFC---ActiveX控制元件程式設計基礎控制元件程式設計
- Socket.D 基於訊息的響應式應用層網路協議協議
- 玩轉控制元件:GDI+動態繪製流程圖控制元件流程圖
- 讓delphi程式不受WINDOWS日期格式的影響Windows
- 如何在iView中動態建立表格View
- 中興&Omdia:5G訊息推動生態系統創新
- 【應急響應】Windows應急響應入門手冊Windows
- iOS 訊息轉發iOS
- Windows應急響應小結Windows
- RocksDB 在 vivo 訊息推送系統中的實踐
- Linux中如何檢視日誌命令中的響應狀態?Linux