本帖最后由 u012994553 于 2014-02-18 14:46:00 编辑

解决方案 »

  1.   

    dlg = &((CTestDlg)FromHandle(hwndParent));
    FromHandle的返回值应该是指向对象的指针,你在这里强制转换这个指针为对象,我想不出这是什么思路
      

  2.   

    CTestDlg* pdlg;// 这是 局部变量pdlg = (CTestDlg*)GetParent();
      

  3.   

    这个程序怎么看着那么乱呢?楼主能不能说说你想干嘛,还有为什么用“把自身的HWND传递给Button”,有什么用吗?呵呵,不懂,求解
      

  4.   

    FromHandle(hwnd)返回的是窗口对象,这个本身没问题。
      

  5.   

    我也感觉是这个原因。得到的是同一个窗口,但不是同一个CTestDlg对象?
      

  6.   

    我本意是想在TestDlg中定义一个方法,并在button的OnLButtonDown事件里回调。但是我发现,不管在Button里定义回调方法,还是定义TestDlg的指针,都需要在“Button.h”文件里“#include TestDlg.h”。而可能是因为,我在“TestDlg.h”中使用了“#include Button.h”,所以编译通不过。
      

  7.   

    CTestDlg* pdlg = (CTestDlg*)GetParent();
    “试过了,不行。”
    说明 父窗口 不是 CTestDlg
      

  8.   

    用MFC的话,最好不要直接操作HWND