
VC & MFC
文章平均质量分 78
redoc_li
这个作者很懒,什么都没留下…
展开
-
List Control的ItemChange消息
在使用MFC的CListCtrl时,用得最多的就是LVN_ITEMCHANGED和LVN_ITEMCHANGING两个消息了,它们通常都是成对出现。可是,我们经常认为只有Select一个Item时才会产生这两个消息。其实,这两个消息的意思是某个item发生了变化,包括:状态变化和数据变化。其中,状态变化通常是由SetItemState引起的,数据变化是由SetItemData引起的。消息的数据封装原创 2007-06-17 22:20:00 · 4781 阅读 · 0 评论 -
MFC技术系列(二)--窗口消息(1)
本文将以实际的典型场景来解释发生的消息,从而能够将窗口的消息具体化,并能连贯起来。文中的内容绝大部分为VC提供的Spy++工具获得,小部分为通过程序获得。文中显示的片段多数为一个窗口中的消息,对于发往父窗口的消息,将会附带说明。Windows的标准消息定义位于winuser.h中(%Program Files%/Microsoft Visual Studio .NET 2003/Vc7/P原创 2007-06-17 22:16:00 · 4693 阅读 · 0 评论 -
MFC技术系列(二)--窗口消息(2)
(接上篇, 窗口的状态)2.3 窗口创建创建一个如下简单对话框,使用程序捕获到的消息序列如下:WM_GETMINMAXINFO (0x0024)WM_NCCREATE (0x0081)WM_NCCALCSIZE (0x0083) WM_CREATE (0x0001)WM_SIZE (0x0005)WM_MOVE (0x0003)WM_SETFONT原创 2007-06-18 23:10:00 · 2441 阅读 · 1 评论 -
MFC技术系列(一)--窗口的风格
窗口风格是各种窗口开发的重要基础之一。它可以分为普通风格(WS_系列)和扩展风格(WS_EX_系列)。从其特点上,主要分成两大类:1. 一类表明窗口和其它窗口的关系,包括:WS_CHILD、WS_POPUP、WS_OVERLAPPED、WS_CLIPCHILDREN、WS_CLIPSIBLINGS、WS_GROUP、WS_EX_TOPMOST、WS_EX_MDICHILD等原创 2007-06-10 23:15:00 · 2594 阅读 · 0 评论 -
MFC探索之路-开篇
从2000年左右开始使用MFC,除了中间用C#做了2年半开发外,其余时间绝大部分都花在MFC上了。对它的理解也是逐渐加深的一个过程。个人并不认为它是一个不成功的框架。在如今大谈框架的年代,感觉踏实做点事情才是正途,否则国内的软件水平如何能得到根本进步? MFC自出道以来,至今已经拥有大量的程序员、成熟的商业应用、成熟的技术社区。虽然它无法做到向VB, C#, Dephi等那样的RAD,可是蕴藏在其原创 2007-06-10 23:13:00 · 1121 阅读 · 1 评论 -
MFC技术系列(四)--Frame窗口之Control Bar(3)
1.4 CDockBar类该类所代表的子窗口是CControlBar的父窗口,而Frame窗口则是该类所在的子窗口的父窗口。从表面上看,CControlBar Dock在了Frame窗口中,但实际上,中间还有一层窗口,这就是CDockBar。前面已经提到,CFrameWnd提供了四个CDockBar实例,分别对应四个方向。该类的定义位于afxpriv.h中(同CDockC原创 2007-08-05 23:09:00 · 4156 阅读 · 2 评论 -
MFC技术系列(四)--Frame窗口之Control Bar(2)
1.3 CDockContext类在前面的CControlBar类中,提到了当拖动荡Bar时,将借助CDockContext类的方法来完成。CDockContext类主要就是用来完成对Bar的行为,包括:拖动,在浮动和停靠间Toggle、改变尺寸。下面分别做一个说明:1. Drag(拖动)标准的行为,即从鼠标左键按下Bar的空白区域(非子窗口区域原创 2007-08-04 23:36:00 · 3814 阅读 · 3 评论 -
MFC技术系列(四)--Frame窗口之Control Bar(1)
接上篇, MFC技术系列(四)--Frame窗口(2)MFC中主要涉及到下面的文件和类:barcore.cpp (CControlBar)dockcont.cpp (CDockContext)bardock.cpp (CDockBar)winfrm2.cpp (CFrameWnd)bartool.cpp (CToolBar) MFC的Frame窗口除了支持Doc-原创 2007-08-01 23:16:00 · 5104 阅读 · 2 评论 -
MFC技术系列(四)--Frame窗口(2)
接上篇, "Frame窗口(1)" 3. MDI这是MFC提供的另一个复杂的Doc-View框架。它由CDocument, CView的派生类和CMDIChildWnd(winmdi.cpp)的派生类(Frame Window)构成一类Frame窗口,这些类的RUNTIMECLASS宏信息由CMultiDocTemplate类(docmulti.cpp)管理,并同样注册到CDocManag原创 2007-07-26 23:21:00 · 2637 阅读 · 0 评论 -
MFC技术系列(四)--Frame窗口(1)
1 Frame和View概述 Frame窗体实际就是一个Overlapped窗口(WS_OVERLAPPEDWINDOW组合风格),它可以包含菜单、工具条和标题栏。MFC使用CFrameWnd封装了Frame窗体,并提供了它更多的特性,比如:可dockable的control bar、dde会话等。进一步,MFC中提供了CMDIFrameWnd类和CMDIChil原创 2007-07-22 23:45:00 · 5296 阅读 · 0 评论 -
MFC技术系列(三)--对话框(2)
接上节, 对话框(一)1.1 对话框的创建对话框和普通窗体最大的区别在于它使用了资源来描述其界面特征。这里的资源编译后被存放在了exe或者dll的“某个位置”,类似的资源还有许多,比如:Icon, Menu, Bitmap, Accelerator, String等。这些资源都有自己的标识,对话框资源的标识为RT_DIALOG。通过下面的方法,可以在编译后的模块中获得原创 2007-07-05 22:50:00 · 2493 阅读 · 0 评论 -
MFC技术系列(二)--窗口消息(4)
接上篇, 窗口消息(3)5. MFC中的消息分发消息的Hook:标准的消息循环被MFC封装在AfxPumpMessage方法中。消息一旦被Dispatch,那么接下来如何进入到窗口的WndProc方法中呢?MFC在窗口创建时,使用AfxHookWindowCreate方法(使用SetWindowsHookEx API方法+WH_CBT参数),使得消息能够输出到一个全局方法AfxWndPro原创 2007-06-26 23:13:00 · 3795 阅读 · 1 评论 -
MFC技术系列(二)--窗口消息(3)
(接上篇, 窗口消息(2)) 4 菜单消息动作:鼠标左键选中一个主菜单,然后移动到某个子菜单项,然后点击它。消息序列如下:第一部分:显示菜单 000403C0 P WM_NCMOUSEMOVE nHittest:HTMENU xPos:162 yPos:164 000403C0 S WM_NCHITTEST xPos:162 yPos:164 000403C0 R WM_N原创 2007-06-21 22:45:00 · 2836 阅读 · 0 评论 -
MFC技术系列(三)--对话框(1)
对话框(Dialog)是应用中常用的界面形态。一个典型的对话框的风格如下:普通风格:WS_CAPTION | WS_POPUP | WS_VISIBLE | WS_CLIPSIBLINGS | WS_SYSMENU扩展风格:WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR | WS_EX_DLGMODALFRAME | WS_EX_W原创 2007-06-17 22:19:00 · 2464 阅读 · 0 评论