画不规则控件的问题 急等

zhaohua0317 2010-09-29 07:15:30
我在一个对话框上用路径画了一个扇形区域,我想让这个扇形成为一个按钮,请问怎么办?急等
...全文
177 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2010-11-09
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
schlafenhamster 2010-10-07
  • 打赏
  • 举报
回复

void CPieHasTTDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
int nID=MyToolHitTest();
switch (nID)
{
case -1:break;//not on circle
case 0: break;
case 1: break;
case 2: break;
case 3: break;
case 4: break;
case 5: break;
case 6: break;
case 7: break;
case 8: break;
case 9: break;
case 10:break;
case 11:break;
}
//
CDialog::OnLButtonDown(nFlags, point);
}
schlafenhamster 2010-10-07
  • 打赏
  • 举报
回复
下载我的“PieHasTT.zip”
再加上“OnLButtonDown”就可以了。
傻X 2010-10-02
  • 打赏
  • 举报
回复
9楼的方法不错。不过你还要做鼠标移动上去则有提示的功能。重载CButton,然后OnMouseMove事件重写。
schlafenhamster 2010-10-02
  • 打赏
  • 举报
回复
在mousemove中检测point是否在某扇区内(相当于HitTest)
一名程序员 2010-10-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhouyongku 的回复:]
控件也是窗口,那么创建不规则窗口就可以了,方法如下:
一、创建不规则窗体的几个主要函数:
<1> CreateRectRgn : 创建矩形窗体轮廓。
<2> CreateRoundRectRgn : 创建圆角矩形窗体轮廓。
<3> CreateEllipticRgn : 创建圆形或椭圆形窗体轮廓。
<4> CreatePolygonRgn : 创建多边形窗体轮廓。
关键函数或者方法
……
[/Quote]这是最好的办法!
ycoder 2010-09-29
  • 打赏
  • 举报
回复
5楼很详细了
visualwind 2010-09-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhaohua0317 的回复:]

谢谢大家的回答,可能大家没有理解我的意思。我想实现这样一个功能:在对话框上画一个圆,然后从圆心画线等分成n个扇形,让其中的每一个扇形区域上都生成一个和这个扇形形状相同的按钮,因为n是变量,即每次生成扇形的个数是个参变量,所以用图片做路径的方法仿佛不可取,还请指点 急等!
[/Quote]

自己继承一个Button,把你的扇形绘制到这个Button上,然后自绘这个button,比如鼠标按下和弹起都要自绘。有n个就生成n个这样的Button。
zhaohua0317 2010-09-29
  • 打赏
  • 举报
回复
谢谢大家的回答,可能大家没有理解我的意思。我想实现这样一个功能:在对话框上画一个圆,然后从圆心画线等分成n个扇形,让其中的每一个扇形区域上都生成一个和这个扇形形状相同的按钮,因为n是变量,即每次生成扇形的个数是个参变量,所以用图片做路径的方法仿佛不可取,还请指点 急等!
zhouyongku 2010-09-29
  • 打赏
  • 举报
回复
控件也是窗口,那么创建不规则窗口就可以了,方法如下:
一、创建不规则窗体的几个主要函数:
<1> CreateRectRgn : 创建矩形窗体轮廓。
<2> CreateRoundRectRgn : 创建圆角矩形窗体轮廓。
<3> CreateEllipticRgn : 创建圆形或椭圆形窗体轮廓。
<4> CreatePolygonRgn : 创建多边形窗体轮廓。
关键函数或者方法
SetWindowRgn CRgn
zzz_zou 2010-09-29
  • 打赏
  • 举报
回复
你可以在绘图里面绘制一个你想要的形状的图片
然后使用CbitmapButton 很简单的。。。
大小和位置都可以使用代码来调整
stonewater 2010-09-29
  • 打赏
  • 举报
回复
用两张图片,一个按下的状态,一个正常的状态,还可以在加上enable状态,disable状态
走好每一步 2010-09-29
  • 打赏
  • 举报
回复
自绘控件,google
tianfeng722 2010-09-29
  • 打赏
  • 举报
回复
其实你可以用张png的矩形图片的

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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