gpt4 book ai didi

c++ - 带有图形的 UI 蒙皮

转载 作者:行者123 更新时间:2023-11-28 07:02:15 29 4
gpt4 key购买 nike

好的,所以我的目的是“美化”我正在处理的 UI。我熟悉使用 GDI+ 手动绘制控件,但我今天的目标只是直接在我的 DC 上使用 BitBlitting png。

这与主框架、一些按钮和一些菜单一起工作得很好。我的问题是 - 您如何使用此类外观为组合框、 ListView 或更多“动态”控件等更复杂的内容设置外观?

谢谢。我的目标平台是 Windows,我正在使用带有 wxWidgets 框架的 C++。

最佳答案

要“蒙皮”现有控件,您必须继承窗口并捕获绘制消息。大致:

// Subclass the control 
WNDPROC lpfnOldCtrlProc;
lpfnOldCtrlProc = (WNDPROC)SetWindowLong(ControlHwnd, GWL_WNDPROC,
(DWORD)WinSubClassFunc );

在您的 WinSubClassFunc 中:

switch( message )
{
case WM_DRAWITEM: // owner-draw the item

但是,如果您想完全“蒙皮”一个控件,例如更改 ComboBox 的所有元素(边框、输入框、下拉按钮、下拉列表等)然后这会变得真的一团糟。就个人而言,我发现从头开始创建自己的控件比尝试对包含多个窗口项的现有控件进行子类化更容易。

上述方法适用于例如使用带有下拉列表的标准组合框并将其子类化以使其包含颜色条的下拉列表。

关于c++ - 带有图形的 UI 蒙皮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22269270/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com