VC 如何在列表框中贴位图
展开全部
方法一. 从CListBox派生,设置为自绘风格,重载DrawItem函数
方法二. 将ListBox设置为自绘风格,然后在父窗口中响应 WM_DRAWITEM 消息,并进行列表框绘制
方法二. 将ListBox设置为自绘风格,然后在父窗口中响应 WM_DRAWITEM 消息,并进行列表框绘制
更多追问追答
追问
详细点 好吧 !我是新手 写下过程 谢谢了!!再加十分
追答
关于方法二的实现
1. 在对话框中,将LISTBOX的Owner Draw属性置为True
2. 在对话框的类中响应WM_DRAWITEM消息
ON_WM_DRAWITEM()
void CTestDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpdis)
{
if (lpdis->CtlType == ODT_LISTBOX && // 是LISTBOX的Draw
lpdis->CtlID == IDC_LISTBOX1) { // 是需要绘制的控件
CDC dc;
dc.Attach(lpdis->hDC); // 附加到CDC类,便于绘制
CRect rc(lpdis->rcItem); // 绘制的区域
// 这里就可以贴位图了
。。。
}
CDialog::OnDrawItem(nIDCtl, lpdis);
}
DRAWITEMSTRUCT 的内容可以参考 MSDN
在DC上贴位图,可以参考书上代码
程序结构就是上面这样
对于新手的话,建议要多看MSDN,上面有大量的Sample可以参考,而且比我们这样临时编写的要更加专业和详细。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询