首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

MFC工具条和状态栏二

一般,在清除状态栏消息时,发送WM_POPMESSAGESTRING,通过消息参数wParam指定一个字符串资源,其ID 为AFX_IDS_IDLEMESSAGE,对应的字符串是“Ready”。 状态栏显示菜单项的提示信息 状态栏的一个重要作用是显示菜单命令或者工具条按钮的提示信息。本节讨论如何显示菜单命令的提示信息,关于工具条按钮在这方面的讨论见后面13.2.4.4章节。 显示菜单命令的提示信息,就是每当一个菜单项被选中之后,在状态栏显示该菜单的功能、用法等信息。这些信息以字符串资源的形式保存,字符串ID对应于菜单项的命令ID。 所以,必须处理菜单选择消息WM_MENUSELECT。CFrameWnd实现了消息处...
类别:程序开发 - C/C++    查看:134    更新:2014-05-19

MFC工具条和状态栏一

 MFC工具条和状态栏   Windows控制窗口  Windows (Windows95或者以上版本) 提供了系列通用控制窗口,其中包括工具条(ToolBar)、状态栏(StatusBar)、工具条提示窗口(ToolTip)。Windows在一个DLL加载时注册个控制窗口的“窗口类”。例如,工具条的“窗口类”是“ToolbarWindow32”,状态栏的“窗口类”是“msctls_statusbar32”,工具条提示窗口的“窗口类”是“tooltips_class32”。为了保证该DLL被加载,使用控制“窗口类”前,应该首先调用函数InitCommonControl。MFC在窗口注册函数AfxDeferRegisterClas...
类别:程序开发 - C/C++    查看:148    更新:2014-05-19

MFC:对话框和对话框类CDialog二

