Click here to Skip to main content
15,886,806 members
Articles / Desktop Programming / MFC

ZSplitter: Adding Automatic Splitting for Dialog Controls

Rate me:
Please Sign up or sign in to vote.
4.88/5 (14 votes)
28 May 2001 633.3K   6.4K   58   31
A set of classes that provide automatic adding necessary splitters in your dialogs

Introduction

The ZSplitterDlg and ZSplitter classes help you to add splitters to your dialog, property sheet or any other window. It splits your controls and makes them movable and resizeable. I think this way is better than "auto size" contol: it adds a "docking" opportunity. Moreover, one more control added that adds "auto size" option. Finally, you can integrate the ZSplitterDlg with a resizable dialog (for example, CResizableDialog by Paolo Messina).

Note that you shouldn't add anything to your resources and shouldn't describe the relations between controls. Just make the corresponding size and position of your controls and use the functions:

C++
void addControls(int count, bool connectVertical, ...);
void addControl(int id);

Demo project shows using these automatically added controls in CDialog, CPropertyPage, CView and CFormView classes.

Sample Image

Using the Class

The simplest way is to use the ZSplitterDlgImpl template. You should change:

  • the parent of your dialog or view class
  • the constructor implementation
  • the second parameter in BEGIN_MESSAGE_MAP macros, and
  • the "on init" function of your window
C++
// in header
class CTestDlg1 : public ZSplitterDlgImpl<CPropertyPage>

// in source
CTestDlg1::CTestDlg1() : /*...*/ ZSplitterDlgImpl<CPropertyPage>(CTestDlg1::IDD) {}

BEGIN_MESSAGE_MAP(CTestDlg1, ZSplitterDlgImpl<CPropertyPage>)
	//	...
END_MESSAGE_MAP()

BOOL CTestDlg1::OnInitDialog() 
{
	// ... and use addControl(s) function here
	init();
	// ...
}

The ZSplitterDlgImpl template has a second parameter (ZSplitter2 by default). ZSplitter2 is the implementation of a splitter control. It has a virtual function OnPaint() - and you can change its realisation to have different view of your control (see CMyView1 class in demo project).

The ZSplitterDlgImpl template helps you to implement splitter controls but you can use its base ZSplitterDlg class (look for CTestDlg2 class) in demo project.

I remade a little CResizableDialog with the permission of the author and you can use it with my splitters: use the ZSplitterDlgResizable class for this job (look for CDemoDlg class) in the demo project.

resizable sample

This is a sample of your dialog in resource editor:

in vc++ editor

And user can change it in such way in runtime.

after user manipulations

You should use the addControls or addControl functions to add one control to the "splitter set" or a group of controls: they will move together. This is an example which you have seen above.

C++
addControls(2,false,IDC_LIST6,IDC_LIST7);
addControls(2,true,IDC_LIST1,IDC_LIST8);
addControl(IDC_LIST9);
addControl(IDC_LIST2);
addControl(IDC_LIST3);
addControl(IDC_LIST4);
addControl(IDC_LIST5);

Moreover, you can manually add a ZSplitter class (the most common splitter controls) to a page. Look at the images and in the CTestDlg3 class of the demo project for details.

before moving

after moving

To Do List

I'd like to make the look (color, size, effects) of the splitter more presentable. So I want to get comments from you. First of all: is this technique useful to you?

Note

Make sure to check out my website which is more likely to have updates and betas:
http://www.zmike.net.

License

This article has no explicit license attached to it, but may contain usage terms in the article text or the download files themselves. If in doubt, please contact the author via the discussion board below.

A list of licenses authors might use can be found here.


Written By
Web Developer
Russian Federation Russian Federation
Mike has been programming in C/C++ for 11 years and Visual C++/MFC for 4 years. His background includes pure and applied mathematics, engineering and physics, and he is currently based in Moscow, Russia.

