MFC对话框在控件上画线 mfc控件 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你画了半天,最后被CDialogEx::OnPaint();一句就干掉了。另外,既然是在pic上画图,那这些画图的处理最好是派生个static的子类来处理,重载它的OnPaint来画你的线条。不要交给对话框类来处理。 void CBezierDlg::OnPaint(){ if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作区矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // 绘制图标 dc.DrawIcon(x, y, m_hIcon); } else { CDialogEx::OnPaint(); CDC *pDC; pDC = m_picShow.GetDC(); CPen Pen(PS_SOLID,2,RGB(0,255,0)); CPen *oldPen = pDC->SelectObject(&Pen); pDC->MoveTo(500,100); pDC->LineTo(600,100); pDC->SelectObject(oldPen);; } } void CBezierDlg::OnPaint(){ if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作区矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // 绘制图标 dc.DrawIcon(x, y, m_hIcon); } else { CDialogEx::OnPaint(); } //放在这里 CDC *pDC; pDC = m_picShow.GetDC(); CPen Pen(PS_SOLID,2,RGB(0,255,0)); CPen *oldPen = pDC->SelectObject(&Pen); pDC->MoveTo(500,100); pDC->LineTo(600,100); pDC->SelectObject(oldPen);} 一个http post 和get的问题 windows的进程堆栈,是每个线程一个stack还是每个进程的线程公用一个stack? 请问少了什么lib文件 问问inet_系列函数需要什么头文件啊? MFC+ACCESS出错 再次提出关于打印纸张大小设置的问题 数据库查询 大家帮我看看我的程序中动态库传进去的参数返回后为什么不变!!!(我的承租在里面,帮忙啊!) 软件接口问题 VC6.0中怎样设置断点,单步调试 opencv 在大图中插在小图的位置 MFC GDI+ 创建Graphics对象
另外,既然是在pic上画图,那这些画图的处理最好是派生个static的子类来处理,重载它的OnPaint来画你的线条。不要交给对话框类来处理。
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
CDC *pDC;
pDC = m_picShow.GetDC();
CPen Pen(PS_SOLID,2,RGB(0,255,0));
CPen *oldPen = pDC->SelectObject(&Pen);
pDC->MoveTo(500,100);
pDC->LineTo(600,100);
pDC->SelectObject(oldPen);;
}
}
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
//放在这里
CDC *pDC;
pDC = m_picShow.GetDC();
CPen Pen(PS_SOLID,2,RGB(0,255,0));
CPen *oldPen = pDC->SelectObject(&Pen);
pDC->MoveTo(500,100);
pDC->LineTo(600,100);
pDC->SelectObject(oldPen);
}