早上我已经发过一个帖子,地址如下:
http://topic.csdn.net/u/20100209/09/0d71f369-ac63-459d-ad4d-12a086c55bc2.html?1057329919
初始化时
CRect rect;
GetDlgItem(IDC_STATIC_HISTOGRAM)->GetWindowRect(rect);
ScreenToClient(rect);
m_ctrlHistogram.Create(WS_VISIBLE | WS_CHILD| WS_TABSTOP, rect, this, IDC_STATIC_HISTOGRAM);
我这样做的:
CRect rect1;
GetDlgItem(IDC_STATIC_HISTOGRAM)->GetWindowRect(rect1);
ScreenToClient(rect1);
m_ctrlHistogram1.Create(WS_VISIBLE | WS_CHILD| WS_TABSTOP, rect1, this, IDC_STATIC_HISTOGRAM);
CRect rect2;
GetDlgItem(IDC_STATIC_HISTOGRAM)->GetWindowRect(rect2);
ScreenToClient(rect2);
m_ctrlHistogram2.Create(WS_VISIBLE | WS_CHILD| WS_TABSTOP, rect2, this, IDC_STATIC_HISTOGRAM);
就是创建两个画图对象,然后分别在这静态文本框上绘制曲线。
结果还是只能画出一条曲线。这是问什么啊?请问各位应该怎么解决?如何才能用原文链接给出的代码绘制两条或多条曲线。
从回帖部分我已经知道了第二个画图对象没有创建成功,现在应该怎样做,才能使第二个画图对象创建成功啊。
画图类的创建函数如下:
BOOL CHistogramCtrl::Create(DWORD dwStyle, const RECT &rect, CWnd *pParentWnd, UINT uID)
{
//Postcondition:
// Creates a window within the "rect" region of the client screen
// Returns TRUE if the function creates the control successfully
// or FALSE if it fails.
BOOL bRet = CWnd::CreateEx(WS_EX_CLIENTEDGE,
AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW),
NULL,
dwStyle,
rect.left,
rect.top,
rect.right - rect.left,
rect.bottom - rect.top,
pParentWnd->GetSafeHwnd(),
(HMENU)uID);
if(!bRet)
return FALSE;
m_pMemDC = new CDC;
if(!m_pMemDC)
return FALSE;
m_pList = new CList<UINT, UINT&>;
if(!m_pList)
return FALSE;
GetClientRect(m_rcClient);
if(!InvalidateCtrl())
return FALSE;
SetSpeed(CHistogramCtrl::NORMAL_SPEED);
return TRUE;
}