基本的方法就是通过微软官网提供的事列来完成整个操作过程,
微软链接:https://docs.microsoft.com/en-us/windows/desktop/controls/using-image-lists;
https://docs.microsoft.com/en-us/windows/desktop/controls/using-treeview
1.通过WIN32 API的公开控件库 中的 Image_list来实现功能
在实现功能的第一步是加入公共控件库的头文件以及dll.
他的基本格式如下
#include <commctrl.h> #pragma comment(lib,"comctl32.lib")
在创建Image_list之前需要调用InitCommonControls();函数来对公共控件进行初始化。
当然还可以使用另外一个函数,也是微软推荐的函数
INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(INITCOMMONCONTROLSEX); InitCtrls.dwICC = ICC_PAGESCROLLER_CLASS; //这里填上你要用的扩展控件类 InitCommonControlsEx(&InitCtrls); //这样我们就可以成功创建扩展控件了。 //另外对于需要调用扩展控件.dll的(MSDN里面有说明) //我们需要加载DLL到实例句柄 HINSTANCE hInstRich = ::LoadLibrary(_T("Riched32.dll")); hWndEditU = CreateWindowEx(NULL,L"RichEdit",L"显示",WS_CHILD|WS_VISIBLE|WS_BORDER| ES_LEFT|ES_MULTILINE ,10,10,400,320,hWnd,NULL,hInstRich,NULL); //这样创建之后我们就可以调用出 扩展控件来进行编写了! //需要注意的是在我们使用完之后需要释放DLL的 ::FreeLibrary(hInstRich);
整个过程分为三个大部分
(1).左键按下
(2)鼠标移动
(3)左键抬起
三个过程都有相应的微软api与之对应。
这里主要描述一下对于image_list控件的理解。
image_list控件相当于是一个内存块,用于存储图片的列表。每个图片都有自己的编号,编号从0开始。在image_list的控件之上,微软的api又为它提供了图片的拖拽的功能。
图像列表和树视图项目地址(需要自己配置里面的图片内容):https://github.com/wolfgold/icon_move
原文地址:https://www.cnblogs.com/bookdrip/p/9924744.html
时间: 2024-11-06 21:06:41