1. 程式人生 > >WIN32API 圖示拖拽功能的基本配置方法

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