如题,
或者如何将一个mfc的派生窗口类注册,因为好像所有mfc对话框派生类,都注册成对话框32770,我像将这个对话框派生类,注册成自己的类名。

解决方案 »

  1.   

    HWND hWnd = Findwindow(NULL,"标题名")
      

  2.   


    Up.HWND hWnd = Findwindow(NULL,"子窗口标题名")
    if (hWnd != NULL)
    {
      在此对子对话框进行相关数据处理.
    }
      

  3.   

    打开rc文件
    添加红色部分,这是主窗口的,子窗口也要添加
    IDD_TESTFORTABCTRL_DIALOG DIALOGEX 0, 0, 419, 370
    STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
    EXSTYLE WS_EX_APPWINDOW
    CAPTION "Test"
    CLASS "TestClass"
    FONT 9, "MS UI Gothic", 0, 0, 0x1注册窗口类。
    在BOOL CTestApp::InitInstance()中构造对话框之前加入以下代码:
    WNDCLASS wndMyClass;
    ::GetClassInfo(AfxGetInstanceHandle(), "#32770", &wndMyClass);//取得原来对话框的窗口类属性
    wndMyClass.lpszClassName = "TestClass";//将类名改成自定义的类名
    AfxRegisterClass(&wndMyClass); file://关键的一行,如果不注册,对话框就出不来了。
      

  4.   

    http://topic.csdn.net/u/20080606/17/91da100a-218d-43cf-9d57-c77dc4da7298.html  
    看这个帖子中13楼的回复。
      

  5.   

    问题已解决,
    自己注册类除了4楼方法之外,还可以在mfc属性页中设置设置类名
    需要在项目属性消去Enable MFC feature