C++ MFC 如何获得dialog的坐标或者鼠标的相对坐标

C++ MFC 如何获得dialog的坐标或者鼠标的相对坐标,第1张

对话框坐标可以使用GetWindowRect获取。

鼠标坐标一般在OnMouseMove里面通过参数获取。

这个最好有具体需求描述,因为获取方式很多,用于不同的窗口和不同的需要。

我觉得对于一个程序员来说首先你要学会单步调试

还有对于指针 *** 作来说你要学会使用断言。

如果上述两个你做到了,我相信你任何问题都能解决的。。。

GetDC()是获取当前句柄的DC再MFC中师获取他的CDC的。然后使用这个DC *** 作图形界面。。

给你一个通用的步骤吧,看不懂我再详细说(你需要的步骤是1-2-32):

1CMDIFrameWnd pFrame = (CMDIFrameWnd)AfxGetApp()->m_pMainWnd;

2CMDIChildWnd pChild = (CMDIChildWnd ) pFrame->GetActiveFrame();

3

31获得视类:CMyView pView = (CMyView ) pChild->GetActiveView();

32获得文档类:CDocument pDocument=pChild -> GetActiveDocument();

如果你这个对话框是在view的成员函数中d出来的,也就是说在成员函数中声明并DoModal的,可以在DoModal之前直接把this指针传递到对话框对象中的成员函数中。这样在IDOK中进行赋值。假如view类是MyView,对话框类MyDlg,在MyView的成员函数fun()中d出对话框,一般的例子如下:

class CMyView;

class CMyDlg : public CDialog

{

//下面是增加的定义内容

private:

CMyView m_pView; //接收View类的指针

public:

SetMyView(CMyView pView) //提供接收view指针的 *** 作

{ m_pView = pView; }

};

void CMyView::fun()

{

MyDlg dlg;

dlgSetMyView(this); //将CMyView对象的this指针传递给对话框。

if(dlgDoModal()==IDOK)

{

//相应的处理过程

}

}

以上就是关于C++ MFC 如何获得dialog的坐标或者鼠标的相对坐标全部的内容,包括:C++ MFC 如何获得dialog的坐标或者鼠标的相对坐标、MFC关于GetDC()的问题、MFC多文档程序如何获取当前活动文档指针等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9452622.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存