void CDeskDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default m_origin = point; CDialog::OnLButtonDown(nFlags, point);
}void CDeskDlg::OnLButtonUp(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default CWnd * pDC = GetDesktopWindow();
CWindowDC dc(pDC);
dc.MoveTo(m_origin);
dc.LineTo(point); CDialog::OnLButtonUp(nFlags, point);
}这是一个简单的桌面画图,m_origin是自定义的一个变量,我的问题是为什么我只能在对话框的范围内画图时才能在桌面的左上角显示,这是怎么回事?我怎么才能在程序运行后直接在桌面的任何位置画图?就像整个桌面蒙上了一层花板一样,多谢大家了。我是初学者。
另一个问题:
在对话框的初始函数中添加:
CClientDC dc(this);
CRect rect;
GetClientRect(&rect);
dc.FillSolidRect(&rect,RGB(255,0,0));
无法让对话框出来就红色背景,是不是因为初始的时候还没有对话框的信息说以无法实现,那么怎么能实现呢?多谢大家了