单文档
国际货运单文档

国际货运单文档1、填写始发站机场的IATA三字代码,由承运人填写。
如果没有机场的三字代码,可以填写机场所在城市的三字代码;承运人的票证注册代号;货运单号,货运单号由八位数字组成,前七位为顺序号,第八位为检查号。
3、Shipper’ Account Number,托运人帐号:根据承运人的需要,填写托运人帐号。
5、Conignee’ Account Number,收货人帐号:根据承运人的需要,填写收货人帐号。
6、Iuing Carrier’ Agent Name and City,代理人名称和城市:应清楚、详细地填写代理人名称及其所在城市。
7、Agent’ IATA Code ,代理人的I ATA代号:在未启用CASS系统的地区,必须填写I ATA 七位数字的代号;在已启用CASS系统的地区,除此之外,还必须填写三位数字的地址代码及检查号。
8、Account No。
代理人帐号:根据承运人的需要,填写代理人帐号。
9、Airport of Departure (Addr。
of Firt Carrier)and Requeted Routing,始发站机场和航线的要求:填写货物始发站机场的全称(第一承运人的地址)和托运人所求的路线。
10、Accounting Information ,结算注意事项。
1)填写货物运费的支付方式,如现金或支票等。
2)杂费证只能支付作为货物运输的行李所产生的费用,如果使用杂费证付款,填写杂费证票证号码并换算成货运单中所使用的币种,以及填写客票号码及其已经确认的航班、日期、航线。
3)用美国政府提单支付费用时,填写美国政府提单号码。
4)使用信用卡付款时,填写信用卡号码。
5)因无法交付而退回始发站的货物,在新货运单的此栏内填写原货运单号码。
6)托运人或代理人要求填制的有关代号。
11、Routing and Detination, 航线和目的站。
1)To,至:填写目的站或者第一中转站机场的IATA三字代码。
用VC++MFC做文本编辑器(单文档模式)

