GetItemRect为什么得不到正确的结果呢?
具体程序如下:
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
UINT idx;
CRect rect;
idx=m_wndStatusBar.CommandToIndex(ID_INDICATOR_BUTTON);
m_wndStatusBar.GetItemRect(idx,&rect);
//得到的rect(top=2,bottom=0,left=-17,right=-17),后来,将idx=0,1,2后,rect仍然保持这个数据不变化。
m_MyButton.Create("test",WS_CHILD|WS_VISIBLE,rect,
&m_wndStatusBar,ID_INDICATOR_BUTTON);
相关推荐
易语言模拟自绘属性框
易语言模拟自绘属性框源码系统结构:pWndProc,lWndProc,DrawItem,List_AddItem,GetThis,GetItemRect,GetScrollOffset,GetItem
基于Windows消息跨进程读取 TreeView 节点文本和矩形
代码基于windows消息TVM_HITTEST、TVM_GETITEMW、TVM_GETITEMRECT等跨进程读取TreeView节点文本和矩形。代码属于demo功能验证级别,可以跑通,主要实现如下功能:1、跨进程通过屏幕坐标定位 TreeView 控件指定节点;2、获取指定 TreeView 节点的文本内容;3、获取节点整体矩形区域及仅文本部分的矩形区域(含相对 / 屏幕坐标转换);4、遍历 TreeView 根节点下一级子节点,批量提取节点文本与矩形信息。
C++ 中CListCtrl的每个项都显示不同的提示信息
这可以通过调用`CToolTipCtrl`的`AddTool()`方法来实现:```cppCRect rect;m_ListUser.GetItemRect(0, &rect, LVIR_BOUNDS)
带水平滚动条的列表框
当用户点击按钮将编辑框的文本添加到列表框时,可以使用`AddString`或`InsertString`方法:```cppmyListBox.AddString(inputText);```最后,为了响应用户的滚动操作,我们需要处理LB_GETITEMRECT
MyList_win32sdk_listbox_
最后,为了提供良好的用户体验,我们还需要处理LB_GETITEMRECT和LB_GETTEXTLEN消息,以获取列表项的尺寸和文本长度,这有助于正确地布局和绘制控件。


