现在位置: 首页 > MFC
2012-08-17 10:15 工业·编程 ⁄ 共 3240字 评论 1 条
    Windows编程和Dos编程,一个很大的区别就是,windows编程是事件驱动,消息传递的。所以,要做好windows编程,必须对消息机制有一个清楚的认识,本文希望能够对消息的传递做一个全面的论述,由于小生初学VC,里面可能有一些错误的地方,还往各位大虾批评、指正。 消息是指什么?     消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位...
阅读全文
2012-08-16 13:57 工业·编程 ⁄ 共 8923字 暂无评论
一 基础操作 1 插入节点 1)插入根节点 [cpp] view plaincopyprint? //插入根节点 HTREEITEM hRoot;  CString str=L"ROOT" hRoot=nTreeCtrl.InsertItem(str);    //相当于 hRoot=nTreeCtrl.InsertItem(str,TVI_ROOT,TVI_LAST);  2)插入孩子节点 [cpp] view plaincopyprint? //添加hRoot节点的孩子节点,并且被添加的节点位于hRoot所有孩子节点的末尾 HTREEITEM hChild=nTreeCtrl...
阅读全文
Windows程序和DOS程序的主要不同点之一是:Windows程序是以事件为驱动、消息机制为基础。如何理解? 举了例子,当你CLICK Windows “开始”BUTTON时,为什么就会弹出一个菜单呢? 当你单击鼠标左键时,操作系统中与MOUSE相关的驱动程序在第一时间内得到这个信号[LBUTTONDOWN],然后它通知操作系统―――“嗨,鼠标左键被单击了!”,操作系统得到这一信号后,马上要判断――用户单击鼠标左键,这是针对哪个窗口呢?如何判断?这...
阅读全文
一、概念和区别  在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理每个窗口。这个数据结构中有四个数据用来构建list,即child、sibling、parent、owner四个域。      所以我们可以看到,窗口之间的关系有两种:owner-owned 关系和 parent-child关系。前者称之为拥有/被拥有关系,后者称之为父/子关系。在这篇文字中,我把own...
阅读全文
2012-08-16 10:10 工业·编程 ⁄ 共 3160字 评论 1 条
    控件通知消息有很多种,但是有一种是很常用,但是又不是很容易掌握的,那就是WM_NOTIFY,我试着对此做一下比较全面的论述,有不对的地方,还希望各路大虾批评指正。 控件通知消息     在《深度解析VC中的消息(上)》中,我们提到了消息的分类有3种:窗口消息、命令消息和控件通知消息,我们这里要谈的是最后一种:控件通知消息。     控件通知消息,是指这样一种消息,一个...
阅读全文
2012-08-15 23:48 工业·编程 ⁄ 共 2462字 暂无评论
wParam和lParam 这两个是Win16系统遗留下来的产物,在Win16API中WndProc有两个参数: 一个是WORD类型的16位整型变量;另一个是LONG类型的32位整型变量。因此根据匈牙利命名法,16位的变量就被命名为wParam, 32位的变量就被命名为lParam。 到了Win32API中,原来的16位变量也被扩展为32位,因此此时wParam和lParam的大小完全相同。 在Win32API的早期,为了保证和Win16API的代码可移植性MS定义了WPARAM和LPARAM两个宏。 ...
阅读全文
2012-08-14 23:21 工业·编程 ⁄ 共 6054字 暂无评论
一、什么是虚拟列表控件虚拟列表控件是指带有LVS_OWNERDATA风格的列表控件。。 二、为什么使用虚拟列表控件 我们知道,通常使用列表控件CListCtrl,需要调用InsertItem把要显示的数据插入列表中,之后我们就不必关心数据在哪里了,这是因为控件自己开辟了内存空间来保存这些数据。现在假设我们要显示一个数据库,里面的信息量很大,有几十万条记录。通常有两种方法解决这个问题:1是仅仅在ListCtrl中插入少量的数据,比如1...
阅读全文
2012-08-14 23:20 工业·编程 ⁄ 共 1865字 暂无评论
视图窗口完全建立后第一个被框架调用的函数。框架在第一次调用OnDraw前会调用OnInitialUpdate,因此OnInitialUpdate是设置滚动视图的逻辑尺寸和映射模式的最合适的地方。 时间上,两者先后顺序不同,构造函数生成本类的对象,但没有产生窗口,OnCreate后窗口产生,然后才是视图的OnInitialUpDate,一般在这里对视图的显示做初始化。简单点,就是ONCREATE只是产生VIEW的基本结构和变量而在OnInitialUpDate()中,主要初始化视图中...
阅读全文
2012-08-14 23:15 工业·编程 ⁄ 共 2358字 暂无评论
我为了移动一个无标题栏的窗体,使用了WM_NCHITTEST消息,这个消息大概如下: 通常,我们拖动对话框窗口的标题栏来移动窗口,但有时候,我们想通过鼠标在客户区上拖动来移动窗口。 一个容易想到的方案是,处理鼠标消息WM_LBUTTONDOWN和WM_LBUTTONUP。在OnLButtonUp函数中计算鼠标位置的变化,调用MoveWindow实现窗口的移动。 注意,拖动标题栏移动窗口的时候,会出现一个矩形框,它提示了窗口移动的当前位置。当鼠标左键放开的...
阅读全文
2012-08-14 23:14 工业·编程 ⁄ 共 246字 暂无评论
新建一个对话框程序,在上面添加一个CMyBtn(class CMyBtn : public CButton),左键单击按钮,按钮会相应WM_LBUTTONDOWN,然后CButton::OnLButtonDown(nFlags, point); 会以一个WM_NOTIFY的消息形式传递给对话框。对话框可以继续处理该事件。 在对话框里面使用该消息的方法是:ON_COMMAND(MY_BTN, memberfun); 其实WM_NOTIFY是以WM_COMMAND的形式呈现的。。(深入浅出MFC--P411)
阅读全文