用VC++MFC做文本编辑器(单文档模式)原来做过一个用对话框实现的文本编辑器,其实用MFC模板里面的单文档模板也可以做,甚至更加方便,适合入门级的爱好者试试,现介绍方法如下:1,首先新建一个工程,选择MFC AppWizard(exe),定名字为:textview_1,程序类型选择单个文档,其他均默认完成。
2,在系统自动生成的CTextview_1Doc类里面增加一个控件,用于文本文档的暂时存放:class CTextview_1Doc : public CDocument{......public:CStringArray m_strContent;}然后在CTextview_1Doc类的Serialize函数里面增加打开、保存文本文件的程序:void CTextview_1Doc::Serialize(CArchive& ar){CString str;if (ar.IsStoring()){// TODO: add storing code hereint nLines = (int)m_strContent.GetSize();for ( int i=0; i<nLines; i++ ){str = m_strContent.GetAt( i );ar.WriteString( str ); // 将字符串集合类对象中文本保存到硬盘}}else{// TODO: add loading code herewhile ( ar.ReadString( str ) ){m_strContent.Add( str ); // 将行文本添加到字符串集合类对象中}}}然后鼠标在CTextview_1Doc 上点击右键,在弹出菜单里面选择:Add Virtual Function,在弹出的窗口中选中DeleteContents,点击“添加和编辑”按钮。
在生成的程序中添加以下代码:void CTextview_1Doc::DeleteContents(){// TODO: Add your specialized code here and/or call the base classm_strContent.RemoveAll(); // 清除集合类对象中的内容CDocument::DeleteContents();}3,在系统自动生成的CTextview_1View类里面增加一个编辑器的控件指针成员,用于在界面中生成文本编辑器:class CTextview_1View : public CView{......public:CEdit* m_ctrlEdit;}该指针成员在类建立时要设置初始化值为NULL,否则运行起来就会出错,如下:CTextview_1View::CTextview_1View(): m_ctrlEdit(NULL) //添加这一行初始化代码{// TODO: add construction code here}用第2点介绍的类似步骤,为CTextview_1View类重写其OnInitialUpdate函数,添加内容如下:void CTextview_1View::OnInitialUpdate(){CView::OnInitialUpdate();// TODO: Add your specialized code here and/or call the base classCRect rcClient;GetClientRect( rcClient ); // 获取当前视图的客户区大小// if ( m_ctrlEdit ) delete m_ctrlEdit;m_ctrlEdit = new CEdit();m_ctrlEdit->Create( ES_MULTILINE | WS_CHILD | WS_VISIBLE| WS_HSCROLL | ES_AUTOHSCROLL // 自动水平滚动| WS_VSCROLL | ES_AUTOVSCROLL , // 自动垂直滚动rcClient, this, 201); // 创建多行编辑控件CTextview_1Doc* pDoc = GetDocument(); // 获取与视图相关联的文档指针// 以下是将文档中的m_strContent内容全部赋给strCString str;int nLines = (int)pDoc->m_strContent.GetSize();for ( int i=0; i<nLines; i++ ){str = str + pDoc->m_strContent.GetAt( i );str = str + "\r\n"; // 换行}m_ctrlEdit->SetTabStops( 16 ); // 设置Tab符大小m_ctrlEdit->SetWindowText( str ); // 将文档内容传给控件}4,现在运行一下,文本编辑器就做好了。
mfc入门单文档MFC应用程序实例-图文

mfc入门单文档MFC应用程序实例-图文14单文档MFC应用程序实例
对话框应用程序使用简洁高教,所以被广泛地使用。
对话框在默认情
况下缺少状态栏、f具栏等界面元素,不能算作是。
完整”的Wwbn应用
程序。
RIUt/Clllr面,可以看作是“标准”的Windown应用程序再面。
1.41技术要点
’MFC的单文档应用程序结构的一大特点是教据和界面分N,在单文
档应用程序中,程序中数据的保存、加藏和处理等功糖由CDocumtI完戚,而数据的显示由cV.州来完成a这种结构又被称为“文彬视田”结构,
在这种结构下.很容器做刊数据和界面的一对多关联。
‘MFC中提供T众多派生于CView的弦生类,每个类都翻IT同的功能,在新建项目时,可以根据蜜际需謇选样不同的根生类。
142实例步骤奉实棚将以CFonnView为例,演示在ViualC++60中新建单文档项目
的鼻体方法。
实例步骤如下所示。
(I)打开ViualC++6.0.单击。
File”/“N州‘菜单。
在弹出对话摧
中选择项目类撼为“MFCAppWiurd(e某e)1.在项目名称文本框中输
A“NffcSdi”,单击“OK-MHE入向导界面。
(2)在向导的Skpl中,选择“Sinlledoeummt“,其余琏项用默认值(参麒1:919)。
单击“Ne某t”按钮进人下一步。
(”向导的Step2.用于设置是否在程序中自动加A对散据库的支持,此步鼻对默认设置不做改动(参照图iIO),直接单击“Ne某r按钮进
AT一步。
如何在MFC单文档中创建多视图

u 一个文档可以有多个视图,由Document中成员变量CPtrList m_ViewList维护。
u CFrameWnd拥有一个成员变量CView* m_pActiveView指向当前活动的View。
u CView中拥有一个成员变量CDocument* m_pDocument指向该视图相关的Document。
!m_wndSplitter2.CreateView(1, 0, RUNTIME_CLASS(BottomLView), CSize(350, 240), pContext) ||
!m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(TopRView), CSize(350, 240), pContext) ||
/wang_qingyuan/blog/item/60870400275c5b087bec2cbd.html
深入分析MFC文档视图结构
2008-10-16 19:40
文档视图结构(Document/View Architecture)是MFC的精髓,也是Observer模式的具体实现框架之一,Document/View Architecture通过将数据和其表示分开,提供了很好的数据层次和表现层次的解耦。然而,虽然我们使用MFC AppWizard就可以很轻松地获得一个支持Document/View Architecture的MFC程序框架,Document/View Architecture本身的复杂性加上VC产生的一系列代码足够让我们眼花缭乱,一时陷入云里雾里不可自拔。加上我们更多的人都没有经过Windows SDK Programming 的学习和经历就直接进行MFC Programming的学习和开发,更是面对一堆的代码不知所措。
单文档与多文档

这一点与Windows消息 这一点与Windows消息 Windows 和控件通知消息不同, 和控件通知消息不同, 因为Windows Windows消息和控 因为Windows消息和控 件通知消息就只能被 窗口和视图处理. 窗口和视图处理.
文档/视图结构的工作机制 文档 视图结构的工作机制
视图通过GetDocument 视图通过GetDocument 成员函数获得指向相关 联的文档对象的指针 通过该指针调用文 档类的成员函数来 从文档中读取数据
16.3 CDocument类的派生类构造 类的派生类构造
构造CDocument类的派生类的基本步骤 类的派生类的基本步骤 构造 一般来说, 一般来说,从CDocument类派生自己的文档类所需的典型步骤为 类派生自己的文档类所需的典型步骤为 为每一个文档类型从CDocument类(当然也可以是其它 类 当然也可以是其它 为每一个文档类型从 CDocument类的派生类 派生一个相应的文档类. 类的派生类)派生一个相应的文档类 类的派生类 派生一个相应的文档类. 为文档类添加成员变量.这些成员变量用来保存文档的 为文档类添加成员变量. 数据,其它对象 如与文档相关联的视图 如与文档相关联的视图)直接或间接地访 数据,其它对象(如与文档相关联的视图 直接或间接地访 问这些成员变量来读取或更新文档的数据. 问这些成员变量来读取或更新文档的数据. 重载Serialize成员函数,实现文档数据的串行化. 成员函数,实现文档数据的串行化. 重载 成员函数
视图结构中 在文档/视图结构中 文档 视图
在文档和用户之 间起中介作用 除WM_COMMAND外,文档不 WM_COMMAND外 文档不 处理其它的Windows Windows消息 能处理其它的Windows消息 视图可以直接或间接 地访问文档类中的成 员变量, 员变量,它从文档类 中(而不是从存储介质 而不是从存储介质 中)将文档中的数据取 将文档中的数据取 出来, 出来,然后在屏幕上 显示文档的数据
mfc单文档例子

mfc单文档例子以下是一个简单的MFC单文档(SDI)应用程序的示例:1. 首先,创建一个新的MFC应用程序项目。
在Visual Studio中,选择“文件”菜单,然后选择“新建”->“项目”。
在“新建项目”对话框中,选择“MFC应用程序”,然后输入项目名称和位置,并单击“确定”。
2. 在“MFC应用程序向导”中,选择“单文档”作为应用程序类型,并单击“完成”按钮。
3. 在生成的代码中,找到`CMainFrame`类。
这是应用程序的主窗口类。
4. 在`CMainFrame`类的`OnCreateClient`函数中,添加以下代码:```cppvoid CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext pContext){// 创建视图窗口m_(_T("My View"), WS_CHILD WS_VISIBLE WS_BORDERWS_HSCROLL WS_VSCROLL, CRect(0, 0, 800, 600), this,ID_VIEW_WIN);}```5. 在`CMainFrame`类的`OnCreate`函数中,添加以下代码:```cppBOOL CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) {if (CFrameWnd::OnCreate(lpCreateStruct) == -1)return -1;// 创建工具栏和状态栏CToolBarCtrl tb;CRect rect(0, 0, 800, 24);(WS_CHILD WS_VISIBLE CBRS_TOP CBRS_GRIPPERCBRS_TOOLTIPS CBRS_FLYBY, rect, this, ID_VIEW_TB);m_(WS_CHILD WS_VISIBLE CBRS_TOP CBRS_GRIPPER CBRS_TOOLTIPS CBRS_FLYBY, rect, this, ID_VIEW_TB);m_(this);m_(0, ID_VIEW_STATUSBAR, SBPS_STRETCH, 0);m_(1, ID_VIEW_STATUSBAR2, SBPS_STRETCH, 0);m_(2, ID_VIEW_STATUSBAR3, SBPS_STRETCH, 0);m_(0, SBPS_NORMAL);m_(1, SBPS_NORMAL);m_(2, SBPS_NORMAL);m_(0, _T("Ready"));m_(1, _T("Ready"));m_(2, _T("Ready"));return TRUE;}```6. 编译并运行应用程序。
MFC多文档和单文档视结构

MFC多文档和单文档视结构★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★//这一页的代码最重要了,呵呵……什么都在这里面呢;单文档新建:CWinApp_________docManager->docSingleTemplate 的OpenDocumentFile函数参数为空,此函数完成了大部分东西,包括新建文档类框架类等______________然后是调用CDocument就没什么意思了,当然我们要是重载了CDocument的新建函数就是调用子类虚函数。
多文档新建:CWinApp_________docManager->docMultTemplate的OpenDocumentFile函数参数为空,此函数完成了大部分东西,包括新建文档类框架类等______________然后是调用CDocument就没什么意思了,当然我们要是重载了CDocument的新建函数就是调用子类虚函数。
单文档打开:CWinApp_________docManager中经过一个打开对话框传递参数,中途还调用了APP的OpenDocumentFile,当然如果我们的APP重载了这个函数也要调用我们的但是我们的函数一定别忘记最后返回是调用父类的此函数___________docSingleTemplate的OpenDocumentFile函数参数不为空,此函数完成了大部分东西,包括新建文档类框架类等______________然后是调用CDocument就没什么意思了,当然我们要是重载了CDocument的新建函数就是调用子类虚函数。
多文档打开:CWinApp_________docManager中经过一个打开对话框传递参数,中途还调用了APP的OpenDocumentFile,当然如果我们的APP重载了这个函数也要调用我们的但是我们的函数一定别忘记最后返回是调用父类的此函数___________docMultTemplate的OpenDocumentFile函数参数不为空,此函数完成了大部分东西,包括新建文档类框架类等______________然后是调用CDocument就没什么意思了,当然我们要是重载了CDocument的新建函数就是调用子类虚函数。
VC单文档中画图

3. 创 建 一 个 对 话 框 ( Setting ) 用 来 设 置 画 图 的 线 宽 。 同 时 在 ResourceView 中添加一个成员变量用来保存线宽。 添加一个静态文本以及一个编辑框。如图
为该对话框添加命令响应 当单击设置的时候,弹出 Setting 对话框对线宽进行设置。当再次打 开线宽设置的时候,保存上次所设置的线宽 void CGraphicView::OnSetting() {
m_nDrawType=3; }
void CGraphicView::OnEllipse() {
// TODO: Add your command handler code here m_nDrawType=4; } 开始画图要为鼠标左键按下和鼠标左键弹起添加 Windows Message Handler
鼠标左键按下去画图时我们要保存一个点。故添加一个成员变量来保 存这个点,并初始化。 CGraphicView::CGraphicView() {
// TODO: add construction code here m_nDrawType=0;//初始化画图类型 m_ptOrigin=0;//初始化鼠标左键原点 m_nLineWidth=0;//初始化线宽 } void CGraphicView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default m_ptOrigin=point; CView::OnLButtonDown(nFlags, point); } 鼠标左键弹起,画图 在前面添加了命令响应,m_nDrawTyoe=1 时,画图为点,2 为直线, 3 为矩形,4 为椭圆。下面,利用 switch 语句进行画图。 void CGraphicView::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CClientDC dc(this);//创建画图 dc 对象
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MFC是一个编程框架MFC中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序。
MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法。
AppWizard可以用来生成初步的框架文件。
资源编辑器用于帮助直观的设计用户接口。
ClassWizard用来协助添加代码到框架文件,最后,通过类库实现了应用程序特定的逻辑。
MFC提供了一个Windows应用程序开发模式,对程序的控制主要是由MFC框架完成的。
而且MFC也完成了大部分的功能,预定义或实现了许多事件和消息处理。
框架或者由其本身处理事件,不依赖程序员的代码,或者调用程序员的代码来处理应用程序特定的事件。
1.S DI生成1.步骤dxq2009首先,打开VC++6.0开发环境,然后,选择”File”菜单中的“New”子菜单,在弹出的对话框中选择“MFC AppWizard(exe)”项并在“Progect name”编辑框中输入合适的工程名字Simple1,如图,它的意思是创建一个基于MFC的应用,接着进入正式的创建过程,MFC 应用程序的创建过程有6步(基于对话框)或者6步(SDI或者MDI),下面首先介绍SDI 应用的创建过程。
(1)第一步用于选择应用的结构以及语言等。
如图1,首先确定应用是否需要Doc/View Architecture Support支持,因为不使用该结构的应用不支持从磁盘文件打开文档,也没有派生于类CWnd的窗口客户区。
上面3个单选按钮用于确定创建的应用类型,包括单文档,多文档,对话框,这里选择第一个。
然后从资源列表框选择应用所使用的语言种类,单击“Next”。
图1(2)第二步为用用程序选择4项数据库支持选项之一:如图2.如果选择了数据库支持,那么单击“Data Source”按钮,选择外部的数据库表项,一般按默认即可,单击“Next”。
图2(3)第三步选择希望包含在应用中的复合文档支持项,同时判定是否启用标准的ActiveX 资源,以及是否为应用的菜单条添加额外的自动化命令等,如图4,一般安默认,单击“Next”图4(4)第四步用于选择应用所需的基本用户接口特征,以及所想使用的工具栏类型,如图5,如果想要修改应用所使用的文件名和扩展名,或者想要调整应用的用户接口和框架风格,就单击“Advanced”,然后修改,一般默认,单击“Next”。
图5(5)第五步设置工程的风格,Explorer风格的应用类似于资源管理器,标准MFC风格带有文件视图区域,还要判定是否希望应用向导在源文件中生成注释,最后选择MFC库时动态链接还是静态链接,如图6单击“Next”。
图6(6)第六步可以更改由应用向导提供的默认类型,基类,头文件和实现文件名,对于视图,还可以更改它的基类,如图7,一般默认,单击”Finish”,在弹出的工程信息对话框中点击“OK”即结束应用的创建过程。
图72.MFC工程的成员类及全局对象应用向导可以自动地生成MFC应用的各个C++类,另外,还能自动的生成一个类APP的全局对象theApp,如图8下面做简要说明。
图81.应用类及全局对象(CCExcmpleApp)应用类封装了Windows应用的初始化,运行以及终止的全过程。
对于每一个基于框架的应用,它必须有一个且只能有一个派生于CWinApp的类对象。
这个对象是全局对象,因此它在创建任何窗口前首先被构造。
类CWinApp提供了几个关键的可重载的虚成员函数,他们是InitInstance,Run,ExitInstance以及OnIdle等。
而且,在程序中可以随时调用全局函数AfxGetApp,以便获得CWinApp类对象的指针。
2.文档类(CCExcmpleDoc)文档类实际上是一种数据结构,该类实现了对这种结构的封装以利于管理,通常,它不但包含应用中所需的数据,而且也包含了处理这些数据的方法,另外,文档类还可以为应用提供与其存储的数据相关的服务。
3.视图类(CCExcmpleView)该类占有框架窗口的客户区,主要负责显示文档数据,也为文档对象和用户之间提供了用以交互的可视接口,另外,也完成了与文档打印相关的操作,通常,一般的绘制操作都是在该类中完成,因此有时也称视图类窗口为“绘制窗口”。
4.框架类(CMainFrame)框架类表示应用程序的主框架窗口,其主要作用是响应标准的窗口消息,不过,它通常先将消息按照一定的次序传递给视图类以及文档类等其他命令处理类,另外,它还为视图类提供可视化的边框,同时也包括标题栏,一些标准的窗口组件等。
5.“关于”对话框类(CAboutDlg)该类封装了用于显示软件版本,版权等相关信息的“关于”对话框,通常不需要对它进行任何的编程。
而只需要使用对话框资源编辑器对对话框模板进行简单的编辑即可。
3.源文件结构:应用向导生成的应用程序具有很多原始的功能,例如:打开文件对话框等,而且还可以使用类向导向某个类添加成员函数或者成员变量,而且类向导可以将添加的成员安排在何时得位置。
应用向导和类向导时怎么样实现这些自动功能呢?下面先浏览一下CCExcmpleView的头文件:// CExcmpleView.h : interface of the CCExcmpleView class///////////////////////////////////////////////////////////////////////////////#if !defined(AFX_CEXCMPLEVIEW_H__4FEB3544_9956_4E4C_93C9_35D40796D187__INCLUDED_) #define AFX_CEXCMPLEVIEW_H__4FEB3544_9956_4E4C_93C9_35D40796D187__INCLUDED_#if _MSC_VER > 1000#pragma once#endif// _MSC_VER > 1000class CCExcmpleView : public CView{//Constructorsprotected: //create from serialization onlyCCExcmpleView();DECLARE_DYNCREATE(CCExcmpleView)//Attributespublic:CCExcmpleDoc* GetDocument();//Operationspublic://Overrides// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CCExcmpleView)public:virtual void OnDraw(CDC* pDC); // overridden to draw this viewvirtual BOOL PreCreateWindow(CREATESTRUCT& cs);protected:virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);//}}AFX_VIRTUAL// Implementationpublic:virtual ~CCExcmpleView();#ifdef _DEBUGvirtual void AssertValid() const;virtual void Dump(CDumpContext& dc) const;#endifprotected:// Generated message map functionsprotected://{{AFX_MSG(CCExcmpleView)// NOTE - the ClassWizard will add and remove member functions here.// DO NOT EDIT what you see in these blocks of generated code !//}}AFX_MSGDECLARE_MESSAGE_MAP()};#ifndef _DEBUG // debug version in CExcmpleView.cppinline CCExcmpleDoc* CCExcmpleView::GetDocument(){ return (CCExcmpleDoc*)m_pDocument; }#endif///////////////////////////////////////////////////////////////////////////////{{AFX_INSERT_LOCA TION}}// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif// !defined(AFX_CEXCMPLEVIEW_H__4FEB3544_9956_4E4C_93C9_35D40796D187__INCLUDED_)该代码的作用是声明CCExcmpleView类,但是这个声明包含在一个“#iif…#define…#endif”结构内,其目的时保证编译时此文件只被包含一次。
下面介绍下头文件的组成部分。
主要由注释块,访问类型以及分界符。
1.注释块:用“//”引导的绿色部分Constructors块:构造块,用于声明该类的C++构造函数,以及所需的各种初始化函数。
Attributes块: 共性或属性快,用于包含对象的共性或属性,Operations块:操作块,用于包含成员函数,可以通过对象调用这些函数,以使该对象执行需要的任务或操作,Overridables块:重载块,该块用于包含虚函数,当需要更改基类的行为时,可以在派生类中重载这些函数。
Implementation块;实现块,是MFC类声明中最重要的部分。
实现块包括所有的实现信息,包括成员变量和成员函数。
2.访问类型。
Public ,protected,private3.分界符:从上面的代码可以看到如“//{{AFX_MSG(CCExcmpleView)”等的标识符,类向导使用几种特殊的分界符,用以区分向导生成的代码和用户输入的代码,这些格式化的分界符以注释的形式出现在代码中。