关于 MFC 错误 1 error C2039: “GetCheck”: 不是“CWnd”的成员 解决方法

本文介绍了一种在C++中检查按钮状态的方法,通过强转类型并使用GetCheck()函数来判断按钮是否被选中。

加个强转即可:

if(((CButton*)(GetDlgItem(IDC_RADIO_NO)))->GetCheck())
{
	...
}
UINT CDialogNetwork::RecvThread(LPVOID pParam, int num) { CDialogNetwork* pThis = (CDialogNetwork*)pParam; char buf[4096]; // 设置套接字为非阻塞模式 u_long iMode = 1; ioctlsocket(pThis->mSocket[0], FIONBIO, &iMode); while (pThis->mBConnected[0] || pThis->mBConnected[1]) { fd_set readSet; FD_ZERO(&readSet); // 添加两个套接字到监控集合 if (pThis->mBConnected[0]) FD_SET(pThis->mSocket[0], &readSet); // 设置500ms超时 $t = 500ms$ timeval timeout = { 0, 500000}; // 使用select检测套接字可读状态 int res = select(0, &readSet, NULL, NULL, &timeout); if (res == SOCKET_ERROR) break; // 错误处理 if (res > 0 && FD_ISSET(pThis->mSocket[0], &readSet)) { int len = 0; if (pThis->mRadioTCP[0].GetCheck() == BST_CHECKED) { len = recv(pThis->mSocket[0], buf, sizeof(buf), 0); } else { sockaddr_in from; int fromLen = sizeof(from); len = recvfrom(pThis->mSocket[0], buf, sizeof(buf), 0, (sockaddr*)&from, &fromLen); } // 原有数据处理逻辑保持不变... if (len > 0) { CString displayText; if (pThis->mRadioHex[0].GetCheck() == BST_CHECKED) { for (int i = 0; i < len; i++) { CString hex; hex.Format(_T("%02X "), (BYTE)buf[i]); displayText += hex; } } else { displayText = CString(buf, len); } // 跨线程更新UI pThis->PostMessage(WM_DISPLAY_DATA, len, (LPARAM)new CString(displayText)); } else if (len == 0) { // TCP连接关闭 pThis->PostMessage(WM_CONNECTION_CLOSED); break; } else if (len == SOCKET_ERROR) { int err = WSAGetLastError(); if (err != WSAEWOULDBLOCK) { // 忽略非阻塞模式下的预期错误 pThis->PostMessage(WM_SOCKET_ERROR, err); break; } } } } return 0; } // 启动接收线程 AfxBeginThread(RecvThread, this);1>------ 已启动生成: 项目: Basic, 配置: Debug Win32 ------ 1>Basic.cpp 1>BasicDlg.cpp 1>CDialogNetwork.cpp 1>c:\users\administrator\desktop\basic\basic\basic\cdialognetwork.cpp(214): error C2665: “AfxBeginThread”: 2 个重载中没有一个可以转换所有参数类型
最新发布
10-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值