Vc++ 控件List Control用法总结_C 语言

1.新建对话框MFC,在对话框上放一个ListCtrl

ID:IDC_PATH

View:Report

2.为ListCtrl添加变量

右击->添加变量m_wndPath

3.找到OnInitDialog()函数添加如下代码:

// TODO: 在此添加额外的初始化代码

m_wndPath.DeleteAllItems();//清空
m_wndPath.InsertColumn(0,_T("项目"));//添加列
m_wndPath.InsertColumn(1,_T("所在路径"));
m_wndPath.SetColumnWidth(0, 150);//设置列宽
m_wndPath.SetColumnWidth(1, 350);
m_wndPath.SetRedraw(FALSE);//防止重绘

int nIndex;
//char|TCHAR项目属性->字符集:使用多字节字符集
TCHAR Path[MAX_PATH+1];//TCHAR取代char MAX_PATH最长路径
nIndex=m_wndPath.InsertItem( 0,_T("Windows目录") );
if( nIndex < 0 ) return TRUE;
GetWindowsDirectory(Path,MAX_PATH);//取得windows目录
m_wndPath.SetItemText( nIndex, 1, Path );

LPITEMIDLIST pidl;//桌面CSIDL_DESKTOPDIRECTORY
//用来得到系统的某些特定文件夹的位置信息
if(SUCCEEDED(SHGetSpecialFolderLocation(NULL,CSIDL_DESKTOPDIRECTORY,&pidl)))
{
  if(SHGetPathFromIDList(pidl, Path))//功能是把项目标志符列表转换为文档系统路径
  {
    nIndex=m_wndPath.InsertItem( 0,_T("桌面"));//成功则返回0
    if( nIndex < 0 )
    {
      return TRUE;
    }
    m_wndPath.SetItemText( nIndex, 1, Path );
  }
}

m_wndPath.SetRedraw(TRUE);//显示

return TRUE; // 除非将焦点设置到控件,否则返回 TRUE

4.char被TCHAR取代,若要用则:

项目属性->字符集:使用多字节字符集

参考代码:

m_wndPath.DeleteAllItems();
m_wndPath.InsertColumn(0,"项目");
m_wndPath.InsertColumn(1,"所在路径");
m_wndPath.SetColumnWidth(0, 150);
m_wndPath.SetColumnWidth(1, 350);
m_wndPath.SetRedraw(FALSE);

int nIndex;
const int nFolder[]={ CSIDL_ALTSTARTUP,CSIDL_APPDATA,CSIDL_BITBUCKET,CSIDL_COMMON_ALTSTARTUP,
  CSIDL_COMMON_DESKTOPDIRECTORY,CSIDL_COMMON_FAVORITES,CSIDL_COMMON_PROGRAMS,
  CSIDL_COMMON_STARTMENU,CSIDL_COMMON_STARTUP,CSIDL_CONTROLS,CSIDL_COOKIES,
  CSIDL_DESKTOP,CSIDL_DESKTOPDIRECTORY,CSIDL_DRIVES,CSIDL_FAVORITES,CSIDL_FONTS,
  CSIDL_HISTORY,CSIDL_INTERNET,CSIDL_INTERNET_CACHE,CSIDL_NETHOOD,CSIDL_NETWORK,
  CSIDL_PERSONAL,CSIDL_PRINTERS,CSIDL_PRINTHOOD,CSIDL_PROGRAMS,CSIDL_RECENT,
  CSIDL_SENDTO,CSIDL_STARTMENU,CSIDL_STARTUP,CSIDL_TEMPLATES };
const CString strFolderName[]={ "CSIDL_ALTSTARTUP","CSIDL_APPDATA","回收站","CSIDL_COMMON_ALTSTARTUP",
  "CSIDL_COMMON_DESKTOPDIRECTORY","CSIDL_COMMON_FAVORITES","CSIDL_COMMON_PROGRAMS",
  "CSIDL_COMMON_STARTMENU","CSIDL_COMMON_STARTUP","控制面板","CSIDL_COOKIES",
  "CSIDL_DESKTOP","桌面","我的电脑","收藏夹","字体",
  "历史纪录","CSIDL_INTERNET","CSIDL_INTERNET_CACHE","网上邻居","CSIDL_NETWORK",
  "我的文档","打印机","CSIDL_PRINTHOOD","程序组","最近打开的文档",
  "发送","任务条启动菜单目录","启动目录","临时文档" };

char Path[MAX_PATH+1];
nIndex=m_wndPath.InsertItem( 0,"Windows目录" );
if( nIndex < 0 ) return TRUE;
GetWindowsDirectory(Path,MAX_PATH);
m_wndPath.SetItemText( nIndex, 1, Path );

nIndex=m_wndPath.InsertItem( 0,"System目录" );
if( nIndex < 0 ) return TRUE;
GetSystemDirectory(Path,MAX_PATH);
m_wndPath.SetItemText( nIndex, 1, Path );

