在对话框中的静态文本框中画图却什么都不显示解决思路
在对话框中的静态文本框中画图却什么都不显示
我想在CEightDlg对话框中设定的ID为IDC_STATIC_PAINT的静态文本框中显示我画的直线,但是不想在onpaint函数中实现,想在通过单击按钮后实现,可是按照我的写法什么都没有,我的代码如下:
------解决方案--------------------
你所画的被onpaint覆盖。
为什么不在onpaint中画?
------解决方案--------------------
我想在CEightDlg对话框中设定的ID为IDC_STATIC_PAINT的静态文本框中显示我画的直线,但是不想在onpaint函数中实现,想在通过单击按钮后实现,可是按照我的写法什么都没有,我的代码如下:
- C/C++ code
void CEightDlg::OnBTNDisFitlog() { // TODO: Add your control notification handler code here CWnd* pWnd=GetDlgItem(IDC_STATIC_PAINT); //这儿得到的是对话框中静态文本的指针 CPaintDC dcpaint(pWnd); CPen pen(PS_SOLID,5,RGB(0,0,0)); //选择黑色画笔 dcpaint.SelectObject(&pen); CRect rect; pWnd->GetClientRect(&rect); dcpaint.SetMapMode (MM_LOMETRIC); //X轴向右为正,Y轴向上为正,逻辑坐标单位是0.1mm CPoint Point_Origion(rect.Width()/2,rect.Height()); dcpaint.SetViewportOrg (Point_Origion); CBrush *pBrush=new CBrush(RGB(0,0,0)); //选择黑色画刷进行填充 dcpaint.SelectObject(pBrush); //dcpaint.Ellipse(5000*2/25,4000/10,2000*2/25,2000/10); //dcpaint.MoveTo(-5000*2/25,4000/10); //dcpaint.LineTo (-2000*2/25,2000/10); dcpaint.MoveTo(0,0); dcpaint.LineTo (-300,200); /* for(int i=0;i<Possiclass_num;i++) { dcpaint.Ellipse((int)((center_x[i]-diameter[i])*1000*2/25),(int)((center_y[i]+diameter[i])*1000/10),(int)((center_x[i]+diameter[i])*1000*2/25),(int)((center_y[i]-diameter[i])*1000/10) ); } */ ReleaseDC(&dcpaint); }
------解决方案--------------------
你所画的被onpaint覆盖。
为什么不在onpaint中画?
------解决方案--------------------