最后的两个个问题,高手帮忙解决一下,分要多少都给:)

akang1982 2006-08-12 05:16:52
1.因为我重画了标题栏上的最大最小和关闭按钮,所以取消了对话框的systemmenu属性,但是这样当点击任务栏上的程序时,不能将其最小化。如果增加了systemmenu属性,然后再加个最小化按钮,则可以点击任务栏上的程序使其最小化,但这样当用户点击标题栏我绘制的最小化按钮时,系统原来的最小化按钮也会显示出来,就很难看,我怎么能即不要systemmenu,而且也要当用户点击任务栏时上的窗口时让窗口最小化,再点时还原的功能。
2.我让对话框的边框宽度为7,最下面有个圆角的边,我使用画透明位图可以实现,但是当缩小边界时,那个透明圆角会留些上次背景的底色,托大边界时,状况都很好。这是为什么怎么解决呢。
...全文
269 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
youngwolf 2006-08-14
  • 打赏
  • 举报
回复
错了,手误了,是用CreateRoundRectRgn和SetWindowRgn函数。
如果想实现任意形状的窗口,参看MSDN中的CRgn类。
youngwolf 2006-08-12
  • 打赏
  • 举报
回复
问题1:
保持“取消对话框的systemmenu属性”,然后在OnInitDialog中写上如下程序:
ModifyStyle(0, WS_SYSMENU | WS_MINIMIZEBOX);

问题2:

CreateRoundRect加上RgnSetWindowRgn
函数来做圆角窗口,你用透明位图,那么必须是32位的,太大,而且也不专业,因为圆角的地方,点击鼠标,其实还是点在你的窗口上,而不点在你的窗口后面的窗口上。如果四个角不全是圆的,或半径不一样大,则多生成几个RGN(区域,有MFC类CRgn支持)再组合在一起。
nxnh 2006-08-12
  • 打赏
  • 举报
回复
我不太懂你的问题,但你为什么不在系统原来的最小化按钮显示出来之后马上重新绘制你的按钮呢
kimryo 2006-08-12
  • 打赏
  • 举报
回复
但这样当用户点击标题栏我绘制的最小化按钮时,系统原来的最小化按钮也会显示出来,

===============\

you must missing some message to handle and redraw,many app uses te same method but acts perfect,as Winamp.

15,976

社区成员

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

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