有其它方法在对话框背景图片 指定区域添加鼠标单击响应事件
2011-11-06 00:39
751 查看
程序开发应用环境:
VS2005(vc++),wince 6.0 ,MFC;
实现功能:
在图片背景的指定区域如(0,0,100,30)显示当前的系统时间(用时钟控制的,ExtTextOut直接输出时间),并且该区域要能响应鼠标的单击事件.另外对话框的背景图片是外部资源(选择路径);
思路:
捕获所有的的鼠标单击消息(PreTranslateMessage),判断当前单击时所在的点是否被指定区域所包含.
出现问题:
使用ExtTextOut后单击事件就不能正常的捕获了.
C/C++ code
只要鼠标一移动到那个区域就会有响应,而我想要的是单击响应.
引用 2 楼 fishion 的回复:
if(pMsg->message== WM_LBUTTONDOWN)
{
CPoint MousePoint;
GetCursorPos(&MousePoint);
CRect Nowrect(0,0,100,40);
ClientToScreen(Nowrect);
if(Nowrect.PtInRect(MousePoint))
{
Af……
这个受用。。。
VS2005(vc++),wince 6.0 ,MFC;
实现功能:
在图片背景的指定区域如(0,0,100,30)显示当前的系统时间(用时钟控制的,ExtTextOut直接输出时间),并且该区域要能响应鼠标的单击事件.另外对话框的背景图片是外部资源(选择路径);
思路:
捕获所有的的鼠标单击消息(PreTranslateMessage),判断当前单击时所在的点是否被指定区域所包含.
出现问题:
使用ExtTextOut后单击事件就不能正常的捕获了.
C/C++ code
(一)安装时钟 OninitDialog() { ... SetTimer(1,1000,NULL); ... } (二)时钟响应 void CWince_TimeTextDlg::OnTimer(UINT_PTR nIDEvent) { // TODO: Add your message handler code here and/or call default if(nIDEvent==1) { //CDC *pDC=CClientDC(this); CDC *pDC=GetDC(); pDC->SetBkMode(TRANSPARENT); CRect rect(0,0,100,30); Invalidate(); UpdateWindow(); CTime time; time=CTime::GetCurrentTime(); CString strShow; strShow=time.Format(L"%Y-%m-%d %H:%M:%S"); pDC->SetTextColor(RGB(0,0,255)); [color=#FF6600]pDC->ExtTextOut(0, 0, ETO_OPAQUE,NULL,strShow,wcslen(strShow),0);//注释这行捕获鼠标单击正常[/color] ReleaseDC(pDC); } CDialog::OnTimer(nIDEvent); } (3)捕获鼠标点击消息,并响应,现在是任何时候断点跟踪时都会进入if.鼠标没有单击也会进去. BOOL CWince_TimeTextDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if(pMsg->wParam == VK_LBUTTON) { CPoint MousePoint; GetCursorPos(&MousePoint); CRect Nowrect(0,0,100,40); ClientToScreen(Nowrect); if(Nowrect.PtInRect(MousePoint)) { AfxMessageBox(_T("鼠标点击")); } } return CDialog::PreTranslateMessage(pMsg); }
只要鼠标一移动到那个区域就会有响应,而我想要的是单击响应.
引用 2 楼 fishion 的回复:
if(pMsg->message== WM_LBUTTONDOWN)
{
CPoint MousePoint;
GetCursorPos(&MousePoint);
CRect Nowrect(0,0,100,40);
ClientToScreen(Nowrect);
if(Nowrect.PtInRect(MousePoint))
{
Af……
这个受用。。。
相关文章推荐
- MFC中如何在指定的区域响应鼠标单击事件?
- QT 对话框添加背景图片的方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC在对话框中添加背景图片导入位图出错的解决方法
- MFC对话框添加菜单栏并添加鼠标单击响应(实例,包你一学就会)
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC实现背景透明,控件不透明的对话框,且点击图片有事件响应
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC 对话框添加背景图片详细过程(两种方法)
- WTL对话框添加背景图片的方法(C++)
- png图片 透明区域如何 让其不响应鼠标事件?
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- JS动态生成的元素,其对应的方法不响应(比如单击事件,鼠标移动事件等)
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- 单文档(SDI)视图类中手动添加的CListCtrl响应鼠标单击事件!
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- ie6下:png图片不透明 和 背景图片为png的节点的内部标签单击事件不响应