• WIN32API 图标拖拽功能的基本配置方法


    基本的方法就是通过微软官网提供的事列来完成整个操作过程,

    微软链接: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

  • 相关阅读:
    【Git】常规操作指令
    SourceTree Push 代码报错:remote: Support for password authentication was removed on April 26, 2022.
    【Vue】事件修饰符
    leetcode 周赛290
    如何通过接口工具,和复制浏览器的请求参数,来模拟调式接口
    Unreal 输入系统 解析
    Poco API精讲之 等待 wait
    Poco API精讲之点击click()、long_click()、double_click()
    Airtest的前世今生
    2022年最新版本QT安装教程
  • 原文地址:https://www.cnblogs.com/bookdrip/p/9924744.html
Copyright © 2020-2023  润新知