在对话框上根据设置最多显示36个窗口在实现中遇到问题,请指点

rightorwrong 2008-09-18 11:17:48
需要实现这样的功能:对话框窗口上均匀的显示制定的窗口,当点击某一个窗口(窗口上需要显示bmp图片),把改窗口区域用绿色线条标识出来,表示当前选中了该区域。
我的实现方式:类CMyButton继承Cbutton,用来提供一个显示bmp图片的类;类CAreaDlg继承CDialog,在主对话框中中选中某一窗口(类CMyButton),通过movewindow将此对话框移到该区域,作为一个绿色标记。主对话框类中有CMyButton数组和CAreaDlg。
现在遇到的问题是当我选中一个区域时,将CAreaDlg移动到选中区域时,CAreaDlg窗口会把CMyButton的图片覆盖掉。我用setwindowpos设置其参数也不能解决这个问题。
主界面上的窗口要求必须用button控件来实现,标记选中区域是不是我的方法错了:是我的CMyButton没处理好么,头说选中区域能放在CMyButton里做,可是他也没说怎么做。我觉得不行?
请问这个问题应该怎么处理?
...全文
52 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
rightorwrong 2008-09-18
  • 打赏
  • 举报
回复
HRGN CreatePolygonRgn(CONST POINT *lppt, int cPoints, int fnPolyFillMode)
int SetWindowRgn(HWND hWnd, HRGN hRgn, BOOL bRedraw)这两个函数怎么能达到透明效果呢?
lsldd 2008-09-18
  • 打赏
  • 举报
回复
选中标记做成一个窗口的想法总觉得不好
CAreaDlg窗口不透明的话肯定会挡住下面
不过你这个方法是有办法解决的。
使用createpolygonrgn 和 setwindowregion挖空CAreaDlg的内部
只留下外面的绿色线框,实际上达到了透明效果。

也可以在主对话框内实现对CMyButton的标记,这样比较最简单

选中区域能放在CMyButton里做确实可以,不过我没做过
期待高手出现

15,979

社区成员

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

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