***一个简单的问题**** 在对话框中放置一个静态控件,运行时,在对话框类中有没有办法知道鼠标已经进入了静态控件区域??前提是不能为静态控件派生一个类 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以,得到控件的区域,mousemove的时候,看看鼠标在不在这个里面就行`` void CMainDlg::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CRect rc; GetDlgItem(IDC_MY_STATIC)->GetWindowRect(&rc); ScreenToClient(&rc); if(rc.PtInRect(point)) //如果在指定静态控件的区域内 { //执行相应操作 } CDialog::OnMouseMove(nFlags, point);} 我刚刚了下面的代码~不知道有没有更简单的方法~~void CGgggDlg::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CRect rect; //用于获得静态控件的位置(基于窗口坐标的) GetDlgItem(IDC_STATICmy1)->GetWindowRect(&rect);//IDC_STATICmy1是静态控件ID ScreenToClient(&rect);//转换坐标为窗户区坐标 if (point.x>rect.left&&point.x<rect.right) {//判断坐标X是否在静态控件内 if (point.y>rect.top&&point.y<rect.bottom) {//判断坐标Y是否在静态控件内 MessageBox("鼠标位于静态控件内",NULL,MB_OK|MB_ICONINFORMATION); } } CDialog::OnMouseMove(nFlags, point);} PtInRect函数~~~~呵呵,偷到了,我没学过这个~嘻嘻 矣,昨天我试了一下,不知道怎么不可以,代码也基本是这样写的。我以为鼠标在静态控件上时对话框就不响应MOUSEMOVE了(我获得静态控件的矩形是在OnInitDlg里获得的),谢谢 Crecordset修改记录的时候弹出“记录是只读的”错误 用win32 API如何实现OPEN对话框中选择多个文件 !!!!!!!!使用抽象类中的方法!!!!!!! 关于旋转控件的问题,请大家帮忙 如何能让我的CLISTBOX的具有多项拖动功能 关于定位断言错误的地方 关于输入: 关于修改CMSFlexGrid类中scrollbar事件的问题 微软是不是把我们甩了? [求助] 关于一种特别的循环依赖问题 关于extern问题 请教关于实例化类
{
// TODO: Add your message handler code here and/or call default
CRect rc; GetDlgItem(IDC_MY_STATIC)->GetWindowRect(&rc); ScreenToClient(&rc); if(rc.PtInRect(point)) //如果在指定静态控件的区域内
{
//执行相应操作
} CDialog::OnMouseMove(nFlags, point);
}
{
// TODO: Add your message handler code here and/or call default
CRect rect; //用于获得静态控件的位置(基于窗口坐标的)
GetDlgItem(IDC_STATICmy1)->GetWindowRect(&rect);//IDC_STATICmy1是静态控件ID
ScreenToClient(&rect);//转换坐标为窗户区坐标 if (point.x>rect.left&&point.x<rect.right) {//判断坐标X是否在静态控件内
if (point.y>rect.top&&point.y<rect.bottom) {//判断坐标Y是否在静态控件内
MessageBox("鼠标位于静态控件内",NULL,MB_OK|MB_ICONINFORMATION);
}
}
CDialog::OnMouseMove(nFlags, point);
}