关于TREEVIEW和LISTVIEW之间消息传递的问题

tomcat_jb 2002-05-21 11:25:35
我利用消息来进行TREEVIEW和LISTVIEW之间的互动。
但是在我的消息处理函数中,我根据LISTVIEW返回的当前ITEM的值来设置TREEVIEW的焦点ITEM。可是我在处理搜索ITEM时报告错误。不知道是那里有问题。附上代码,大家讲讲。
////切换TREEVIEW当前的焦点ITEM
void CMCView::ChangeTreeView()
{
CTreeCtrl & m_treectrl = GetTreeCtrl();
HTREEITEM hCurrent = m_treectrl.GetNextItem(TVI_ROOT, TVGN_NEXT);
DWORD Currentdata;
while (hCurrent != NULL)
{
Currentdata = m_treectrl.GetItemData(hCurrent);
if (Currentdata == SwitchViewCode)
{m_treectrl.SelectItem(hCurrent);
hCurrent = NULL;}
else
hCurrent = m_treectrl.GetNextItem(hCurrent,TVGN_NEXT);
}
}
...全文
53 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomcat_jb 2002-05-21
  • 打赏
  • 举报
回复
MSDN上面误导我!!!!

用了苯办法,解决了。:)
yu_hl 2002-05-21
  • 打赏
  • 举报
