自绘WTL的CListViewCtrl
来源:互联网 发布:田刚丘成桐事件知乎 编辑:程序博客网 时间:2024/05/05 17:16
CListViewCtrl对应MFC中的是CListCtrl,
{
lpMeasureItemStruct->itemHeight = 26;
}
void ForceMeasureItemMessage()
{
// I just want to nudge it up a little.
CRect window_rect;
GetWindowRect(&window_rect);
CPoint pt = window_rect.TopLeft();
::ScreenToClient(GetParent(), &pt);
window_rect.right = pt.x + window_rect.Width();
window_rect.left = pt.x;
window_rect.bottom = pt.y + window_rect.Height();
window_rect.top = pt.y + 1;
MoveWindow(window_rect);
// Alright now move it back.
window_rect.top = pt.y;
MoveWindow(window_rect);
}
这个函数你必须在父窗口的的OnInitDialog函数中调用才能有效.
还有一个棘手的问题就是在你使用带有header的ClistViewCtrl的时候,还要绘制header,我现在不知道是我自己没弄好还是怎么会事,我自己重载的CHeaderCtrl控件类就是收不到WM_DRAWITEM消息,不过能收到WM_PAINT消息我就在OnPaint函数中把它给我画了出来,反正我也不要这个Header做什么事情,只是一个显示就够了,
还有就是这个Header的高度,我试了好多中方法都没有用,除了改变它的点阵字体的大小了.不过这个字体并不是我们将来显示的字体的大小,整个header都是绘制的,当然显示的字也是你绘制的,在绘制字的时候你可以再次设置dc显示的字体.
哦,对了还有,就是刚知道一个绘制渐变的简单方法,是有api的函数可以使用的
来看一下,可能对你有帮助的哦
TRIVERTEX tv[] = {
{ rect.left, rect.top,0,0x4600,0xC300},
{ rect.right, rect.bottom, 0x0700,0xb200,0xf800}
};
GRADIENT_RECT gr = { 0, 1 };
dc.GradientFill ( tv, 2, &gr, 1, GRADIENT_FILL_RECT_V );
好了来看我绘制的ClistViewCtrl吧
- 自绘WTL的CListViewCtrl
- WTL自绘CListViewCtrl
- WTL自绘ClistViewCtrl 没有触发MeasureItem
- WTL中CListViewCtrl的使用
- 坎坷WTL行(一)重绘CListViewCtrl
- 坎坷WTL行(二)重绘CListViewCtrl之二
- 改变WTL中CListViewCtrl中行颜色及背景色的方法(一)
- 改变WTL中CListViewCtrl中行颜色及背景色的方法(二)
- 自绘WTL的CComboBox控件
- WTL中CTabCtrl的自绘定制
- WTL CListViewCtrl 实现列表元素字体着色
- WTL之自绘
- WTL-Menu自绘
- WTL-Button自绘
- WTL按钮自绘机制
- 使用WTL自绘控件
- Windows 控件自绘(基于WTL的ListViewCtrl)
- WTL控件的自画操作
- Oracle中block、extent、segment的关系
- MultiByteToWideChar和WideCharToMultiByte用法详解
- Qt中使用QDirModel / QFileSystemModel + QTreeView显示Checkbox复选框
- HOOK stretchdibits获取位图文件
- 如何编写单元测试用例(白盒测试)
- 自绘WTL的CListViewCtrl
- 什么是window api
- 什么是设备上下文
- 手册和工具下载链接
- vc 位图操作 BITMAPINFO 赋值
- Wince6.0 电源控制驱动程序分析-基于S5PC100
- 两个windows API
- Css+div关于层的定位
- 仿写类似strstr()字符串匹配的二进制匹配方法FindBinaray()