簡體   English   中英

從Win32包裝器WndProc的另一個類中調用函數

[英]Call function in another class from Win32 wrapper WndProc

我有一個具有正常運行的WndProc的win32包裝器類(我使用靜態wndproc將消息轉發到WndProc成員函數)。

我還有另一個應用程序類,它創建了我的win32包裝器類的實例。

我希望應用程序類的用戶能夠編寫自己的表示事件的函數,例如OnMouseClick()或OnMouseMove(),但是為了使其正常工作,我需要從win32包裝器中調用事件函數類的Wndproc(不了解應用程序類)。

最好的方法是什么? 我是否應該將指向每個事件函數的指針發送到Win32包裝器類,並通過指針進行調用? 或者,還有更好的方法?

您的類的結構及其目的尚不清楚。 盡管如此,包裝類的典型推薦結構如下:

class BaseClass
{
public:
    virtual void OnMouseClick(...) { }   // Empty body
    virtual void OnMouseMove(...) { }   // Empty body
};

class AppClass : public BaseClass
{
public:
    void OnMouseClick(...) { AppCode }
    void OnMouseMove(...) { AppCode }
};

基類在其靜態WndProc處理程序中接收Windows事件時,將調用虛擬方法。 這觸發了應用程序代碼的執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM