先将屏幕坐标转换成客户区坐标
ScreenToClient(&point);如果要转换成窗口坐标写个函数就是了
void CMainFrame::ScreenToWindow(LPPOINT lpPoint)
{
CRect rc;
GetWindowRect(&rc);
lpPoint->x -= rc.left;
lpPoint->y -= rc.top;
}
ScreenToClient(&point);如果要转换成窗口坐标写个函数就是了
void CMainFrame::ScreenToWindow(LPPOINT lpPoint)
{
CRect rc;
GetWindowRect(&rc);
lpPoint->x -= rc.left;
lpPoint->y -= rc.top;
}
解决方案 »
- mfc 滚动条 界面控件被背景颜色覆盖问题 急。。。。
- 如何将对话框的某个控件置顶
- 求助:关于 样式转换的
- CString 变量的错误
- 如何在驱动层把非鼠标设备模拟成鼠标设备?
- 在VC中如何判断是否安装了打印机,或有什么方法获取数量,vc和其他的比这点真差劲啊
- 怎样能够响应CCombox组合框的派生类的OnChar消息,急,在线等,高分相送!
- 用WinInet进行POST的时候,如果有COOKIE是不是要调用COOKIE函数才能够得到接下来传来的页面
- 请教一个非常奇怪的问题!昨天还编译正常,今天在没有作任何修改的情况下出现如下问题:
- 在客户端远程调用COM+组件的问题
- 甚急,为什么最简单的LButton消息都不能响应?请大侠帮忙!
- 怎么用VC来开发网络视频传输!各位社友给点这方面的资料也好啊!
在MainFrame 里面响应鼠标点击??我觉得应该在 View 里面去响应把!
{
CFrameWnd* p=new CFrameWnd;
p->Create(0,"yang");
p->ShowWindow(SW_SHOWDEFAULT);
p->UpdateWindow();
//AfxGetApp()->m_pMainWnd=p;
this->m_pMainWnd=p;
return TRUE;
}
--------------------
不明白你为什么要这样写,这样的 P还有什么用呢?这个函数退出后,指针就失效了,而且你还造成了内存泄漏
class CMinApp:public CWinApp
{public: virtual BOOL InitInstance();};
class CMainWnd:public CFrameWnd
{protected:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
public: DECLARE_MESSAGE_MAP();
};BEGIN_MESSAGE_MAP(CMainWnd, CFrameWnd)
ON_WM_LBUTTONDOWN()
ON_WM_RBUTTONDOWN()
END_MESSAGE_MAP()void CMainWnd::OnLButtonDown(UINT nFlags, CPoint point)
{ CString szAboutLeft="This is a minimal WIndows MFC program.\n"
"You've pressed the left mouse button!";
::MessageBeep(MB_ICONINFORMATION);
::MessageBox(GetSafeHwnd(),szAboutLeft,"About",MB_OK|MB_ICONINFORMATION);
CFrameWnd::OnLButtonDown(nFlags,point);
}void CMainWnd::OnRButtonDown(UINT nFlags, CPoint point)
{ CString szAboutRight="This is a minimal Windows MFC program.\n"
"You've pressed the right mouse button!";
::MessageBeep(MB_ICONINFORMATION);
::MessageBox(GetSafeHwnd(),szAboutRight,"About",
MB_OK|MB_ICONINFORMATION);
CFrameWnd::OnRButtonDown(nFlags,point);
}BOOL CMinApp::InitInstance()
{ CFrameWnd* pFrame=new CFrameWnd;
pFrame->Create(0,_T("Another Minimal MFC Program"));
pFrame->ShowWindow(SW_SHOWMAXIMIZED);
pFrame->UpdateWindow();
AfxGetApp()->m_pMainWnd=pFrame;
return TRUE;
}
CMinApp MyApp;
///////////////////////////////////////////////////////////
请大侠帮忙,用SPY++看时,有消息产生,但没有运行显示相应的对话框?