游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3372|回复: 6

请教一个VC问题

[复制链接]

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2003-12-8 01:33:00 | 显示全部楼层 |阅读模式
我编了个基于对话框的程序,里面有个绘图控件(picture),我要在它里画一些图形,可问题是图形比较大时会画到绘图控件外,请问如何解决?我的代码:

m_pen.CreatePen(PS_SOLID,1,RGB(255,0,0));

HDC hDc=::GetDC(GetDlgItem(IDC_CANVAS)->m_hWnd);//IDC_CANVAS为绘图控件picture的ID
CDC cDC;
cDC.Attach(hDc);
cDC.SelectObject(&m_pen);
cDC.SelectStockObject(NULL_BRUSH);
cDC.Ellipse(0,0,500,500);//绘图控件是300*300的,所以有一部分画到控件外了.

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2003-12-8 08:07:00 | 显示全部楼层

Re:请教一个VC问题

唉,好长时间没碰过MFC了。

4

主题

29

帖子

41

积分

注册会员

Rank: 2

积分
41
发表于 2003-12-8 09:14:00 | 显示全部楼层

Re:请教一个VC问题

用CDib自己在对话框OnEraseBKGround的时候画,标准Picture控件不好用,Kodark的那个还行,不过不通用。

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2003-12-8 09:56:00 | 显示全部楼层

Re: 请教一个VC问题

如果就用picture,因为已经改不了了.

4

主题

29

帖子

41

积分

注册会员

Rank: 2

积分
41
发表于 2003-12-8 10:18:00 | 显示全部楼层

Re:请教一个VC问题

你是画矢量图吧?还是位图?
可以用GetClientRect获得Picture的的边框,然后判断。位图要自动适配大小可以用StrechBlt。

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2003-12-8 14:10:00 | 显示全部楼层

Re: 请教一个VC问题

矢量图,请问如何用GetClientRect()
我是这样写的:GetClientRect(&rect);
结果机器认为是这个对话框的面积,在整个对话框里作图,而不是picture里

6

主题

59

帖子

81

积分

注册会员

Rank: 2

积分
81
QQ
发表于 2003-12-8 14:18:00 | 显示全部楼层

Re:请教一个VC问题

GetClientRect获得当前窗口的客户区大小
大概是这样:
CWnd tmp;
tmp.Attch( GetDlgItem(IDC_CANVAS)->m_hWnd );
tmp.GetClientRect(&rect);
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-4-22 14:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表