在VC++60MFC中,在哪儿设置窗口的坐标系统最合适?

robter_x 2001-08-29 11:24:55

Hi,
在VC++60MFC中,在哪儿设置窗口的坐标系统最合适?

谢谢!
...全文
170 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Belle 2001-08-29
  • 打赏
  • 举报
回复
根据你的需要,在哪儿都行
绘图时
coolxiao 2001-08-29
  • 打赏
  • 举报
回复
我觉得在OnDraw()中设置也是可以的吧
robter_x 2001-08-29
  • 打赏
  • 举报
回复

***都吃饭去了,还是分数不吸引人?

voidman 2001-08-29
  • 打赏
  • 举报
回复
一般在CView的OnInitialUpdate
HelloAndOk 2001-08-29
  • 打赏
  • 举报
回复
up
蒋晟 2001-08-29
  • 打赏
  • 举报
回复
void CView::OnPaint()
{
// standard paint routine
CPaintDC dc(this);
OnPrepareDC(&dc);
OnDraw(&dc);
}
coolxiao 2001-08-29
  • 打赏
  • 举报
回复
看了msdn终于明白了我上面说的问题,dc还分为Common Dc 和Private DC,我们一般使用的前一种,dc是在返回句柄前由System以Default Object构建的,所以必须在每次显示前都进行设定。
结论是在OnPrepareDC()或者OnDraw()中都可以。
蒋晟 2001-08-29
  • 打赏
  • 举报
回复
void CEMapView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
// TODO: Add your specialized code here and/or call the base class
CScrollView::OnPrepareDC(pDC, pInfo);
CEMapDoc* pDoc = GetDocument();
CSize sizeDoc = pDoc->GetSize();
CPoint ptOrg;
CRect rectClient;
GetClientRect(&rectClient);
pDC->DPtoLP(&rectClient);
ptOrg.x = min(-sizeDoc.cx / 2,-rectClient.Size().cx/2);
ptOrg.y = max(sizeDoc.cy / 2,-rectClient.Size().cy/2);
// ptOrg is in logical coordinates
pDC->SetWindowOrg(ptOrg);
}
蒋晟 2001-08-29
  • 打赏
  • 举报
回复
在OnPrepareDC里面。
coolxiao 2001-08-29
  • 打赏
  • 举报
回复
这引发我想起一个问题,在win32编程中,需要hdc=BeginPaint(hWnd,&ps);
相信大家都记得的吧,如果你SelectObject(hdc,hMyBrush);
以后,不用原来的Brush替换就结束的话,下次画的时候不执行SelectObject,就不会再使用你的这个hMyBrush。
这是不是说明我的操作在hdc句柄释放以后就失效了呢?
根据我的理解,dc这个gdi对象是和我的窗口同时存在的,只是要通过hdc访问,但为什么我的修改会失效呢?
它的机理到底是怎么样的?
回答问题的朋友我会另外加分的,谢了。
robter_x 2001-08-29
  • 打赏
  • 举报
回复

下午好:
还有吗?


robter_x 2001-08-29
  • 打赏
  • 举报
回复
ok
joinkee 2001-08-29
  • 打赏
  • 举报
回复
在OnPrepareDC中设置,因为每次DC构造好之后都要调用该功能
richi_ 2001-08-29
  • 打赏
  • 举报
回复
可以在 CMainFrame::PreCreateWindow函数里吧
还有InitInstance函数里也行

16,551

社区成员

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

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

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