CAsyncSocket类怎么接收自定义消息

CAsyncSocket类如何接收自定义消息?
CAsyncSocket类如何接收自定义消息?有没有办法实现?

------解决方案--------------------
我用的WSAAsyncSelect模型,没用MFC的类。

#define UM_SOCK WM_USER+100

拦截自定义消息后的处理


C/C++ code
LRESULT CWinSockEx1Dlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
    int ret = 0;
    int err;
    CString strRecv;
    char strBuffer[255] = {'\0'};
    SOCKET hClientSocket;
    if( message==UM_SOCK )
    {
        SOCKET socketTemp = wParam;
        sockaddr_in addrMessage;
        WORD msg = LOWORD(lParam);
        int sizeAddrMsg = sizeof(sockaddr);
        switch(msg)
        {
        case FD_ACCEPT:
            hClientSocket = accept(m_hSocket,(sockaddr *)&addrMessage,&sizeAddrMsg);
            err = WSAGetLastError();
            if( err!=0 )
            {
                AfxMessageBox("服务端--接收客户端错误!!");
                break;
            }
            ret = ::WSAAsyncSelect(hClientSocket,this->GetSafeHwnd(),UM_SOCK,FD_READ|FD_WRITE|FD_CLOSE);
            if( SOCKET_ERROR==ret )
            {
                AfxMessageBox("服务端-设置客户端非阻塞错误!!");
                break;
            }
            CommClient client;
            client.sock = hClientSocket;
            client.sin = addrMessage;
            vecColl.push_back(client);
            RefreshSocketInTree();
            break;
        case FD_READ:
            ret = recv(socketTemp,strBuffer,sizeof(strBuffer)/sizeof(char),0);
            if( 0==ret || SOCKET_ERROR==ret )
            {
                AfxMessageBox("服务端--接收数据错误!!");
                break;
            }
            UpdateRecvTextBox(strBuffer);
            break;
        case FD_WRITE:
            GetDlgItem(IDC_Send)->EnableWindow(TRUE);
            SendOnLineClientList();
            break;
        case FD_CLOSE:
            closesocket(socketTemp);
            EraseVectorElement(socketTemp);
            SendOnLineClientList();
            break;
        }
    }
    
    return CDialog::WindowProc(message, wParam, lParam);
}