int i,count=sizeof(nFolder)/sizeof(int);
for(i=0;i<count;i++)
{
  LPITEMIDLIST pidl;
  LPMALLOC pShellMalloc;

  if(SUCCEEDED(SHGetMalloc(&pShellMalloc)))
  {
    if(SUCCEEDED(SHGetSpecialFolderLocation(NULL,
      nFolder[i],&pidl)))
    {
      if(SHGetPathFromIDList(pidl, Path))
      {
        nIndex=m_wndPath.InsertItem( 0,strFolderName[i] );
        if( nIndex < 0 )
        {
          pShellMalloc->Free(pidl);
          pShellMalloc->Release();
          return TRUE;
        }
        m_wndPath.SetItemText( nIndex, 1, Path );
      }
      pShellMalloc->Free(pidl);
    }
    pShellMalloc->Release();
  }
}
m_wndPath.SetRedraw(TRUE);

以上所述就是本文的全部内容了,希望大家能够喜欢。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索vc++
, list
control
list control控件用法、listcontrol用法、mfc list control用法、vc listcontrol、vc6.0 listcontrol,以便于您获取更多的相关知识。

时间: 2024-11-01 09:15:53

Vc++ 控件List Control用法总结_C 语言的相关文章

WPF的ListView控件自定义布局用法实例_C#教程

本文实例讲述了WPF的ListView控件自定义布局用法.分享给大家供大家参考,具体如下: 概要: 以源码的形式贴出,免得忘记后,再到网上查资料.在VS2008+SP1环境下调试通过 引用的GrayscaleEffect模块,可根据参考资料<Grayscale Effect...>中的位置下载. 正文: 如何布局是在App.xaml中定义源码如下 <Application x:Class="CWebsSynAssistant.App" xmlns="http

C++中MFC Tab Control控件的使用详解_C 语言

1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish. 2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST 在More Styles里勾上Bottom. 调速尺寸使其布满整个对话框, 我这边Tab Control的尺寸最后为164X203. 在ClassWizard为其添加变量, 变量名为m_tab. 类型为CTabCtrl. 3. 在对话框的初始化函数OnInitDialog

vc中SendMessage自定义消息函数用法实例_C 语言

本文实例讲述了vc中SendMessage自定义消息函数用法,分享给大家供大家参考.具体如下: SendMessage的基本结构如下: 复制代码 代码如下: SendMessage(     HWND hWnd,  //消息传递的目标窗口或线程的句柄.     UINT Msg, //消息类别(这里可以是一些系统消息,也可以是自己定义,下文具体介绍,)     WPARAM wParam, //参数1 (WPARAM 其实是与UINT是同种类型的,   //在vc编译器中右键有个"转到WPARA

C++获得其他程序窗体控件中信息的方法_C 语言

本文实例讲述了C++获得其他程序窗体控件中信息的方法.分享给大家供大家参考.具体分析如下: 这里演示了获得其他程序窗体控件信息的方法, 用FindWindow API找到文本框句柄,用SendMessage(WM_GETTEXT)获得文本 #include <windows.h> BOOL CALLBACK EnumChildProc(HWND hWnd,LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrev

VC++的combobox控件用法汇总_C 语言

在VC++程序设计中,combobox控件是再普通不过的窗体元素控件了,而对于新手来说,掌握combobox 的各种用法显得尤其重要,本文就来总结一些实用的combobox控件用法,供大家参考. 一.添加/删除Combo Box内容: 1. 一般是在ComboBox控件属性的Data标签里添加,一行表示ComboBox下拉列表中的一行,换行用ctrl+回车. 2. 在程序初始化时动态添加,如:控件内容初始化: CString strTemp; ((CComboBox*)GetDlgItem(ID

VC 透明滑动控件Slider Control

操作系统:Windows 7软件环境:Visual C++ 2008 SP1本次目的:为滑动控件设置背景透明       经常在编写有背景的程序时,滑动控件Slider Control看起来与背景十分不合,我们可以从CSliderCtrl派生自己的类出来,以实现这个功能.下面是效果图: 所参考的资料来自:http://dev.yesky.com/179/2284679.shtml 派生类下载:http://download.csdn.net/source/1851812   使用时,添加滑动控件

MFC 定制控件(Customize Control) 及 MFC CWnd和WIN32 HWND关联方法

MFC 定制控件(Customize Control) 及 MFC CWnd和WIN32 HWND关联方法  <参考资料 MSDN MFC TNO 15>  文档将概述MFC中定制自定义控件的3种方法: 拥有者绘制控件(Owner Drawing Control and Menu)   自绘制控件(self drawing control and menu)  和子集化(subclass)  1  使用MFC方法定制控件必备的几个基本概念:  控制定制风格的控件的几个标准Windows消息: 

Android编程布局控件之AbsoluteLayout用法实例分析_Android

本文实例讲述了Android编程布局控件之AbsoluteLayout用法.分享给大家供大家参考,具体如下: AbsoluteLayout是绝对布局管理器,指的是指定组件的左上角绝对坐标来指定组件的布局 <?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"

c#窗体-C#中窗体控件textbox的用法

问题描述 C#中窗体控件textbox的用法 在文本框中输入数据,判断输入数据的范围,若超出范围则重新输入,怎么写代码? 解决方案 找到你的textbox属性中textchange事件,双击后会有一个事件 private void textBox1_TextChanged(object sender EventArgs e) { if (int.Parse(textBox1.Text) > 1000) MessageBox.Show(""输入的数值过大请重新输入!"&q