有一个对话框,里面有一个CStatic的控件,然后我动态创建了一个按钮,这个按钮的父窗口是
CStatic的控件,这样,我单击按钮后,CStatic控件会受到WM_COMMAND消息,现在我想让这个
WM_COMmand消息由对话框来接受而不是CStatic控件来接受,怎么办?

解决方案 »

  1.   

    CStatic 收到消息后,转发到对话框,自己不处理就行了。
      

  2.   

    必须要把static控件作为按钮的父窗口么?  如果直接把dialog作为按钮的父窗口直接就OK了.如果一定要把static控件作为按钮的父窗口, 那你派生Cstaitc类,在它收到按钮来的WM_COMmand消息处理函数中,调用对话框的某个函数.
      

  3.   

    非要这么设计,那就CStatic收到消息后再转发到对话框
      

  4.   


    PostMessage给对话框,在对话框中增加按钮的消息处理函数
      

  5.   

    不要这样设计,除非真的需要直接把dialog作为按钮的父窗口直接就OK了. 
      

  6.   

    在CStatic中如何接受按钮的WM_COMmand
    消息啊?不要用BN_CLICK
      

  7.   

    由于楼主接收的是,WM_COMmand 的消息(包含很多命令消息),又一定要在static上,
    推荐两种,一种直接在dialog处理,用这个PreTranslateMessage拦截;然后通过id,以及消息类型判断。
    另外一种,继承CButton写个新类,加个设置需要接收信息窗口句柄的接口,把需要的信息直接postmessage/sendmessage过去。
      

  8.   

    一种直接在dialog处理,用这个PreTranslateMessage拦截
    不行啊,拦截不到.
      

  9.   

    为什么要指定父窗口为CStatic呢