Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mfc 我可以将CBitmapButton附加到父CWnd而不是父CDialog吗?_Mfc_Cwnd_Cbitmap - Fatal编程技术网

Mfc 我可以将CBitmapButton附加到父CWnd而不是父CDialog吗?

Mfc 我可以将CBitmapButton附加到父CWnd而不是父CDialog吗?,mfc,cwnd,cbitmap,Mfc,Cwnd,Cbitmap,我继承了一个项目(最初是为Win95编写的!),它有许多按钮连接到从CWnd派生的父窗口。按钮本身是从CWnd派生的用户定义类,因此它们不是“真正的”按钮,而是由无数行代码定义的小窗口,并且有大量的显示问题,我已经苦思冥想了几个星期,看不到解决方案 前几天我们得出结论,CBitmapButton看起来是个不错的选择。看起来很简单,为不同的按钮状态定义4个位图。我所需要的就是点击BN_来启动一个处理程序,我将是金色的 在摆弄了一会儿之后,设置了一个按钮和一些位图,我能够显示CBITMAP按钮;看起

我继承了一个项目(最初是为Win95编写的!),它有许多按钮连接到从CWnd派生的父窗口。按钮本身是从CWnd派生的用户定义类,因此它们不是“真正的”按钮,而是由无数行代码定义的小窗口,并且有大量的显示问题,我已经苦思冥想了几个星期,看不到解决方案

前几天我们得出结论,CBitmapButton看起来是个不错的选择。看起来很简单,为不同的按钮状态定义4个位图。我所需要的就是点击BN_来启动一个处理程序,我将是金色的

在摆弄了一会儿之后,设置了一个按钮和一些位图,我能够显示CBITMAP按钮;看起来不太好,但我能解决。。。现在的问题是,我试图设置一个消息映射来捕获BN_CLICKED消息,但由于父窗口是从CWnd而不是CDialog派生的,因此设置消息映射时出现语法错误。反复阅读有关该主题的MSDN,您似乎只能将CBitmapButton连接到CDialog派生类。这对我来说似乎很奇怪——我只想要一个按钮,它应该能够将一个简单的“我被点击”发送给它所连接的任何家长,但显然不是注定要发生的


那么,是否有人成功地将CBitmapButton附加到CWnd派生的父级;如果是这样的话,如何建立一个信息地图来处理这些事情呢?或者,由于CBitmapButton和CButton似乎需要CDialog作为父窗口,您将使用什么方法来设置一个与CWnd父窗口一起工作的button类?

不,它不要求父窗口始终是CDiaglot,您甚至可以从CWnd继承并在其中创建一个CButton/CBitmapButton


您可以覆盖
CWnd
派生类中的
OnCommand
消息,并点击按钮单击事件。

发现我试图将按钮附加到的父窗口(最终从CWnd派生)运行不正常,正在拦截针对该按钮的消息。我给了按钮一个父窗口,允许传递消息(也是一个CWnd派生,但没有消息垃圾),按钮的性能与预期一样。我确实按照建议重写了OnCommand。谢谢