ListControl控件重回后,前面CheckBox控件丢失。急急急急...... 原来没有重绘控件时,扩展CheckBox可以显示重绘后没有了 是不是在重绘时把它绘制出来,这个该怎么办?在线求解,解决就结贴。我重绘的方法在drawItem中把标题和行颜色都改变了 导致没有checkbox 是不是要判断什么绘制呀 还是我的想法错了?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在drawitem中? 那这样绘制出来的checkbox和以前那个还一样么?响应是不是就变了? 自带的checkbox也是imglist来着 由于我重绘背景色和文件颜色 导致没有checkbox 我不知道该怎么将其绘制出来? 贴两图,一个带勾,一个不带勾。自己维护一个数据结构来表示Checked还是UnChecked的状态。 我能在drawItem中绘制出checkbox了 但我如何判断是否有这个扩展功能呢?我现在无论有无都绘制这个checkbox LVS_EX_CHECKBOXES 判断这个属性。 在drawitem中哪个变量能判断这个属性? 重绘与选择画不画勾都没有问题了但还有两个问题请教:1. 我如何在绘制时判断是否有checkbox的扩展功能?2. 我在单击相应时如何判断选择了checkbox?我在子类中能画,但dialog里面的点击判断就不是以前的那样子了。以前的代码void CCableView::OnClickLstCableData(NMHDR *pNMHDR, LRESULT *pResult){ LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); m_nCurRowNum = pNMItemActivate->iItem; //双击文件的索引 NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; UINT uiflag ; m_comLstCable.HitTest( pNMListView->ptAction, &uiflag ); //if (uiflag == LVHT_ONITEMSTATEICON) {//点击的是Checkbox //现在这里点击不出来了,我去掉判断可以,判断的uiflag永远=14 } *pResult = 0;} 1、通过控件风格来识别2、有相关函数可以判断复选框状态、我记得是GetCheck吧 1. 怎么通过控件风格判断?DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)函数只有这个结构体呀,判断哪个变量?2. GetCheck可以得到checkbox的状态,但我想要判断点击这个checkbox才行,才能取他的状态,我上面的函数是只要点击这行就取了,不是点击checkbox再取,不知道我解释清楚了么 DrawItem的时候GetCheck,就可以知道是不是Check了。然后Check状态画带勾的图。否则画不带勾的图。然后要不要画CheckBox,可以if (GetExtendedStyle() & LVS_EX_CHECKBOXES)//画else//不画 谢谢你,这个扩展功能问题解决了 就剩下一个问题:现在我的List控件的第一列是我自已绘制的checkbox和原来的字符串,我如何知道我点击了我的checkbox?按原来的ClistControl类的方法,就是我17楼的方法已经得不到点击了。我现在最笨的方法是每点击一行都判断一下,但我觉得这个不好。有没有直接判断点击了这个checkbox?是不是要在子类的down消息中传值上来呢?才知道点击了这个checkbox?我子类的down消息 RECT rectiSubItem = {0}; int nItem = -1; nItem = HitTest(obPoint);//判断鼠标选择项 GetSubItemRect(nItem, 0, LVIR_BOUNDS, (CRect&)rectiSubItem); rectiSubItem.left = 2; rectiSubItem.right = rectiSubItem.left + 12; if (PtInRect(&rectiSubItem, obPoint)) { m_bItemCheckState[nItem] = !m_bItemCheckState[nItem]; InvalidateRect(NULL,FALSE); } CListCtrl::OnLButtonDown(iFlags, obPoint); 如何获取上网网址 VC OnComm()的机制? 这里有在北京招聘C++/VC++程序员的么? 超级终端的问题(狂急100分) 请问正版VC6.0一份多少钱?哪里有卖?谢谢! 求助:安装Borland C++ 5.02所遇到的问题~~在线等ing. dll中如何定义全局变量,应用程序中如何使用?需要注意些什么??在线送分。谢谢帮忙。 如何建一个exe调用dll? 高手进入:我想编一个Windows下的监控主板及CPU温度的程序,BIOS里有这些数据如何读出呢 全角和半角的问题 gloox连接及接收发送问题。 询问:基于Socket的Client-Server传输机制?
在drawitem中? 那这样绘制出来的checkbox和以前那个还一样么?响应是不是就变了?
由于我重绘背景色和文件颜色 导致没有checkbox 我不知道该怎么将其绘制出来?
自己维护一个数据结构来表示Checked还是UnChecked的状态。
在drawitem中哪个变量能判断这个属性?
1. 我如何在绘制时判断是否有checkbox的扩展功能?
2. 我在单击相应时如何判断选择了checkbox?我在子类中能画,但dialog里面的点击判断就不是以前的那样子了。以前的代码
void CCableView::OnClickLstCableData(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); m_nCurRowNum = pNMItemActivate->iItem; //双击文件的索引 NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
UINT uiflag ;
m_comLstCable.HitTest( pNMListView->ptAction, &uiflag );
//if (uiflag == LVHT_ONITEMSTATEICON)
{//点击的是Checkbox
//现在这里点击不出来了,我去掉判断可以,判断的uiflag永远=14 }
*pResult = 0;
}
2、有相关函数可以判断复选框状态、我记得是GetCheck吧
1. 怎么通过控件风格判断?
DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)函数只有这个结构体呀,判断哪个变量?
2. GetCheck可以得到checkbox的状态,但我想要判断点击这个checkbox才行,才能取他的状态,我上面的函数是只要点击这行就取了,不是点击checkbox再取,不知道我解释清楚了么
然后Check状态画带勾的图。
否则画不带勾的图。然后要不要画CheckBox,可以
if (GetExtendedStyle() & LVS_EX_CHECKBOXES)
//画
else
//不画
谢谢你,这个扩展功能问题解决了
就剩下一个问题:
现在我的List控件的第一列是我自已绘制的checkbox和原来的字符串,我如何知道我点击了我的checkbox?按原来的ClistControl类的方法,就是我17楼的方法已经得不到点击了。我现在最笨的方法是每点击一行都判断一下,但我觉得这个不好。有没有直接判断点击了这个checkbox?是不是要在子类的down消息中传值上来呢?才知道点击了这个checkbox?我子类的down消息
RECT rectiSubItem = {0}; int nItem = -1;
nItem = HitTest(obPoint);//判断鼠标选择项
GetSubItemRect(nItem, 0, LVIR_BOUNDS, (CRect&)rectiSubItem);
rectiSubItem.left = 2;
rectiSubItem.right = rectiSubItem.left + 12;
if (PtInRect(&rectiSubItem, obPoint))
{
m_bItemCheckState[nItem] = !m_bItemCheckState[nItem];
InvalidateRect(NULL,FALSE);
} CListCtrl::OnLButtonDown(iFlags, obPoint);