在线等待,在CListCtrl中显示Icon的问题! 在对话框中添加了一个CListCtrl,在OnInitialDlg()中往该列表框中添加Icon,用VC制作的,不知为什么执行时打开对话框后显示的是黑色的方块。如果用工程的IconIDR_MAINFRAM则能够显示出图像。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CImageList m_ImageList 是 CDlgColor的成员IDI_RED ... IDR_PURPLE 都是 32X32 256colors 的BOOL CDlgColor::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_Colors[0] = CColor("red", RGB(255, 0, 0)); // 设置颜色列表 m_Colors[1] = CColor("blue", RGB(0, 0, 255)); m_Colors[2] = CColor("green", RGB(0, 255, 0)); m_Colors[3] = CColor("pink", RGB(240, 200, 200)); m_Colors[4] = CColor("gray", RGB(230, 230, 230)); m_Colors[5] = CColor("black", RGB(0, 0, 0)); m_Colors[6] = CColor("yellow", RGB(200, 200, 0)); m_Colors[7] = CColor("purple", RGB(200, 0, 200)); HICON hIcon[8]; // 装入颜色图标到图像列表 hIcon[0] = AfxGetApp()->LoadIcon(IDI_RED); hIcon[1] = AfxGetApp()->LoadIcon(IDI_BLUE); hIcon[2] = AfxGetApp()->LoadIcon(IDI_GREEN); hIcon[3] = AfxGetApp()->LoadIcon(IDI_PINK); hIcon[4] = AfxGetApp()->LoadIcon(IDI_GRAY); hIcon[5] = AfxGetApp()->LoadIcon(IDI_BLACK); hIcon[6] = AfxGetApp()->LoadIcon(IDI_YELLOW); hIcon[7] = AfxGetApp()->LoadIcon(IDI_PURPLE); m_ImageList.Create(16, 16, 0, 8, 8); for (int i=0; i<8; i++) { m_ImageList.Add(hIcon[i]); } static char* namelist[8]= {"red", "blue", "green", "pink", "gray", "black", "yellow", "purple"}; // 颜色名称列表 CListCtrl* pList = (CListCtrl*) GetDlgItem(IDC_SQUARECOLOR); pList->SetImageList(&m_ImageList, LVSIL_SMALL); for (i=0; i<8; i++) { pList->InsertItem(i, namelist[i], i); } return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE} 又将icon改为 standard(32X32),English(U.S.)的,也是不行,palette改为white的也是不行,无奈! m_ImageList.Create(16,16,ILC_COLOR,0,3); m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1)); m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2)); m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON3)); m_CtrlList.InsertColumn(0,"",LVCFMT_LEFT,100); m_CtrlList.SetImageList(&m_ImageList,LVSIL_SMALL); m_CtrlList.InsertItem(0,"1",0); m_CtrlList.InsertItem(1,"2",1); m_CtrlList.InsertItem(2,"3",2);刚试过,可以。 为什么CWnd::GetDC()和AfxGetMainWnd()会返回NULL?求高手 VS 2010编译中的错误 c++多个工程的单步调试? 怎样查明是哪个进程要调用指定DLL 如何一次获取多个文件的文件名 QQ群:“VC学习园地”欢迎您加入,群号:6737763 关于注册表,文件操作,文件读写的一些基本问题. 运行时的错误 各位大哥,有没有介绍使用VC IDE技巧的文章?? Project Setting中的Custom Build的设置 窗体特效 100分吐血相送!毕设急需!关于VC程序的打包发布问题!
CImageList m_ImageList 是 CDlgColor的成员
IDI_RED ... IDR_PURPLE 都是 32X32 256colors 的BOOL CDlgColor::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_Colors[0] = CColor("red", RGB(255, 0, 0)); // 设置颜色列表
m_Colors[1] = CColor("blue", RGB(0, 0, 255));
m_Colors[2] = CColor("green", RGB(0, 255, 0));
m_Colors[3] = CColor("pink", RGB(240, 200, 200));
m_Colors[4] = CColor("gray", RGB(230, 230, 230));
m_Colors[5] = CColor("black", RGB(0, 0, 0));
m_Colors[6] = CColor("yellow", RGB(200, 200, 0));
m_Colors[7] = CColor("purple", RGB(200, 0, 200)); HICON hIcon[8]; // 装入颜色图标到图像列表
hIcon[0] = AfxGetApp()->LoadIcon(IDI_RED);
hIcon[1] = AfxGetApp()->LoadIcon(IDI_BLUE);
hIcon[2] = AfxGetApp()->LoadIcon(IDI_GREEN);
hIcon[3] = AfxGetApp()->LoadIcon(IDI_PINK);
hIcon[4] = AfxGetApp()->LoadIcon(IDI_GRAY);
hIcon[5] = AfxGetApp()->LoadIcon(IDI_BLACK);
hIcon[6] = AfxGetApp()->LoadIcon(IDI_YELLOW);
hIcon[7] = AfxGetApp()->LoadIcon(IDI_PURPLE); m_ImageList.Create(16, 16, 0, 8, 8);
for (int i=0; i<8; i++)
{
m_ImageList.Add(hIcon[i]);
} static char* namelist[8]=
{"red", "blue", "green", "pink", "gray", "black", "yellow", "purple"}; // 颜色名称列表 CListCtrl* pList = (CListCtrl*) GetDlgItem(IDC_SQUARECOLOR);
pList->SetImageList(&m_ImageList, LVSIL_SMALL);
for (i=0; i<8; i++)
{
pList->InsertItem(i, namelist[i], i);
} return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
palette改为white的也是不行,无奈!
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON3)); m_CtrlList.InsertColumn(0,"",LVCFMT_LEFT,100);
m_CtrlList.SetImageList(&m_ImageList,LVSIL_SMALL);
m_CtrlList.InsertItem(0,"1",0);
m_CtrlList.InsertItem(1,"2",1);
m_CtrlList.InsertItem(2,"3",2);刚试过,可以。