メッセージ処理するには?


ぼんぼん  2006-07-09 17:32:19  No: 62488

MFCでwinsock使って非同期通信のプログラムを作っています。

//Packet.h

#include <stdio.h>
#include <winsock2.h>

#define SM_EVENT WM_USER + 100
#define SM_GETHOST WM_USER + 101

class CPacket
{
protected:
        afx_msg BOOL WndProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
public:
  CPacket(void);
  ~CPacket(void);
              ・・・
}

//Packet.cpp

BOOL CPacket::WndProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
  switch(msg)
  {
     case SM_GETHOST:
    ・・・

           case SM_EVENT:
                ・・・
  }

  return 0;
}

メッセージが送られたら上記のような記述だけでは処理はできません。
特定のメッセージが送られてきたときに、WndProcを実行するようにどこかに登録する必要があるのでしょうか?
いままでDelphiを使っていたので、VC++、MFCはあまり詳しくないのですがご教授お願いします。
WindowsXP Visual Stadio Professional 2003


Blue  2006-07-09 21:40:44  No: 62489

参考にどうぞ
「ユーザー定義メッセージ(WM_USER)のメッセージマップ処理」
http://www.dinop.com/vc/usermessage.html


通りすがり  2006-07-11 05:01:33  No: 62490

パケットに対してイベントが発生したときに、メッセージを送信したいということでしょうか?
それなら、WSAAsyncSelect という関数があります。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加