DDX_TextWithFormat用来按照一定的格式把数据写入或者读出编辑框。首先,它得到编辑框的句柄hWndCtrl,然后,根据传输方向从编辑框读出内容并转换成指定格式(读出时),或者转换内容为指定格式后写入编辑框(写入时)。本函数可以处理个数不定的参数,是多个数据交换和验证函数的基础。 void AFXAPI DDX_Text(CDataExchange* pDX, int nIDC, long& value) {if (pDX->m_bSaveAndValidateDDX_TextWithFormat(pDX, nIDC, _T("%ld"), AFX_IDP_PARSE_INT, &value);elsDDX_TextWithFormat(pDX, nIDC, _T("%ld"), AFX_IDP_PARSE...
类别:程序开发 - C/C++    查看:135    更新:2014-05-19

MFC:对话框和对话框类CDialog一

 对话框和对话框类CDialog  对话框经常被使用,因为对话框可以从模板创建,而对话框模板是可以使用资源编辑器方便地进行编辑的。 模式和无模式对话框  对话框分两种类型,模式对话框和无模式对话框。 模式对话框  一个模式对话框是一个有系统菜单、标题栏、边线等的弹出式窗口。在创建对话框时指定WS_POPUP, WS_SYSMENU, WS_CAPTION和 DS_MODALFRAME风格。即使没有指定WS_VISIBLE风格,模式对话框也会被显示。创建对话框窗口时,将发送WM_INITDIALOG消息(如果指定对话框的DS_SETFONT风格,还有WM_SETFONT消息)给对话框过程。对话...
类别:程序开发 - C/C++    查看:156    更新:2014-05-19

MFC:消息映射的实现三

下面,讨论几个MFC类覆盖OnCmdMsg虚拟函数时的实现。这些类的OnCmdMsg或者可能是标准MFC命令消息路径的一个环节,或者可能是一个独立的处理过程(对于其中的MFC窗口类)。从分析CView的OnCmdMsg实现开始。 CView的OnCmdMsg  CView::OnCmdMsg(UINT nID, int nCode, void* pExtra,AFX_CMDHANDLERINFO* pHandlerInfo)首先,调用CWnd::OnCmdMsg,结果是搜索当前视的类和基类的消息映射数组,搜索顺序是从下层到上层。若某一层实现了对命令消息nID的处理,则调用它的实现函数;否则,调用m_pDocument->OnCmdMsg,把命令消息送给文档类处理。m_pDocument是和当前视...
类别:程序开发 - C/C++    查看:122    更新:2014-05-19

MFC:消息映射的实现二

本节对CCmdTarget的两个成员函数作一些讨论,是为了对MFC的消息处理有一个大致印象。后面4.4.3.2节和4.4.3.3节将作进一步的讨论。 MFC窗口过程  前文曾经提到,所有的消息都送给窗口过程处理,MFC的所有窗口都使用同一窗口过程,消息或者直接由窗口过程调用相应的消息处理函数处理,或者按MFC命令消息派发路径送给指定的命令目标处理。那么,MFC的窗口过程是什么?怎么处理标准Windows消息?怎么实现命令消息的派发?这些都将是下文要回答的问题。 MFC窗口过程的指定  从前面的讨论可知,每一个“窗口类”都有自己的窗口过程。正常情况下使用该“窗口类”创建的窗口都使用它的窗口...
类别:程序开发 - C/C++    查看:146    更新:2014-05-19

MFC:消息映射的实现一

 消息映射的实现   Windows消息概述  Windows应用程序的输入由Windows系统以消息的形式发送给应用程序的窗口。这些窗口通过窗口过程来接收和处理消息,然后把控制返还给Windows。 消息的分类   队列消息和非队列消息  从消息的发送途径上看,消息分两种:队列消息和非队列消息。队列消息送到系统消息队列,然后到线程消息队列;非队列消息直接送给目的窗口过程。这里,对消息队列阐述如下:Windows维护一个系统消息队列(System message queue),每个GUI线程有一个线程消息队列(Thread message queue)。鼠标、键盘事件由鼠标或键盘驱动程序转换成输入消息并把消息放进系统消息队列,例如W...
类别:程序开发 - C/C++    查看:133    更新:2014-05-19

MFC:CObject类

 CObject类  CObject是大多数MFC类的根类或基类。CObject类有很多有用的特性:对运行时类信息的支持,对动态创建的支持,对串行化的支持,对象诊断输出,等等。MFC从CObject派生出许多类,具备其中的一个或者多个特性。程序员也可以从CObject类派生出自己的类,利用CObject类的这些特性。本章将讨论MFC如何设计CObject类的这些特性。首先,考察CObject类的定义,分析其结构和方法(成员变量和成员函数)对CObject特性的支持。然后,讨论CObject特性及其实现机制。 CObject的结构  以下是CObject类的定义:class CObject{public: //与动态创建相关的函数virtual CRuntimeClass* G...
类别:程序开发 - C/C++    查看:131    更新:2014-05-19

MFC和Win32

 MFC和Win32   MFC Object和Windows Object的关系  MFC中最重要的封装是对Win32 API的封装,因此,理解Windows Object和MFC Object (C++对象,一个C++类的实例)之间的关系是理解MFC的关键之一。所谓Windows Object(Windows对象)是Win32下用句柄表示的Windows操作系统对象;所谓MFC Object (MFC对象)是C++对象,是一个C++类的实例,这里(本书范围内)MFC Object是有特定含义的,指封装Windows Object的C++ Object,并非指任意的C++ Object。MFC Object 和Windows Object是不一样的,但两者紧密联系。以窗口对象为例: 一个MFC窗口对象是一个C++ CWnd类(...
类别:程序开发 - C/C++    查看:135    更新:2014-05-19

MFC概述

 MFC概述   MFC是一个编程框架  MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库...
类别:程序开发 - C/C++    查看:113    更新:2014-05-19

MFC下Unicode到UTF-8格式的转换

UNICODE 通过用双字节来表示一个字符,从而在更大范围内将数字代码映射到多种语言的字符集。MFC 以宏的形式提供了将一般文本转换成 UNICODE 数据类型的途径。开发人员只需要稍微改变一下编写代码的习惯便可以轻松编写支持 UNICODE 的应用。定义部分:通用 多字节 宽字节_TCHAR/TCHAR char wchar_t_T 或_TEXT char 常量字符串 wchar_t 常量字符串 LLPTSTR char *(或win32下LPSTR) wchar_t *LPCTSTR const char * LPCSTR const wchar_t * 通用形式就是自动的判断当前是否定义了_UNICODE字符集,例 如果是的话typedef wchar_t TCHAR;不是的话typedef char TCHA...
类别:其它 - 字符编码    查看:192    更新:2014-05-09