回复
用法错误:
TVGN_NEXT Retrieves the next sibling item
^^^^^^^
rtCell 实时微内核-具有下列功能: 1. 完全抢占的实时微内核结构,独立的内核栈,中断和系统调用均切换到内核栈执行; 2. 256(64、32)个优先级,0为最高优先级(系统保留),256(64、32)为空闲优先级; 3. 不同优先级任务完全抢占,同优先级之间可按先进先出或时间片轮转方式执行; 4. 在一系统(定时器服务)任务中实现内核定时器,用于超时等待内核对象、周期性定 时器、任务延迟、一次定时(此时需定义一超时后执行的过程);此服务任务的优先 级由其客户任务的最高优先级驱动,随之动态改变,以消除隐式优先级反转现象; 5. 提供任务(Task)、互斥锁(Mutex)、信号量(Semaphore)、位域标志(Flag)、 定时器(Timer)、优先级消息(Message)和环形队列(Ring buffer)内核对象; 6. 任何内核对象用一整数ID标识,而非指针,从而可避免用户任务野指针的副作用,内 核对象总数不超过61440(即60K); 7. 互斥锁支持优先级继承和优先级置顶协议,在创建时设置该协议,且总按优先级等待, 优先级继承协议时仅支持同一互斥锁的嵌套调用,优先级置顶协议还可支持不同互斥 锁的多次嵌套调用; 8. 其它对象的等待方式有:优先级等待和先进先出(节省内存)等待,在创建时设置; 9. 内核数据的同步,除在任务切换,及任务和内核之间切换堆栈时暂时关中断外,其它 地方均以延迟过程调用(DPC)方式执行; 10. 任务对象支持异步过程调用(Window用语APC,相当于UNIX中的信号机制),从而可 引导任务异步的执行一个过程(前提是任务栈不小于1024字节),此过程将在该任务 下次被调度时执行; 11. 删除避免机制,拥有互斥锁的任务及处于占有状态的互斥锁均具有防止被删除的机制, 要删除拥有互斥锁的任务必须自行终止或调用任务终止函数,而要删除任一个互斥锁 则必须先使其处于空闲状态,即没有任何任务占有此互斥锁,否则禁止删除; 12. 对象命名机制,同类内核对象可用唯一的名称标识来获取其ID,达到引用目的。 13. 在内核中实现了中断的进出接口,因此用户中断处理只需写标准的C函数,而不必关 心中断底层处理的细节; 14. 系统调用以陷阱指令(x86中int指令)实现,易于扩展到“内存保护”的进程模式; 15. 在内核库之外提供了一个简单的堆内存分配机制,用于内核对象动态内存分配时调用; 16. 支持毫秒级定时器,内核定时器周期为一毫秒; 17. 支持 X387/287 硬件浮点协处理器的任务状态保护,被动方式的任务浮点状态切换(开 中断执行,由于使用了特权指令实现,因此只能在纯DOS实模式下或虚拟机X386/X387及 后续机型上执行,而无法在Windows的DOS窗口中运行,但可在DOS的全屏方式下运行)。 giCell 视口裁减及消隐处理引擎-功能如下: 1. 完善而精巧的多视口裁剪和消隐处理引擎,与微内核rtCell紧密结合; 2. 真正的事件(或消息)驱动的多窗口(视口)技术,支持顶层窗口和透明窗口的显示和 裁剪处理; 3. 当前支持Label、Edit、Botton、Slider、Listbox、TreeViewListView、Scrollbar和 Checkbox控件,其中的Edit控件支持剪切、复制和粘贴(ctrl+x,ctrl+c,ctrl+v); 4. 类 Windos 窗口,支持平移、缩放,光标切换、窗口系统按钮,及窗口和控件的过程回调; 5. 基于透明视口(或窗口)的裁剪和消隐处理,可生成任何非矩形(多态)窗口,本示例 中的三角形窗口就是基于透明视口来实现的; 7. 支持图形内存设备(GDC),有效避免窗口重绘时闪烁,易于实现视频及动画处理; 8. ListView支持标题栏平移和缩放,Scrollbar支持鼠标滚轮驱动; 9. 内存需求小,窗口和控件的缺省状态均不使用GDC(而是采用直接屏技术),所耗内存小, 因此实用性强,包括rtCell调度器、鼠标、键盘及图形驱动的库文件在DOS下仅70余K。 关于可文件Engine.lib和mcOutLib.obj: 1. 考虑到DOS内存的限制,库文件Engine.lib中的rtCell内核仅支持32个任务优先级(因为 优先级队列太占用内存),这样即使在640K内存下,也可创建上数百个内核及GUI对象,可满 足一定规模的应用程序要求; 2. 库文件mcOutLib.obj是目录giCell\mcOSLib下文件的编译结果,用于处理任务的浮点协 处理器(硬件)状态切换,任务浮点数状态初始化,内存分配,信息显示等操作(主要用于 内核),用户也可自己编译giCell\mcOSLib目录下的文件,注意:Borland C/C++ 3.1可能无 法识别其中的某些浮点数操作指令; 3. 文件MAIN.C是对Engine.lib使用的具体实例,在Borland C/C++ 3.1中编译时必须打开X 387/287选项和C函数参数传递约定,此文件还对任何使用透明窗口来生成非矩形窗口,以及 如何使用GDC生成动画进行了演示; 4. 注意其中的一些执行顺序:浮点数操作不得放到回调函数中执行,而只能在其它任务中 执行(可从回调函数中向其它任务发送消息来实现),否则程序将进行无限循环; 5. 因为浮点协处理器的任务状态切换机制使用了特权指令,所生成的可执行文件只能在纯 DOS实模式下或虚拟机X386/X387及后续机型上执行,而无法在Windows的DOS窗口中运行; 6. 由MAIN.C所生成的可执行文件在AMD机器DOS实模式、X86虚拟机qemu-0.9.0-windows以及 Bochs-2.1.1下均执行良好,注意:生成的可执行文件依然是16位实模式。 压缩文件中包含窗口及其子控件的源代码,演示文件MAIN.C和DateTime.c,以及一个专用于 Borland C/C++ 3.1(GUI.DSK, GUI.PRJ)的工程文件。能力所限,不足之处,敬请指正! 请将其中的“BUG”发送到邮件:taowentao_twt@163.com, taowentao_twt@sohu.com,多谢!
vb.net基础教程 第一部分 Visual Basic.net基础 1.vb. net介绍 2.vb.net的优点 3.新建一个vb.net项目 4.编写第一个vb.net应用程序 第二部分 vb.net的语法部分 1.vb.net的Numeric数据类型 2.vb.net的Byte数据类型 3.vb.net的String数据类型 4.vb.net的Boolean数据类型 5.vb.net的Date数据类型 6.vb.net的Object数据类型 7.vb.net的用户自定义类型 8.vb.net的数组定义 9.vb.net的数组列表 10.vb.net的多维数组 11.vb.net类型转换函数 第三部分 visual basic.net的运算 程序设计时经常用到的有6种运算:算术运算(Arithmetic)、赋值运算(Assignment)、二进制运算(Bitwise)、比较运算(Comparison)、连接运算(concatenation)及逻辑运算(Logical),下面对这6种运算进行简单介绍。 1.vb.net的算术运算 2.vb.net的赋值运算符 3.vb.net的二进制运算符 4.vb.net的比较运算符 5.vb.net的连接运算符和逻辑运算符 6.vb.net运算符的优先级 (一) Visual basic.net的常量和变量 1.vb.net的常量 2.vb.net的变量 (二) Visual basic.net的流程和控制结构 1.vb.net条件分支语句 2.vb.net的循环语句 (三) vb.net的过程和函数 1.vb.net的Sub过程 2.vb.net的Funtion过程 3.在vb.net中调用过程 4.如何向过程传递参数 (四)vb.net的类和对象基础 第四部分 visual basic.net的常用控件 1.vb.net的Label控件 2.vb.net的Button控件 3.vb.net的Textbox控件 4.vb.net的MainMenu控件 5.vb.net的Checkbox控件 6.vb.net的Radiobutton控件 7.vb.net的GroupBox控件 8.vb.net的PictureBox控件 9.vb.net的ListBox控件 10.vb.net的CheckedListBox控件 11.vb.net的Combobox控件 12.vb.net的ListView控件 13.vb.net的TreeView控件 14.vb.net的ImageList控件 15.vb.net的Timer控件 16.vb.net的HScrollBar和VScrollBar控件 17.vb.net的ProgressBar控件 18.vb.net的ToolBar控件 19.vb.net的StatusBar控件 20.Vs 2005的ToolStrip控件 21.Vs 2005的StatusStrip控件 22.Vs 2005的MenuStrip控件 第六部分 vb.net的OOP结构 1.什么是oop 2.vb.net的面向对象性 3.vb.net的共享成员(Share Members) 4.类模块和标准代码模块的区别和比较 5.对象浏览器 (一) 建立和使用对象 1.vb.net对象的建立和销毁:对象的生命周期 2.设置和重设vb.net的属性 3.用方法来表现动作 4.vb.net对象变量的声明 5.对一个对象进行多种操作 6.使用New关键字 7.如何释放对对象的引用 8.如何把对象传递到一个过程 (二) 在程序运行中得到一个类的信息: 用一个字符名称调用一个属性或者方法 (三) vb.net中的类、继承与多态性 1.vb.net中给一个类添加方法 2.命名属性、方法和事件 3.vb.net的事件和事件处理 4.类的继承(Inheritance) 5.vb.net继承的规则 6.用继承建立一个继承类 7.重载Windows控件 8.什么时候使用继承 9.什么是命名空间(Namespace) 10.vb.net继承的例子 11.vb.net中用继承实现多态性 12.vb.net中用接口实现多态性 第七部分 数据库访问技术 关于SQL语言的知识,请参考: sql语言教程及Sql语言基础 1.数据库基础知识 2.vb.net数据集(Datasets)的概念 3.什么是dao 4.Dao与Jet数据库引擎 5.Dao对象模型 6.远程数据对象RDO 7.Rdo对象模型 8.odbc api是什么 9.ODBC的结构 10.使用ODBC API访问数据库 11.ado数据对象 12.ado对象模型 13.ADO.NET简介 14.使用ADO.NET的基本方法 第八部分 vb.net的多线程 1.自由线程(Free Threading) 2.关于线程的参数和返回值的问题 3.vb.net的并发性问题 第九部分 vb.net的文件和出错处理 1.vb.net的出错处理 2.vb.net的多种出错处理(Multiple Exceptions) 3.vb.net的文件对象(file object) 4.vb.net文件处理的出错处理 5.检测文件的结束(Testing for End of File) 6.文件的静态方法(Static File Methods)
第一部分 Visual Basic.net基础 1.vb. net介绍 2.vb.net的优点 3.新建一个vb.net项目 4.编写第一个vb.net应用程序 第二部分 vb.net的语法部分 1.vb.net的Numeric数据类型 2.vb.net的Byte数据类型 3.vb.net的String数据类型 4.vb.net的Boolean数据类型 5.vb.net的Date数据类型 6.vb.net的Object数据类型 7.vb.net的用户自定义类型 8.vb.net的数组定义 9.vb.net的数组列表 10.vb.net的多维数组 11.vb.net类型转换函数 第三部分 visual basic.net的运算 程序设计时经常用到的有6种运算:算术运算(Arithmetic)、赋值运算(Assignment)、二进制运算(Bitwise)、比较运算(Comparison)、连接运算(concatenation)及逻辑运算(Logical),下面对这6种运算进行简单介绍。 1.vb.net的算术运算 2.vb.net的赋值运算符 3.vb.net的二进制运算符 4.vb.net的比较运算符 5.vb.net的连接运算符和逻辑运算符 6.vb.net运算符的优先级 (一) Visual basic.net的常量和变量 1.vb.net的常量 2.vb.net的变量 (二) Visual basic.net的流程和控制结构 1.vb.net条件分支语句 2.vb.net的循环语句 (三) vb.net的过程和函数 1.vb.net的Sub过程 2.vb.net的Funtion过程 3.在vb.net中调用过程 4.如何向过程传递参数 (四)vb.net的类和对象基础 第四部分 visual basic.net的常用控件 1.vb.net的Label控件 2.vb.net的Button控件 3.vb.net的Textbox控件 4.vb.net的MainMenu控件 5.vb.net的Checkbox控件 6.vb.net的Radiobutton控件 7.vb.net的GroupBox控件 8.vb.net的PictureBox控件 9.vb.net的ListBox控件 10.vb.net的CheckedListBox控件 11.vb.net的Combobox控件 12.vb.net的ListView控件 13.vb.net的TreeView控件 14.vb.net的ImageList控件 15.vb.net的Timer控件 16.vb.net的HScrollBar和VScrollBar控件 17.vb.net的ProgressBar控件 18.vb.net的ToolBar控件 19.vb.net的StatusBar控件 20.Vs 2005的ToolStrip控件 21.Vs 2005的StatusStrip控件 22.Vs 2005的MenuStrip控件 第六部分 vb.net的OOP结构 1.什么是oop 2.vb.net的面向对象性 3.vb.net的共享成员(Share Members) 4.类模块和标准代码模块的区别和比较 5.对象浏览器 (一) 建立和使用对象 1.vb.net对象的建立和销毁:对象的生命周期 2.设置和重设vb.net的属性 3.用方法来表现动作 4.vb.net对象变量的声明 5.对一个对象进行多种操作 6.使用New关键字 7.如何释放对对象的引用 8.如何把对象传递到一个过程 (二) 在程序运行中得到一个类的信息: 用一个字符名称调用一个属性或者方法 (三) vb.net中的类、继承与多态性 1.vb.net中给一个类添加方法 2.命名属性、方法和事件 3.vb.net的事件和事件处理 4.类的继承(Inheritance) 5.vb.net继承的规则 6.用继承建立一个继承类 7.重载Windows控件 8.什么时候使用继承 9.什么是命名空间(Namespace) 10.vb.net继承的例子 11.vb.net中用继承实现多态性 12.vb.net中用接口实现多态性 第七部分 数据库访问技术 关于SQL语言的知识,请参考: sql语言教程及Sql语言基础 1.数据库基础知识 2.vb.net数据集(Datasets)的概念 3.什么是dao 4.Dao与Jet数据库引擎 5.Dao对象模型 6.远程数据对象RDO 7.Rdo对象模型 8.odbc api是什么 9.ODBC的结构 10.使用ODBC API访问数据库 11.ado数据对象 12.ado对象模型 13.ADO.NET简介 14.使用ADO.NET的基本方法 第八部分 vb.net的多线程 1.自由线程(Free Threading) 2.关于线程的参数和返回值的问题 3.vb.net的并发性问题 第九部分 vb.net的文件和出错处理 1.vb.net的出错处理 2.vb.net的多种出错处理(Multiple Exceptions) 3.vb.net的文件对象(file object) 4.vb.net文件处理的出错处理 5.检测文件的结束(Testing for End of File) 6.文件的静态方法(Static File Methods)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