CALLBACK回调函数能作为C++的类中的成员函数嘛?

funboy88 funboy88 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
如下的一段程序是C写的,我需要用C++的OOP方法来实现
,那个EnumWindowsProc回调函数可写成C++类里的成员函数嘛?


typedef struct
{
  HWND hWnd;
  char cWinBuf[256];
}WINLIST;
WINLIST gWinList[256];
int giCountWin,j;

BOOL CALLBACK EnumWindowsProc( HWND hWnd, LPARAM lParam )
{
  char buffer[256];
  GetWindowText(hWnd, buffer, 256);
  if ( strlen(buffer) )
  {
    if (giCountWin < 256)
    {
      gWinList[ giCountWin].hWnd = hWnd;
      strcpy(gWinList[ giCountWin].cWinBuf,buffer);
      giCountWin ++;
    }
  }
  return TRUE;
}

void CloseSpedia()
{
  giCountWin = 0;
  EnumWindows( (WNDENUMPROC)EnumWindowsProc,0);
  for ( j = 0; j<giCountWin; j++)
  {
    if ( strcmp(gWinList[j].cWinBuf,"画笔") == 0 )
    {
      ::PostMessage( gWinList[j].hWnd,WM_CLOSE,0,0);
      break;
    }
  }
}
...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
funboy88
VC/MFC 16,550 成员 421,606 内容