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
参考にどうぞ
「ユーザー定義メッセージ(WM_USER)のメッセージマップ処理」
http://www.dinop.com/vc/usermessage.html
パケットに対してイベントが発生したときに、メッセージを送信したいということでしょうか?
それなら、WSAAsyncSelect という関数があります。
ツイート | ![]() |