我继承了一个项目(最初是为Win95编写的!),它有一些按钮附加到从CWnd派生的父窗口。按钮本身位于从CWnd派生的用户定义类中,因此它们不是“真正的”按钮,而是由大量代码行定义的小窗口,并且有大量的显示问题,我一直在大汗淋漓几个星期,看不到解决方案。
我们在前几天得出结论,CBitmapButton看起来是一个很好的选择。看似简单,为不同的按钮状态定义4位图。我所需要的只是BN_CLICKED以启动处理程序,而且我会成为金色。
在弄乱了一段时间后,设置了一个按钮和一些位图,我能够显示CBitmapButton;看起来不太好,但我能解决这个问题......现在的问题是我试图设置一个消息映射来捕获BN_CLICKED消息,但由于父窗口是从CWnd而不是CDialog派生的,所以我得到了语法错误设置消息映射。几次读取关于主题的MSDN,看起来你只能将CBitmapButton连接到CDialog派生类。这对我来说似乎很奇怪 - 我只想要一个按钮,它应该能够将一个简单的“我被点击”发送给它附加的任何父母,但显然不会发生。
那么,是否有人成功将CBitmapButton附加到CWnd派生的父级;如果是这样,如何设置一个可以使用这些东西的消息映射?或者,您将使用什么方法来设置一个WOULD与CWnd父项一起使用的按钮类,因为CBitmapButton和CButton似乎需要CDialog作为父项?
答案 0 :(得分:1)
不,它不要求你的父窗口应该总是CDiaglot,你甚至可以从CWnd继承并在其中创建一个CButton / CBitmapButton。
您可以覆盖OnCommand
派生类中的CWnd
消息,然后点按按钮点击事件。