[英]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.