0

你好,谢谢你的阅读:)

我正在 MFC/SDI 中编写应用程序。我将窗口分成两个视图。左边那个是从 CTreeView 派生的,右边是从 CView 派生的。我还创建了一个不可见的分离器来分开它们。这是显示它的图片:http: //i.imgur.com/hdKqArZ.png(左侧区域是 CTreeView 派生的,我的错)。我想移动 CTreeCtrl 所以它不会覆盖图片。我搜索了可能的解决方案,但我发现的唯一一个并没有像我预期的那样工作。使用 GetWindowRect 移动整个区域,并且不允许我在以前是矩形一部分但不再是的区域上绘制。因此,当我移动 CTreeCtrl 时,我无法在其上方的区域中放置图片。我在 OnInitialUpdate() 中做所有这些事情。

这是我在互联网上找到并尝试做的示例代码:

CTreeCtrl &list_recipes = this -> GetTreeCtrl();
list_recipes.GetWindowRect(&rect);
ScreenToClient(&rect);
rect.top += 100;
rect.bottom += 100;
list_recipes.MoveWindow(&rect);

// inserting items into the CTreeCtrl
// (...)

CImage image;
CDC dc;
image.LoadFromResource(AfxGetInstanceHandle(), IDB_CUPCAKE);
dc.CreateCompatibleDC(pDC);
CRect rect3(0,0,202,126);
image.Draw(pDC -> m_hDC,rect3);

任何帮助将不胜感激,在此先感谢 :) 我必须使用 MFC,这不是我的决定。

4

2 回答 2

0

您可以使用 CFormView 代替 CTreeView 作为左窗格。在这个表单视图(使用对话框模板)上,为图片放置一个 CTreeCtrl 和一个 CStatic。

于 2013-05-25T13:28:11.577 回答
0

我会避免在树视图上绘制你的图像。尝试使用包含树视图的单独视图和将树视图移到下方的静态控件。

于 2013-05-25T13:08:21.523 回答