Comments and Discussions

 
QuestionThe compiler through not ah mistake too much Pin
37240589826-Aug-12 1:11
37240589826-Aug-12 1:11 
Questionthe demo can't compile under VS2008 Pin
pj220_200620-May-12 19:23
pj220_200620-May-12 19:23 
1>------ 已启动生成: 项目: splitter, 配置: Debug Win32 ------
1>正在编译...
1>StdAfx.cpp
1> WINVER not defined. Defaulting to 0x0600 (Windows Vista)
1>正在编译...
1>DemoDlg.cpp
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “_GetBaseMessageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “messageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2039: “_messageEntries”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2653: “TheBaseClass”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “GetThisMessageMap”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “_messageEntries”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “return”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : warning C4193: #pragma warning(pop) : 没有匹配的“#pragma warning(push)”
1>e:\zsplitter_demo\splitter\resizabledialog.h(146) : error C2065: “NOANCHOR”: 未声明的标识符
1>e:\zsplitter_demo\splitter\resizabledialog.h(148) : error C2065: “NOANCHOR”: 未声明的标识符
1>e:\zsplitter_demo\splitter\demodlg.cpp(55) : error C2065: “BOTTOM_RIGHT”: 未声明的标识符
1>e:\zsplitter_demo\splitter\demodlg.cpp(56) : error C2065: “BOTTOM_RIGHT”: 未声明的标识符
1>e:\zsplitter_demo\splitter\demodlg.cpp(58) : error C2065: “TOP_RIGHT”: 未声明的标识符
1>e:\zsplitter_demo\splitter\demodlg.cpp(60) : error C2065: “TOP_LEFT”: 未声明的标识符
1>e:\zsplitter_demo\splitter\demodlg.cpp(61) : error C2065: “TOP_LEFT”: 未声明的标识符
1>e:\zsplitter_demo\splitter\demodlg.cpp(61) : error C2065: “BOTTOM_RIGHT”: 未声明的标识符
1>e:\zsplitter_demo\splitter\demodlg.cpp(63) : error C2065: “BOTTOM_LEFT”: 未声明的标识符
1>e:\zsplitter_demo\splitter\demodlg.cpp(64) : error C2065: “BOTTOM_LEFT”: 未声明的标识符
1>e:\zsplitter_demo\splitter\demodlg.cpp(65) : error C2065: “BOTTOM_LEFT”: 未声明的标识符
1>e:\zsplitter_demo\splitter\demodlg.cpp(65) : error C2065: “BOTTOM_RIGHT”: 未声明的标识符
1>MyDocument.cpp
1>MyFrame.cpp
1>MyView1.cpp
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “_GetBaseMessageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “messageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2039: “_messageEntries”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2653: “TheBaseClass”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “GetThisMessageMap”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “_messageEntries”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “return”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : warning C4193: #pragma warning(pop) : 没有匹配的“#pragma warning(push)”
1>e:\zsplitter_demo\splitter\myview1.h(19) : error C2059: 语法错误 : “public”
1>e:\zsplitter_demo\splitter\myview1.h(20) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\zsplitter_demo\splitter\myview1.h(20) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\zsplitter_demo\splitter\myview1.h(30) : error C2065: “MyZSplitter”: 未声明的标识符
1>e:\zsplitter_demo\splitter\myview1.h(31) : error C2955: “ZSplitterDlgImpl”: 使用类 模板 需要 模板 参数列表
1> e:\zsplitter_demo\splitter\zsplitterdlg.h(138) : 参见“ZSplitterDlgImpl”的声明
1>e:\zsplitter_demo\splitter\myview1.cpp(22) : fatal error C1903: 无法从以前的错误中恢复;正在停止编译
1>MyView2.cpp
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “_GetBaseMessageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “messageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2039: “_messageEntries”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2653: “TheBaseClass”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “GetThisMessageMap”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “_messageEntries”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “return”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : warning C4193: #pragma warning(pop) : 没有匹配的“#pragma warning(push)”
1>e:\zsplitter_demo\splitter\myview2.h(19) : error C2059: 语法错误 : “public”
1>e:\zsplitter_demo\splitter\myview2.h(20) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\zsplitter_demo\splitter\myview2.h(20) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\zsplitter_demo\splitter\myview2.cpp(22) : error C2653: “CMyView2”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\myview2.cpp(22) : error C2061: 语法错误 : 标识符“CMyView2”
1>e:\zsplitter_demo\splitter\myview2.cpp(22) : error C2653: “CMyView2”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\myview2.cpp(22) : error C2653: “CMyView2”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\myview2.cpp(22) : error C2496: “classCMyView2”: “selectany”只能应用到有外部链接的数据项
1>e:\zsplitter_demo\splitter\myview2.cpp(22) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(22) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(22) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(22) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(22) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(22) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(22) : error C2270: “GetRuntimeClass”: 非成员函数上不允许修饰符
1>e:\zsplitter_demo\splitter\myview2.cpp(22) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(23) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(23) : error C2059: 语法错误 : “)”
1>e:\zsplitter_demo\splitter\myview2.cpp(24) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(25) : error C2470: “IDD”: 看起来像函数定义,但没有参数列表;跳过明显的函数体
1>e:\zsplitter_demo\splitter\myview2.cpp(31) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(31) : error C2059: 语法错误 : “)”
1>e:\zsplitter_demo\splitter\myview2.cpp(32) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\zsplitter_demo\splitter\myview2.cpp(32) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\zsplitter_demo\splitter\myview2.cpp(35) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(37) : error C2248: “CWnd::DoDataExchange”: 无法访问 protected 成员(在“CWnd”类中声明)
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2857) : 参见“CWnd::DoDataExchange”的声明
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2089) : 参见“CWnd”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(37) : error C2352: “CWnd::DoDataExchange”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2857) : 参见“CWnd::DoDataExchange”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(44) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(44) : error C2270: “GetMessageMap”: 非成员函数上不允许修饰符
1>e:\zsplitter_demo\splitter\myview2.cpp(44) : error C3861: “GetThisMessageMap”: 找不到标识符
1>e:\zsplitter_demo\splitter\myview2.cpp(44) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(46) : error C2065: “OnButton1”: 未声明的标识符
1>e:\zsplitter_demo\splitter\myview2.cpp(48) : error C2248: “ZSplitterDlgImpl<t>::GetThisMessageMap”: 无法访问 protected 成员(在“ZSplitterDlgImpl<t>”类中声明)
1> with
1> [
1> T=CFormView
1> ]
1> e:\zsplitter_demo\splitter\zsplitterdlg.h(156) : 参见“ZSplitterDlgImpl<t>::GetThisMessageMap”的声明
1> with
1> [
1> T=CFormView
1> ]
1>e:\zsplitter_demo\splitter\myview2.cpp(53) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(55) : error C3861: “GetDocument”: 找不到标识符
1>e:\zsplitter_demo\splitter\myview2.cpp(56) : error C2664: “AfxAssertValidObject”: 不能将参数 1 从“CMyView2 *”转换为“const CObject *”
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>e:\zsplitter_demo\splitter\myview2.cpp(61) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(62) : error C2270: “AssertValid”: 非成员函数上不允许修饰符
1>e:\zsplitter_demo\splitter\myview2.cpp(63) : error C2352: “CFormView::AssertValid”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxext.h(774) : 参见“CFormView::AssertValid”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(66) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(67) : error C2270: “Dump”: 非成员函数上不允许修饰符
1>e:\zsplitter_demo\splitter\myview2.cpp(68) : error C2352: “CFormView::Dump”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxext.h(775) : 参见“CFormView::Dump”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(75) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(89) : error C2027: 使用了未定义类型“CMyView2”
1> e:\zsplitter_demo\splitter\myview2.cpp(22) : 参见“CMyView2”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(91) : error C2352: “CFormView::OnInitialUpdate”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxext.h(777) : 参见“CFormView::OnInitialUpdate”的声明
1>e:\zsplitter_demo\splitter\myview2.cpp(93) : error C3861: “addControl”: 找不到标识符
1>e:\zsplitter_demo\splitter\myview2.cpp(94) : error C3861: “addControl”: 找不到标识符
1>e:\zsplitter_demo\splitter\myview2.cpp(95) : error C3861: “addControl”: 找不到标识符
1>e:\zsplitter_demo\splitter\myview2.cpp(97) : error C3861: “init”: 找不到标识符
1>ResizableDialog.cpp
1>e:\zsplitter_demo\splitter\resizabledialog.cpp(69) : error C2440: “static_cast”: 无法从“UINT (__thiscall CResizableDialog::* )(CPoint)”转换为“LRESULT (__thiscall CWnd::* )(CPoint)”
1> 从基类型到派生类型的强制转换需要 dynamic_cast 或 static_cast
1>e:\zsplitter_demo\splitter\resizabledialog.cpp(216) : warning C4554: “&”: 检查运算符优先级可能存在的错误;使用圆括号阐明优先级
1>splitter.cpp
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “_GetBaseMessageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “messageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2039: “_messageEntries”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2653: “TheBaseClass”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “GetThisMessageMap”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “_messageEntries”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “return”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : warning C4193: #pragma warning(pop) : 没有匹配的“#pragma warning(push)”
1>e:\zsplitter_demo\splitter\myview1.h(19) : error C2059: 语法错误 : “public”
1>e:\zsplitter_demo\splitter\myview1.h(20) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\zsplitter_demo\splitter\myview1.h(20) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\zsplitter_demo\splitter\myview1.h(30) : error C2065: “MyZSplitter”: 未声明的标识符
1>e:\zsplitter_demo\splitter\myview1.h(31) : error C2955: “ZSplitterDlgImpl”: 使用类 模板 需要 模板 参数列表
1> e:\zsplitter_demo\splitter\zsplitterdlg.h(138) : 参见“ZSplitterDlgImpl”的声明
1>splitterDlg.cpp
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “_GetBaseMessageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “messageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2039: “_messageEntries”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2653: “TheBaseClass”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “GetThisMessageMap”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “_messageEntries”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “return”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : warning C4193: #pragma warning(pop) : 没有匹配的“#pragma warning(push)”
1>e:\zsplitter_demo\splitter\splitterdlg.h(17) : error C2059: 语法错误 : “public”
1>e:\zsplitter_demo\splitter\splitterdlg.h(18) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\zsplitter_demo\splitter\splitterdlg.h(18) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(62) : error C2653: “CSplitterDlg”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(62) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(62) : error C2653: “CSplitterDlg”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(62) : error C2065: “IDD”: 未声明的标识符
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(63) : error C2550: “CSplitterDlg”: 构造函数初始值设定项列表只能在构造函数定义中使用
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(68) : error C2065: “m_hIcon”: 未声明的标识符
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(69) : warning C4508: “CSplitterDlg”: 函数应返回一个值;假定“void”返回类型
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(71) : error C2653: “CSplitterDlg”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(73) : error C2248: “CWnd::DoDataExchange”: 无法访问 protected 成员(在“CWnd”类中声明)
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2857) : 参见“CWnd::DoDataExchange”的声明
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2089) : 参见“CWnd”的声明
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(73) : error C2352: “CWnd::DoDataExchange”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2857) : 参见“CWnd::DoDataExchange”的声明
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(79) : error C2653: “CSplitterDlg”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(79) : error C2270: “GetMessageMap”: 非成员函数上不允许修饰符
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(79) : error C3861: “GetThisMessageMap”: 找不到标识符
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(79) : error C2653: “CSplitterDlg”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(79) : error C2146: 语法错误 : 缺少“;”(在标识符“ThisClass”的前面)
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(79) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(79) : error C2065: “ThisClass”: 未声明的标识符
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(81) : error C2653: “ThisClass”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(81) : error C2065: “OnSysCommand”: 未声明的标识符
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(82) : error C2653: “ThisClass”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(82) : error C2065: “OnPaint”: 未声明的标识符
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(83) : error C2653: “ThisClass”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(83) : error C2065: “OnQueryDragIcon”: 未声明的标识符
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(85) : error C2248: “ZSplitterDlgImpl<t>::GetThisMessageMap”: 无法访问 protected 成员(在“ZSplitterDlgImpl<t>”类中声明)
1> with
1> [
1> T=CDialog
1> ]
1> e:\zsplitter_demo\splitter\zsplitterdlg.h(156) : 参见“ZSplitterDlgImpl<t>::GetThisMessageMap”的声明
1> with
1> [
1> T=CDialog
1> ]
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(90) : error C2653: “CSplitterDlg”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(92) : error C2352: “CDialog::OnInitDialog”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(3113) : 参见“CDialog::OnInitDialog”的声明
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(100) : error C2660: “GetSystemMenu”: 函数不接受 1 个参数
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(114) : error C2065: “m_hIcon”: 未声明的标识符
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(114) : error C3861: “SetIcon”: 找不到标识符
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(115) : error C2065: “m_hIcon”: 未声明的标识符
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(115) : error C3861: “SetIcon”: 找不到标识符
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(117) : error C3861: “addControl”: 找不到标识符
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(118) : error C3861: “init”: 找不到标识符
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(125) : error C2653: “CSplitterDlg”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(134) : error C2248: “CWnd::OnSysCommand”: 无法访问 protected 成员(在“CWnd”类中声明)
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2740) : 参见“CWnd::OnSysCommand”的声明
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2089) : 参见“CWnd”的声明
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(134) : error C2352: “CWnd::OnSysCommand”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2740) : 参见“CWnd::OnSysCommand”的声明
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(142) : error C2653: “CSplitterDlg”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(144) : error C2660: “IsIconic”: 函数不接受 0 个参数
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(146) : error C2673: “OnPaint”: 全局函数没有“this”指针
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(148) : error C2660: “SendMessageA”: 函数不接受 3 个参数
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(154) : error C2660: “GetClientRect”: 函数不接受 1 个参数
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(159) : error C2065: “m_hIcon”: 未声明的标识符
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(163) : error C2248: “CDialog::OnPaint”: 无法访问 protected 成员(在“CDialog”类中声明)
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(3164) : 参见“CDialog::OnPaint”的声明
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(3068) : 参见“CDialog”的声明
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(163) : error C2352: “CDialog::OnPaint”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(3164) : 参见“CDialog::OnPaint”的声明
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(169) : error C2653: “CSplitterDlg”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\splitterdlg.cpp(171) : error C2065: “m_hIcon”: 未声明的标识符
1>TestDlg1.cpp
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “_GetBaseMessageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “messageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2039: “_messageEntries”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2653: “TheBaseClass”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “GetThisMessageMap”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “_messageEntries”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “return”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : warning C4193: #pragma warning(pop) : 没有匹配的“#pragma warning(push)”
1>e:\zsplitter_demo\splitter\testdlg1.h(15) : error C2059: 语法错误 : “public”
1>e:\zsplitter_demo\splitter\testdlg1.h(16) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\zsplitter_demo\splitter\testdlg1.h(16) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\zsplitter_demo\splitter\testdlg1.cpp(19) : error C2653: “CTestDlg1”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\testdlg1.cpp(19) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\zsplitter_demo\splitter\testdlg1.cpp(19) : error C2653: “CTestDlg1”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\testdlg1.cpp(19) : error C2065: “IDD”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg1.cpp(20) : error C2550: “CTestDlg1”: 构造函数初始值设定项列表只能在构造函数定义中使用
1>e:\zsplitter_demo\splitter\testdlg1.cpp(25) : warning C4508: “CTestDlg1”: 函数应返回一个值;假定“void”返回类型
1>e:\zsplitter_demo\splitter\testdlg1.cpp(28) : error C2653: “CTestDlg1”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\testdlg1.cpp(30) : error C2248: “CWnd::DoDataExchange”: 无法访问 protected 成员(在“CWnd”类中声明)
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2857) : 参见“CWnd::DoDataExchange”的声明
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2089) : 参见“CWnd”的声明
1>e:\zsplitter_demo\splitter\testdlg1.cpp(30) : error C2352: “CWnd::DoDataExchange”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2857) : 参见“CWnd::DoDataExchange”的声明
1>e:\zsplitter_demo\splitter\testdlg1.cpp(37) : error C2653: “CTestDlg1”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\testdlg1.cpp(37) : error C2270: “GetMessageMap”: 非成员函数上不允许修饰符
1>e:\zsplitter_demo\splitter\testdlg1.cpp(37) : error C3861: “GetThisMessageMap”: 找不到标识符
1>e:\zsplitter_demo\splitter\testdlg1.cpp(37) : error C2653: “CTestDlg1”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\testdlg1.cpp(37) : error C2146: 语法错误 : 缺少“;”(在标识符“ThisClass”的前面)
1>e:\zsplitter_demo\splitter\testdlg1.cpp(37) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\zsplitter_demo\splitter\testdlg1.cpp(37) : error C2065: “ThisClass”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg1.cpp(39) : error C2065: “OnButton1”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg1.cpp(41) : error C2248: “ZSplitterDlgImpl<t>::GetThisMessageMap”: 无法访问 protected 成员(在“ZSplitterDlgImpl<t>”类中声明)
1> with
1> [
1> T=CPropertyPage
1> ]
1> e:\zsplitter_demo\splitter\zsplitterdlg.h(156) : 参见“ZSplitterDlgImpl<t>::GetThisMessageMap”的声明
1> with
1> [
1> T=CPropertyPage
1> ]
1>e:\zsplitter_demo\splitter\testdlg1.cpp(47) : error C2653: “CTestDlg1”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\testdlg1.cpp(49) : error C2352: “CDialog::OnInitDialog”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(3113) : 参见“CDialog::OnInitDialog”的声明
1>e:\zsplitter_demo\splitter\testdlg1.cpp(51) : error C3861: “addControls”: 找不到标识符
1>e:\zsplitter_demo\splitter\testdlg1.cpp(52) : error C3861: “addControls”: 找不到标识符
1>e:\zsplitter_demo\splitter\testdlg1.cpp(54) : error C3861: “addControl”: 找不到标识符
1>e:\zsplitter_demo\splitter\testdlg1.cpp(55) : error C3861: “addControl”: 找不到标识符
1>e:\zsplitter_demo\splitter\testdlg1.cpp(56) : error C3861: “addControl”: 找不到标识符
1>e:\zsplitter_demo\splitter\testdlg1.cpp(57) : error C3861: “addControl”: 找不到标识符
1>e:\zsplitter_demo\splitter\testdlg1.cpp(58) : error C3861: “addControl”: 找不到标识符
1>e:\zsplitter_demo\splitter\testdlg1.cpp(59) : error C3861: “addControl”: 找不到标识符
1>e:\zsplitter_demo\splitter\testdlg1.cpp(61) : error C3861: “init”: 找不到标识符
1>e:\zsplitter_demo\splitter\testdlg1.cpp(67) : error C2653: “CTestDlg1”: 不是类或命名空间名称
1>TestDlg2.cpp
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “_GetBaseMessageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “messageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2039: “_messageEntries”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2653: “TheBaseClass”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “GetThisMessageMap”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “_messageEntries”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “return”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : warning C4193: #pragma warning(pop) : 没有匹配的“#pragma warning(push)”
1>e:\zsplitter_demo\splitter\testdlg2.h(15) : error C2059: 语法错误 : “public”
1>e:\zsplitter_demo\splitter\testdlg2.h(16) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\zsplitter_demo\splitter\testdlg2.h(16) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\zsplitter_demo\splitter\testdlg2.cpp(18) : error C2653: “CTestDlg2”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\testdlg2.cpp(18) : error C2061: 语法错误 : 标识符“CTestDlg2”
1>e:\zsplitter_demo\splitter\testdlg2.cpp(18) : error C2653: “CTestDlg2”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\testdlg2.cpp(18) : error C2653: “CTestDlg2”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\testdlg2.cpp(18) : error C2496: “classCTestDlg2”: “selectany”只能应用到有外部链接的数据项
1>e:\zsplitter_demo\splitter\testdlg2.cpp(18) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(18) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(18) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(18) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(18) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(18) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(18) : error C2270: “GetRuntimeClass”: 非成员函数上不允许修饰符
1>e:\zsplitter_demo\splitter\testdlg2.cpp(18) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(20) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(20) : error C2059: 语法错误 : “)”
1>e:\zsplitter_demo\splitter\testdlg2.cpp(20) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(20) : error C2355: “this”: 只能在非静态成员函数的内部引用
1>e:\zsplitter_demo\splitter\testdlg2.cpp(21) : error C2448: “m_mng”: 函数样式初始值设定项类似函数定义
1>e:\zsplitter_demo\splitter\testdlg2.cpp(27) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(27) : error C2059: 语法错误 : “)”
1>e:\zsplitter_demo\splitter\testdlg2.cpp(28) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\zsplitter_demo\splitter\testdlg2.cpp(28) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\zsplitter_demo\splitter\testdlg2.cpp(31) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(33) : error C2248: “CWnd::DoDataExchange”: 无法访问 protected 成员(在“CWnd”类中声明)
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2857) : 参见“CWnd::DoDataExchange”的声明
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2089) : 参见“CWnd”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(33) : error C2352: “CWnd::DoDataExchange”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2857) : 参见“CWnd::DoDataExchange”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(40) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(40) : error C2270: “GetMessageMap”: 非成员函数上不允许修饰符
1>e:\zsplitter_demo\splitter\testdlg2.cpp(40) : error C3861: “GetThisMessageMap”: 找不到标识符
1>e:\zsplitter_demo\splitter\testdlg2.cpp(40) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(42) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(42) : error C2065: “OnDestroy”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg2.cpp(43) : error C2065: “OnButton1”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg2.cpp(44) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(44) : error C2065: “OnSize”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg2.cpp(46) : error C2248: “CPropertyPage::GetThisMessageMap”: 无法访问 protected 成员(在“CPropertyPage”类中声明)
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxdlgs.h(707) : 参见“CPropertyPage::GetThisMessageMap”的声明
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxdlgs.h(622) : 参见“CPropertyPage”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(51) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(53) : error C2248: “CWnd::OnDestroy”: 无法访问 protected 成员(在“CWnd”类中声明)
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2681) : 参见“CWnd::OnDestroy”的声明
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2089) : 参见“CWnd”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(53) : error C2352: “CWnd::OnDestroy”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2681) : 参见“CWnd::OnDestroy”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(55) : error C2065: “m_mng”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg2.cpp(55) : error C2228: “.onDestroy”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
1>e:\zsplitter_demo\splitter\testdlg2.cpp(58) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(60) : error C2352: “CDialog::OnInitDialog”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(3113) : 参见“CDialog::OnInitDialog”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(62) : error C2065: “m_mng”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg2.cpp(62) : error C2228: “.addControl”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
1>e:\zsplitter_demo\splitter\testdlg2.cpp(63) : error C2065: “m_mng”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg2.cpp(63) : error C2228: “.addControl”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
1>e:\zsplitter_demo\splitter\testdlg2.cpp(64) : error C2065: “m_mng”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg2.cpp(64) : error C2228: “.addControl”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
1>e:\zsplitter_demo\splitter\testdlg2.cpp(65) : error C2065: “m_mng”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg2.cpp(65) : error C2228: “.addControl”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
1>e:\zsplitter_demo\splitter\testdlg2.cpp(67) : error C2065: “m_mng”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg2.cpp(67) : error C2228: “.init”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
1>e:\zsplitter_demo\splitter\testdlg2.cpp(73) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(79) : error C2027: 使用了未定义类型“CTestDlg2”
1> e:\zsplitter_demo\splitter\testdlg2.cpp(18) : 参见“CTestDlg2”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(81) : error C2248: “CWnd::OnSize”: 无法访问 protected 成员(在“CWnd”类中声明)
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2703) : 参见“CWnd::OnSize”的声明
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2089) : 参见“CWnd”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(81) : error C2352: “CWnd::OnSize”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2703) : 参见“CWnd::OnSize”的声明
1>e:\zsplitter_demo\splitter\testdlg2.cpp(82) : error C2065: “m_mng”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg2.cpp(82) : error C2228: “.onSize”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
1>TestDlg3.cpp
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “_GetBaseMessageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “messageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2039: “_messageEntries”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2653: “TheBaseClass”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “GetThisMessageMap”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “_messageEntries”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “return”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : warning C4193: #pragma warning(pop) : 没有匹配的“#pragma warning(push)”
1>e:\zsplitter_demo\splitter\testdlg3.h(15) : error C2059: 语法错误 : “public”
1>e:\zsplitter_demo\splitter\testdlg3.h(16) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\zsplitter_demo\splitter\testdlg3.h(16) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\zsplitter_demo\splitter\testdlg3.cpp(18) : error C2653: “CTestDlg3”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\testdlg3.cpp(18) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\zsplitter_demo\splitter\testdlg3.cpp(18) : error C2653: “CTestDlg3”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\testdlg3.cpp(18) : error C2065: “IDD”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg3.cpp(19) : error C2550: “CTestDlg3”: 构造函数初始值设定项列表只能在构造函数定义中使用
1>e:\zsplitter_demo\splitter\testdlg3.cpp(23) : warning C4508: “CTestDlg3”: 函数应返回一个值;假定“void”返回类型
1>e:\zsplitter_demo\splitter\testdlg3.cpp(26) : error C2653: “CTestDlg3”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\testdlg3.cpp(28) : error C2248: “CWnd::DoDataExchange”: 无法访问 protected 成员(在“CWnd”类中声明)
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2857) : 参见“CWnd::DoDataExchange”的声明
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2089) : 参见“CWnd”的声明
1>e:\zsplitter_demo\splitter\testdlg3.cpp(28) : error C2352: “CWnd::DoDataExchange”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(2857) : 参见“CWnd::DoDataExchange”的声明
1>e:\zsplitter_demo\splitter\testdlg3.cpp(31) : error C2065: “m_spliter”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg3.cpp(36) : error C2653: “CTestDlg3”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\testdlg3.cpp(36) : error C2270: “GetMessageMap”: 非成员函数上不允许修饰符
1>e:\zsplitter_demo\splitter\testdlg3.cpp(36) : error C3861: “GetThisMessageMap”: 找不到标识符
1>e:\zsplitter_demo\splitter\testdlg3.cpp(36) : error C2653: “CTestDlg3”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\testdlg3.cpp(36) : error C2146: 语法错误 : 缺少“;”(在标识符“ThisClass”的前面)
1>e:\zsplitter_demo\splitter\testdlg3.cpp(36) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\zsplitter_demo\splitter\testdlg3.cpp(36) : error C2065: “ThisClass”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg3.cpp(39) : error C2248: “CPropertyPage::GetThisMessageMap”: 无法访问 protected 成员(在“CPropertyPage”类中声明)
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxdlgs.h(707) : 参见“CPropertyPage::GetThisMessageMap”的声明
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxdlgs.h(622) : 参见“CPropertyPage”的声明
1>e:\zsplitter_demo\splitter\testdlg3.cpp(44) : error C2653: “CTestDlg3”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\testdlg3.cpp(46) : error C2352: “CDialog::OnInitDialog”: 非静态成员函数的非法调用
1> c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(3113) : 参见“CDialog::OnInitDialog”的声明
1>e:\zsplitter_demo\splitter\testdlg3.cpp(48) : error C2065: “m_spliter”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg3.cpp(48) : error C2228: “.addWindow”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
1>e:\zsplitter_demo\splitter\testdlg3.cpp(49) : error C2065: “m_spliter”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg3.cpp(49) : error C2228: “.addWindow”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
1>e:\zsplitter_demo\splitter\testdlg3.cpp(50) : error C2065: “m_spliter”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg3.cpp(50) : error C2228: “.addWindow”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
1>e:\zsplitter_demo\splitter\testdlg3.cpp(51) : error C2065: “m_spliter”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg3.cpp(51) : error C2228: “.addWindow”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
1>e:\zsplitter_demo\splitter\testdlg3.cpp(52) : error C2065: “m_spliter”: 未声明的标识符
1>e:\zsplitter_demo\splitter\testdlg3.cpp(52) : error C2228: “.setStyle”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
1>TestSheet.cpp
1>ZSplitter.cpp
1>e:\zsplitter_demo\splitter\zsplitter.cpp(84) : warning C4018: “<”: 有符号/无符号不匹配
1>e:\zsplitter_demo\splitter\zsplitter.cpp(89) : warning C4018: “<”: 有符号/无符号不匹配
1>ZSplitterDlg.cpp
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “_GetBaseMessageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “messageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2039: “_messageEntries”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2653: “TheBaseClass”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “GetThisMessageMap”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “_messageEntries”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “return”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : warning C4193: #pragma warning(pop) : 没有匹配的“#pragma warning(push)”
1>c:\program files\microsoft visual studio 9.0\vc\include\assert.h(25) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>c:\program files\microsoft visual studio 9.0\vc\include\assert.h(25) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\zsplitter_demo\splitter\zsplitterdlg.cpp(58) : warning C4018: “<”: 有符号/无符号不匹配
1>e:\zsplitter_demo\splitter\zsplitterdlg.cpp(81) : warning C4018: “<”: 有符号/无符号不匹配
1>e:\zsplitter_demo\splitter\zsplitterdlg.cpp(115) : warning C4018: “<”: 有符号/无符号不匹配
1>e:\zsplitter_demo\splitter\zsplitterdlg.cpp(161) : warning C4018: “<”: 有符号/无符号不匹配
1>e:\zsplitter_demo\splitter\zsplitterdlg.cpp(164) : error C3867: “ZSplitterDlg::getYX”: 函数调用缺少参数列表;请使用“&ZSplitterDlg::getYX”创建指向成员的指针
1>e:\zsplitter_demo\splitter\zsplitterdlg.cpp(165) : error C3867: “ZSplitterDlg::getXY”: 函数调用缺少参数列表;请使用“&ZSplitterDlg::getXY”创建指向成员的指针
1>e:\zsplitter_demo\splitter\zsplitterdlg.cpp(181) : error C3861: “_wassert”: 找不到标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.cpp(182) : error C3861: “_wassert”: 找不到标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.cpp(247) : warning C4018: “<”: 有符号/无符号不匹配
1>e:\zsplitter_demo\splitter\zsplitterdlg.cpp(276) : warning C4018: “<”: 有符号/无符号不匹配
1>e:\zsplitter_demo\splitter\zsplitterdlg.cpp(278) : error C3861: “_wassert”: 找不到标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.cpp(282) : warning C4018: “<”: 有符号/无符号不匹配
1>e:\zsplitter_demo\splitter\zsplitterdlg.cpp(291) : warning C4018: “<”: 有符号/无符号不匹配
1>e:\zsplitter_demo\splitter\zsplitterdlg.cpp(344) : warning C4018: “<”: 有符号/无符号不匹配
1>e:\zsplitter_demo\splitter\zsplitterdlg.cpp(376) : warning C4018: “<”: 有符号/无符号不匹配
1>ZSplitterDlgEx.cpp
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “_GetBaseMessageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(162) : error C2039: “messageMap”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2039: “_messageEntries”: 不是“ZSplitterDlgImpl<t,splitter>”的成员
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2653: “TheBaseClass”: 不是类或命名空间名称
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “GetThisMessageMap”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2065: “_messageEntries”: 未声明的标识符
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “return”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : error C2059: 语法错误 : “}”
1>e:\zsplitter_demo\splitter\zsplitterdlg.h(165) : warning C4193: #pragma warning(pop) : 没有匹配的“#pragma warning(push)”
1>e:\zsplitter_demo\splitter\resizabledialog.h(146) : error C2065: “NOANCHOR”: 未声明的标识符
1>e:\zsplitter_demo\splitter\resizabledialog.h(148) : error C2065: “NOANCHOR”: 未声明的标识符
1>正在生成代码...
1>生成日志保存在“file://E:\zsplitter_demo\splitter\Debug\BuildLog.htm”
1>splitter - 355 个错误,26 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
GeneralMy vote of 5 Pin
zhangyongf27-Dec-10 16:31
zhangyongf27-Dec-10 16:31 
GeneralMyView1.obj : error LNK2001: unresolved external symbol "protected: static struct AFX_MSGMAP const CView::messageMap" Pin
Gertzog26-Nov-07 14:54
Gertzog26-Nov-07 14:54 
Generalcompiling problems in 2003 .NET Pin
picazo7-Aug-05 14:39
picazo7-Aug-05 14:39 
GeneralRe: compiling problems in 2003 .NET Pin
gnovice10-Oct-05 18:47
gnovice10-Oct-05 18:47 
GeneralRe: compiling problems in 2003 .NET Pin
picazo11-Oct-05 4:23
picazo11-Oct-05 4:23 
QuestionCan not compile under VC7 Pin
Satervalley13-Aug-02 17:12
Satervalley13-Aug-02 17:12 
AnswerRe: Can not compile under VC7 Pin
chend30-Oct-02 22:19
chend30-Oct-02 22:19 
GeneralFit a dialog in a View of a Window Pin
17-Apr-02 9:16
suss17-Apr-02 9:16 
GeneralRe: Fit a dialog in a View of a Window Pin
CapsuleDweller9-May-02 1:44
CapsuleDweller9-May-02 1:44 
GeneralZSplit in dynamic dialog Pin
Emanuele17-Apr-02 8:18
Emanuele17-Apr-02 8:18 
GeneralRe: ZSplit in dynamic dialog Pin
Mike Melnikov24-Jul-02 1:50
Mike Melnikov24-Jul-02 1:50 
Generalpragma warning Pin
Jean-Louis Guenego6-Aug-01 0:37
Jean-Louis Guenego6-Aug-01 0:37 
GeneralSplitter Pin
Pascal Cayrol18-May-01 3:00
Pascal Cayrol18-May-01 3:00 
GeneralRe: Splitter Pin
Pascal Cayrol18-May-01 4:14
Pascal Cayrol18-May-01 4:14 
GeneralRe: Splitter Pin
Mike Melnikov30-May-01 1:27
Mike Melnikov30-May-01 1:27 
GeneralNow it works with resizable dialog. Pin
Mike Melnikov6-Mar-01 23:17
Mike Melnikov6-Mar-01 23:17 
Questionwork with resizable dialog? Pin
philip andrew1-Mar-01 13:04
philip andrew1-Mar-01 13:04 
AnswerRe: work with resizable dialog? Pin
Mike Melnikov2-Mar-01 5:48
Mike Melnikov2-Mar-01 5:48 
AnswerRe: work with resizable dialog? Pin
Mike Melnikov6-Mar-01 23:25
Mike Melnikov6-Mar-01 23:25 
GeneralRe: work with resizable dialog? Pin
philip andrew13-Mar-01 10:46
philip andrew13-Mar-01 10:46 
GeneralExample As Member tab crashes Pin
26-Feb-01 1:49
suss26-Feb-01 1:49 
GeneralRe: Example As Member tab crashes Pin
Mike Melnikov26-Feb-01 5:33
Mike Melnikov26-Feb-01 5:33 
GeneralI got the same problem. Pin
26-Feb-01 13:13
suss26-Feb-01 13:13 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.