Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual c++ MFC-获取动态创建的矩形的id_Visual C++_Mfc_Dynamic Controls - Fatal编程技术网

Visual c++ MFC-获取动态创建的矩形的id

Visual c++ MFC-获取动态创建的矩形的id,visual-c++,mfc,dynamic-controls,Visual C++,Mfc,Dynamic Controls,作为学习MFC的一部分,我遇到了这样一种情况:我在dialog类的OnPaint中动态创建了一个矩形 CPaintDC dc(this); dc.Rectangle(10,10,208,92); 我想从另一个函数中获取这个矩形的设备id。 另一个函数是同一对话框类中的BtClick事件函数 void ThreadDialog::OnBnClickedButton3() { CWnd* pWnd = FromHandle(dlg.m_hWnd); CDC* pDC = pWnd-

作为学习MFC的一部分,我遇到了这样一种情况:我在dialog类的OnPaint中动态创建了一个矩形

CPaintDC dc(this);
dc.Rectangle(10,10,208,92);
我想从另一个函数中获取这个矩形的设备id。 另一个函数是同一对话框类中的BtClick事件函数

void ThreadDialog::OnBnClickedButton3()
{
    CWnd* pWnd = FromHandle(dlg.m_hWnd);
    CDC* pDC = pWnd->GetDC  ();
  /* Here i wanted to get the device context of the rectangle drawn in OnPaint() */

}
因此,首先我需要动态创建的矩形的控件id,以便之后我能够获取该矩形的设备上下文


请帮助如何操作。

CDC::Rectangle没有创建任何内容,它只是在该DC上绘制一个矩形。
没有与该绘图关联的ID或设备上下文。

您是如何创建矩形的?您需要显示一些代码,因为矩形通常没有控件ID。请使用用于创建矩形的代码编辑问题。现在它不会有一个控制ID吗?如果没有,我如何让它的设备上下文绘制在它里面?其他函数在哪里?而且,它的坐标是否与上面显示的相同?对于大多数应用程序,您只需使用与绘制矩形相同的dc,然后在OnPaint中绘制矩形内部。要使其从另一个函数中提取,该函数应在窗口上调用Invalidate。这将导致生成一个新的WM_画图。@Scott..那么我应该用绘制矩形时使用的dc在矩形内绘制吗?但我应该在矩形的尺寸范围内绘制。它是?