16,551
社区成员
发帖
与我相关
我的任务
分享
void TestProc(void* lpParam, DWORD (*lpCallBackFunc)(void*));
DWORD CallBackFunc(void* lpParam);
LRESULT CDlgAlertInfoSet::OnFinishGettingRules(WPARAM wParma, LPARAM lParam)
{
......
return 0;
}void CDlgAlertInfoSet::GetIntelAlertRules(char* ruleName, unsigned char* ruleId, int isEnabled)
{
......
if (m_intelAlertRules.size() == m_nIntelAlertRuleNum)
{
SendMessage(WM_GETRULES_FINISH,0,0);//发消息
}
......
{void CDlgAlertInfoSet::GetRuleInfoAddrProc(void* userData, char* ruleName, unsigned char* ruleId, int isEnabled)
{
CDlgAlertInfoSet *dlg = (CDlgAlertInfoSet *)userData;//数据类型的强制转换
dlg->GetIntelAlertRules(ruleName, ruleId, isEnabled);//通过转换得来的指针变量来访问CDlgAlertInfoSet类的成员函数GetIntelAlertRules()
}class CDlgAlertInfoSet : public CDialog
{
......
public:
static void GetRuleInfoAddrProc(void* userData, char* ruleName, unsigned char* ruleId, int isEnabled);//将回调函数声明为类的静态函数,userData参数对应要传入的要使用的变量所在的类对象
......
}
LRESULT SendMessage(
HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam
);