MFC 基于对话框实现画图

UnknownBody 2012-07-31 08:02:32
各位大虾,请教一下:
我想实现在对话框中画图,鼠标点击客户区,然后可以以鼠标位置为中心画出一个矩形,但是画出来的并不是以鼠标当前的位置为中心,而是在鼠标点击位置的右下方,为什么呢?下面是代码,求解释。。

void CSample1Dlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

/*-------实现鼠标移动时窗口也在移动--------------*/
CDC *pControlDC=pWnd-> GetDC();
pControlDC-> SelectStockObject(WHITE_BRUSH);
pControlDC-> Rectangle(point.x-10,point.y-10,point.x+10,point.y+10);
CDialog::OnLButtonDown(nFlags, point);
}
...全文
163 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
UnknownBody 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

ClientToScreen(hwnd,&Point);
应该是把客户区坐标转换为屏幕坐标吧
[/Quote]是的。。同样的还有ScreenToClient(hwnd,&Point);这是将屏幕坐标转换为客户区坐标
boylovesports 2012-08-01
  • 打赏
  • 举报
回复
ClientToScreen(hwnd,&Point);
应该是把客户区坐标转换为屏幕坐标吧
UnknownBody 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

ClientToScreen(hwnd,&Point);
[/Quote]这个是干啥用的,在指定的某个区域画图?
UnknownBody 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

pWnd是哪个窗口?
[/Quote]本想是获得一个静态文本的指针,然后在文本中间画图。。觉得没必要了。。
UnknownBody 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

pWnd是什么 去掉试试
[/Quote]是的,我那么写是不对的。。
ClientDc dc(this)就好了,谢谢!
昨夜无风 2012-07-31
  • 打赏
  • 举报
回复
pWnd是哪个窗口?
Cryking 2012-07-31
  • 打赏
  • 举报
回复
ClientToScreen(hwnd,&Point);
  • 打赏
  • 举报
回复
pWnd是什么 去掉试试

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