【发布时间】:2014-07-31 07:26:31
【问题描述】:
作为 Win32 的初学者,我需要创建一个带有按钮的网格。所以基本上对于网格中的每个单元格,我都在创建按钮,如下消息:
DrawFrameControl(gdc,&rect,DFC_BUTTON,DFCS_BUTTONPUSH|DFCS_FLAT);
现在我需要为按钮设置颜色。我该怎么做。
【问题讨论】:
-
HBRUSH hBrush = ::CreateSolidBrush(...)后跟::FillRect(&rect, hBrush)或::SetBkColor(...)后跟::ExtTextOut(...)。第二个选项性能更好,但不太容易理解。 -
试过了... HBRUSH hBrush = CreateSolidBrush(RGB(102, 255, 192)); FillRect(gdc, &rect, hBrush); DrawFrameControl(gdc,&rect,DFC_BUTTON,DFCS_BUTTONPUSH|DFCS_FLAT);不工作。
-
-1 “不工作”还不够好。如果您无法清楚地展示您的尝试,并详细解释它如何未能达到您的期望,那么没有人可以帮助您。
-
:) 我正在使用这个示例link 创建一个网格,现在在 BabyGrid.cpp 的 DisplayColumn(...) 中,它正在使用 DrawFrameControl(gdc,&rect,DFC_BUTTON,DFCS_BUTTONPUSH| 创建按钮DFCS_FLAT); (更改为按钮)。现在按照上面的建议:我试过 ...HBRUSH hBrush = CreateSolidBrush(RGB(102, 255, 192)); FillRect(gdc, &rect, hBrush);其次是 DrawFrameControl(...)。但是 Button 的颜色没有改变,还是灰色的……现在还有什么其他的选择(我只使用 Win32)……
-
虽然通过上面建议的其他方式,SetBkColor(...) 后跟 ExtTextOut(...),但我需要 ExtTextOut(...) 的 X、Y 坐标,根据文档 [链接] (msdn.microsoft.com/en-us/library/windows/desktop/…)。我需要在网格的单元格中绘制一个按钮。通过 LVITEMA 的子项,我如何获得每个子项的 X/Y 坐标。