关于TreeView:
添加的Item如下:-音乐柜
| |
| --My LITE-ON
|
---播放列表(1)如何在窗体初始化时,就显示上图所示的样子,即让所有的节点都处于展开状态;
(2)如何用鼠标左键和右键都可以轮换选中Item(当然左键是肯定可以选择的,我指的是用右键可以轮换选择);
(3)比方说当选中My LITE-ON项时,如何在单击鼠标右键时弹出Popup菜单,进行“增加歌曲”等相关操作;我在自己的应用程序(基于对话框的MP3媒体播放器)同目录下,建立了一个\MediaBox\My LITE-ON的目录,在上面第(3)点的时候,我通过右键菜单增加的歌曲就保存在该目录(\MediaBox\My LITE-ON\)下面,关于List Control的问题是
1)如何在应用程序初始化时,把\MediaBox\My LITE-ON\目录下所有的歌曲(*.mp3,*.wav,*.wma)显示在List Control中,如歌曲名,歌曲大小,歌曲长度(时间)等信息;
2)如何在List Control中显示的歌曲最前面增加一张图片,当用户选中某歌曲时,图片为勾,并可以播放此歌曲;当用户不选中某歌曲时,图片显示为叉,不播放该歌曲;
请高手指点,谢谢!
添加的Item如下:-音乐柜
| |
| --My LITE-ON
|
---播放列表(1)如何在窗体初始化时,就显示上图所示的样子,即让所有的节点都处于展开状态;
(2)如何用鼠标左键和右键都可以轮换选中Item(当然左键是肯定可以选择的,我指的是用右键可以轮换选择);
(3)比方说当选中My LITE-ON项时,如何在单击鼠标右键时弹出Popup菜单,进行“增加歌曲”等相关操作;我在自己的应用程序(基于对话框的MP3媒体播放器)同目录下,建立了一个\MediaBox\My LITE-ON的目录,在上面第(3)点的时候,我通过右键菜单增加的歌曲就保存在该目录(\MediaBox\My LITE-ON\)下面,关于List Control的问题是
1)如何在应用程序初始化时,把\MediaBox\My LITE-ON\目录下所有的歌曲(*.mp3,*.wav,*.wma)显示在List Control中,如歌曲名,歌曲大小,歌曲长度(时间)等信息;
2)如何在List Control中显示的歌曲最前面增加一张图片,当用户选中某歌曲时,图片为勾,并可以播放此歌曲;当用户不选中某歌曲时,图片显示为叉,不播放该歌曲;
请高手指点,谢谢!
2,拦截右键事件
3, CMenu popmenu;
popmenu.CreatePopupMenu();
//添加菜单项目
popmenu.AppendMenu(0, ID_RICH_COPY, "复制");
popmenu.AppendMenu(0, ID_RICH_SELECTALL, "全部选择");
//初始化菜单项
UINT nSel=((GetSelectionType()!=SEL_EMPTY) ? 0 : MF_GRAYED) ;
popmenu.EnableMenuItem(ID_RICH_COPY, MF_BYCOMMAND|nSel);
CString strMsg;
this->GetWindowText(strMsg);
nSel = ((strMsg.GetLength()!= NULL) ? 0:MF_GRAYED);
popmenu.EnableMenuItem(ID_RICH_SELECTALL,MF_BYCOMMAND|nSel);
//显示菜单
CPoint pt;
GetCursorPos(&pt);
popmenu.TrackPopupMenu(TPM_RIGHTBUTTON, pt.x, pt.y, this);
popmenu.DestroyMenu();
2,那个图片你得自己画!
StateImage得自己画上去。
2.
3.按代码试试,看了一下,大概可行1)typedef struct _SHFILEINFO {
HICON hIcon;
int iIcon;
DWORD dwAttributes;
TCHAR szDisplayName[MAX_PATH];
TCHAR szTypeName[80];
} SHFILEINFO;2)SetItemState
你好,谢谢你的帮助.
你给出的代码好象有点问题,
UINT nSel=((GetSelectionType()!=SEL_EMPTY) ? 0 : MF_GRAYED) ;
这一句有错.
我现在最主要的问题就是,用鼠标右键点击中My LITE-ON这个节点时候,我要它弹出Popup菜单,然后进行菜单中的相关操作,应该在哪个事件里写代码,写什么代码?
谢谢!