DialogBoxParam 参数使用问题

lxlittle 2008-10-09 09:04:05

DialogBoxParam(hInstance,1340,hWinMain,(DLGPROC)ShowProc,hsocket);
//用以上代码把hsocket代码传入对话框的WM_INITDIALOG
case WM_INITDIALOG:
s=hsocket;//这里显示hsocket的值正确
case WM_COMMAND:
send(s,buff,len,0)//这里的s值就是不正确的了,就是说此S非彼S,哪位高手能告诉我,怎么使用DialogBoxParam的Lparam的值

...全文
284 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlepboy 2008-10-15
  • 打赏
  • 举报
回复
首先,你的switch case怎么没有break,不太好吧。
第二,你说WM_COMMAND分支的s有问题,是不是此时还没有进过WM_INITDIALOG分支,s还没有被赋值?
如果不是以上两个问题,可能就如2楼所说,你的lParam传的或者取的有问题。
miao120550 2008-10-15
  • 打赏
  • 举报
回复
看看MSDN上的解释。
The DialogBoxParam function creates a modal dialog box from a dialog box template resource. Before displaying the dialog box, the function passes an application-defined value to the dialog box procedure as the lParam parameter of the WM_INITDIALOG message. An application can use this value to initialize dialog box controls.
你这里的用法可能有问题。hsocket是要作为对话框的回调函数里截获的WM_INITDIALOG 的lParam 参数,不明白你怎么直接就赋值了。应该这样来

LRESULT CALLBACK ShowProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
SOCKET s;
switch(uMsg)
{
case WM_INITDIALOG:
s=(SOCKET)lParam;
case WM_COMMAND:
send(s,buff,len,0);
}
}

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