⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listview.c

📁 MINI GUI1.6X源码
💻 C
📖 第 1 页 / 共 2 页
字号:
                                   WS_CHILD | WS_VISIBLE | WS_VSCROLL |                                   WS_HSCROLL | WS_BORDER, WS_EX_NONE, IDC_LISTVIEW, 20, 20, 350,                                   200, hWnd, 0);        SetNotificationCallback (hChildWnd1, lv_notify_process);        s1.nCols = 0;        s1.pszHeadText = "File name";        s1.width = 100;        s1.pfnCompare = NULL;        s1.colFlags = 0;        SendMessage (hChildWnd1, LVM_ADDCOLUMN, 0, (LPARAM) & s1);        s1.nCols = 1;        s1.pszHeadText = "File size";        s1.width = 100;        s1.pfnCompare = compare_size;        s1.colFlags = LVCF_RIGHTALIGN | LVHF_CENTERALIGN;        SendMessage (hChildWnd1, LVM_ADDCOLUMN, 0, (LPARAM) & s1);        s1.nCols = 2;        s1.pszHeadText = "Category";        s1.width = 80;        s1.pfnCompare = NULL;        s1.colFlags = 0;        SendMessage (hChildWnd1, LVM_ADDCOLUMN, 0, (LPARAM) & s1);        s1.nCols = 3;        s1.pszHeadText = "Last modified time";        s1.width = 180;        s1.pfnCompare = compare_time;        s1.colFlags = LVCF_CENTERALIGN;        SendMessage (hChildWnd1, LVM_ADDCOLUMN, 0, (LPARAM) & s1);        dir = opendir ("./");        while ( (dir_ent = readdir ( dir )) != NULL )        {            if (stat (dir_ent->d_name, &my_stat) < 0 ){                continue;            }            if ( !( S_ISDIR(my_stat.st_mode) || S_ISREG(my_stat.st_mode) ) )                 continue;            item.itemData = (DWORD) strdup(dir_ent->d_name);            item.nItem = i;            item.nItemHeight = 28;            SendMessage (hChildWnd1, LVM_ADDITEM, 0, (LPARAM) &item);            subdata.nItem = i;            subdata.subItem = 0;            subdata.pszText = dir_ent->d_name;            if (S_ISDIR(my_stat.st_mode)) {                subdata.flags |= LVFLAG_BITMAP;                subdata.image = (DWORD)&folder;                subdata.nTextColor = PIXEL_blue;            }            else {                subdata.nTextColor = PIXEL_black;            }            SendMessage (hChildWnd1, LVM_FILLSUBITEM, 0, (LPARAM) & subdata);            subdata.flags = 0;            subdata.image = 0;            {            int fsize = 0;            char buffer[50];            if (S_ISREG(my_stat.st_mode))                fsize = my_stat.st_size;            sprintf (buffer, "%d", fsize);            subdata.pszText = buffer;            subdata.nTextColor = PIXEL_black;            subdata.subItem = 1;            SendMessage (hChildWnd1, LVM_FILLSUBITEM, 0, (LPARAM) & subdata);            }            subdata.subItem = 2;            if (S_ISDIR(my_stat.st_mode)) {                subdata.pszText = "directory";            }            else if (S_ISREG(my_stat.st_mode)) {                subdata.pszText = "regular file";            }            subdata.nTextColor = PIXEL_black;            SendMessage (hChildWnd1, LVM_FILLSUBITEM, 0, (LPARAM) & subdata);            subdata.subItem = 3;            subdata.pszText = ctime(&my_stat.st_mtime);            subdata.pszText[strlen(subdata.pszText)-1] = 0;            subdata.nTextColor = PIXEL_black;            SendMessage (hChildWnd1, LVM_FILLSUBITEM, 0, (LPARAM) & subdata);            i++;        }        closedir (dir);      }      break;    case MSG_COMMAND:    {        int id = LOWORD (wParam);        //int code = HIWORD (wParam);        int nSel;        char buffer[101];        GetWindowText (GetDlgItem(hWnd, IDC_EDIT), buffer, 100);        nSel = atoi(buffer);        //printf ("id = %d, wParam = %d\n", id, wParam);        switch (id)        {        case IDC_CTRL1:        {            HLVITEM hlvi;            hlvi = SendMessage (hChildWnd1, LVM_GETSELECTEDITEM, 0, 0);            SendMessage (hChildWnd1, LVM_DELITEM, 0, (LPARAM)hlvi );            break;        }        case IDC_CTRL2:            SendMessage (hChildWnd1, LVM_DELALLITEM, 0, 0);            break;        case IDC_CTRL3:            SendMessage (hChildWnd1, LVM_SELECTITEM, nSel, 0);            break;        case IDC_CTRL4:            SendMessage (hChildWnd1, LVM_SELECTITEM, nSel, 0);            SendMessage (hChildWnd1, LVM_SHOWITEM, nSel, 0);            break;        case IDC_CTRL6:            SendMessage (hChildWnd1, LVM_DELCOLUMN, nSel, 0);            break;        case IDC_CTRL7:        {            LVCOLUMN pcol;            pcol.width = 100;            pcol.nCols = 2;            pcol.pszHeadText = buffer;            pcol.nTextMax = strlen (buffer);            SendMessage (hChildWnd1, LVM_SETCOLUMN, 0, (LPARAM)&pcol);            break;        }        case IDC_CTRL8:            SendMessage (hChildWnd1, LVM_SORTITEMS, 0, (LPARAM)compare_size);            break;        case IDC_CTRL9:        {            LVFINDINFO find_info;            HLVITEM hlvi;            char buffer1[100];            char *text[1];            strcpy (buffer1, "listview.c");            text[0] = buffer1;            find_info.iStart = 0;            find_info.flags = LVFF_TEXT;            find_info.nCols = 0;            find_info.pszInfo = text;            hlvi = SendMessage (hChildWnd1, LVM_FINDITEM, 0, (LPARAM)&find_info);            SendMessage (hChildWnd1, LVM_CHOOSEITEM, 0, hlvi);            break;        }        case IDM_FILE ... IDM_FILE+4:            MessageBox (hMainWnd, "In Construction ...", "Sorry", MB_OK);            break;        } //end switch        break;    }        case MSG_ERASEBKGND:    {        HDC hdc = (HDC)wParam;        const RECT* clip = (const RECT*) lParam;        BOOL fGetDC = FALSE;        RECT rcTemp;                        if (hdc == 0) {            hdc = GetClientDC (hWnd);            fGetDC = TRUE;        }                               if (clip) {            rcTemp = *clip;            ScreenToClient (hWnd, &rcTemp.left, &rcTemp.top);            ScreenToClient (hWnd, &rcTemp.right, &rcTemp.bottom);            IncludeClipRect (hdc, &rcTemp);        }        FillBoxWithBitmap (hdc, 0, 0, 0, 0, &bmp_bkgnd);        if (fGetDC)            ReleaseDC (hdc);        return 0;    }    case MSG_DESTROY:        UnloadBitmap (&folder);        DestroyMenu (hRightMenu);        DestroyAllControls (hWnd);        hMainWnd = HWND_INVALID;        return 0;    case MSG_CLOSE:        DestroyMainWindow (hWnd);        MainWindowCleanup (hWnd);        return 0;    } //end switch    return DefaultMainWinProc (hWnd, message, wParam, lParam);}static voidInitCreateInfo (PMAINWINCREATE pCreateInfo){    pCreateInfo->dwStyle = WS_CAPTION | WS_BORDER | WS_MINIMIZEBOX                           | WS_MAXIMIZEBOX | WS_VISIBLE;    pCreateInfo->dwExStyle = WS_EX_NONE;    pCreateInfo->spCaption = "ListView control";    pCreateInfo->hMenu = 0;    pCreateInfo->hCursor = GetSystemCursor (1);    pCreateInfo->hIcon = 0;    pCreateInfo->MainWindowProc = ControlTestWinProc;    pCreateInfo->lx = 0;    pCreateInfo->ty = 0;    pCreateInfo->rx = 500;    pCreateInfo->by = 350;    pCreateInfo->iBkColor = GetWindowElementColor (BKC_CONTROL_DEF);     pCreateInfo->dwAddData = 0;    pCreateInfo->hHosting = HWND_DESKTOP;}voidlistview_demo (HWND hwnd){    MAINWINCREATE CreateInfo;    InitCreateInfo (&CreateInfo);    CreateInfo.hHosting = hwnd;    hMainWnd = CreateMainWindow (&CreateInfo);    if (hMainWnd != HWND_INVALID)    {        ShowWindow (hMainWnd, SW_SHOWNORMAL);        return;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -