我在QQ桌球游戏的上层建立了一个窗口,当在我建的窗口上按下鼠标左键,收到WM_LBUTTONDOWN消息时
便关闭这个窗口,这时游戏窗口便成为最上层的窗口,为何此时再松开鼠标左键时,
QQ游戏窗口收不到WM_LBUTTONUP这个消息?如果游戏窗口收到,它肯定会响应,因为我把这个消息::PostMessage给它时它是响应的
便关闭这个窗口,这时游戏窗口便成为最上层的窗口,为何此时再松开鼠标左键时,
QQ游戏窗口收不到WM_LBUTTONUP这个消息?如果游戏窗口收到,它肯定会响应,因为我把这个消息::PostMessage给它时它是响应的
解决方案 »
- 鼠标移到某图标上面,会弹出一个小窗口显示解释性文字,这个功能如何实现?
- 一个SendMessage最后一个坐标参数的问题
- vc++ 2005 類型問題char[100] to LPCTSTR
- 如何获取Tree上所有节点的内容?急!
- 求问如何搭建环境学习TCP/IP?
- 怎样在界面上导入图片????????????????????散分ing
- wsprintf的问题~~简单,但是奇怪~
- 有谁在vc下用中间件 ACE/TAO吗?
- 为何WORKSPACE的CLASS VIEW资源无法显示?
- 关于LoadImage()函数
- 查了半天也没明白OLE、COM、ActiveX 是怎么回事
- vs2010工程可以转换vc6.0吗?
最好自己PostMessage,这样可以控制
只是个人猜测啊!
我在QQ桌球的上层窗口上复制了QQ桌球的dc,在上面进行瞄准,用户按下左键时关闭窗口,我在窗口关闭之前把WM_LBUTONDOWN PostMessage给QQ桌球窗口,这时用户应该只需要松开左键就可以击球了,但是这个消息QQ桌球窗口收不到,而且我的窗口已经关闭了,也收不到这个消息。我现在的解决方案是WM_LBUTTONDOWN时把自己的窗口MoveWindow (0,0,0,0),隐藏起来,并且SetCapture,收到WM_LBUTTONUP的时候PostMessage给QQ桌球窗口。
但这样做还有个小问题:隐藏窗口后,光标不能正常QQ桌球的光标,移动一下鼠标才能正常显示。这个能不能通过给窗口发个消息的方法解决?
我新手 在这现请教各位高手,关于手机群发信息软件的问题
想自制一个用自己的手机数据线连接电脑的群发短信的软件,我在网上搜了一个SmsTest测试程序,单个人发可以,不知道如何群发?怎样修改我的代码。先谢谢各位前辈了!
发送代码如下:
void CSenddlg::OnSendOk()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
CEdit* strContent = (CEdit*)GetDlgItem(IDC_SEND_EDIT);
strContent->GetWindowText(m_strContent);
m_strNumber.GetWindowText(strNumber);
if(strNumber.IsEmpty ()||strNumber.GetLength() < 11)
{
AfxMessageBox("请输入正确的号码!");
m_strNumber.SetFocus();
m_strNumber.SetEditSel(-1, 0);
return;
}
// 检查短消息内容是否空,或者超长
CString strUnicode;
WCHAR wchar[1024];
int nCount = ::MultiByteToWideChar(CP_ACP, 0, m_strContent, -1, wchar, 1024);
if(nCount <= 1)
{
AfxMessageBox("请输入消息内容!");
strContent->SetFocus();
strContent->SetSel(-1, 0);
return;
}
else if(nCount > 70) // 我们决定全部用UCS2编码,最大70个字符(半角/全角)
{
AfxMessageBox("消息内容太长,无法发送!");
strContent->SetFocus();
strContent->SetSel(-1, 0);
return;
} if(AfxMessageBox("确定发送吗?", MB_YESNO) == IDYES)
{
SM_PARAM SmParam;
TRACE("State=SmParam\n");
memset(&SmParam, 0, sizeof(SM_PARAM));
// 去掉号码前的"+"
if(m_strSmsc[0] == '+') m_strSmsc = m_strSmsc.Mid(1);
if(strNumber[0] == '+') strNumber = strNumber.Mid(1); // 在号码前加"86"
if(m_strSmsc.Left(2) != "86") m_strSmsc = "86" + m_strSmsc;
if(strNumber.Left(2) != "86") strNumber = "86" + strNumber;
TRACE("State=填充短消息结构\n");
// 填充短消息结构
strcpy_s(SmParam.SCA, m_strSmsc);
strcpy_s(SmParam.TPA, strNumber);
strcpy_s(SmParam.TP_UD, m_strContent);
SmParam.TP_PID = 0;
SmParam.TP_DCS = GSM_UCS2;
TRACE("State=发送短消息\n");
// 发送短消息
p->PutSendMessage(&SmParam);
}
strContent->SetFocus();
strContent->SetSel(-1, 0); UpdateData(FALSE);
}