【问题标题】:How to make edit controls have 3D look?如何使编辑控件具有 3D 外观?
【发布时间】:2013-07-26 20:40:04
【问题描述】:

我通过以下代码创建了一个编辑控件:

hWnd = CreateWindowExW( 0,      // extended styles
                        L"EDIT",
                        L"Text in edit.",
                        ES_LEFT | WS_VISIBLE | WS_CHILD,
                        10,     // x
                        50,     // y
                        30,     // width
                        100,    // height
                        hWndMainWindow,
                        NULL,
                        hInstance,
                        NULL);

我的编辑控件如下所示:

但我在 Windows 中看到的大多数编辑控件都有如下图所示的 3D 外观:

我尝试了几种扩展的和普通的窗口样式,但没有任何好处。如何使我的编辑控件看起来像第二张图片?

一些可以帮助您参考的快速链接:
Window Styles
Extended Window Styles
Edit Styles

【问题讨论】:

    标签: c++ winapi win32gui


    【解决方案1】:

    您需要包含WS_EX_CLIENTEDGE 扩展窗口样式。

    你说你已经尝试过包含WS_EX_CLIENTEDGE,但没有成功。我将大胆猜测您一直试图将其包含在窗口样式中,而不是扩展的窗口样式中。您的代码应如下所示:

    hWnd = CreateWindowExW( 
        WS_EX_CLIENTEDGE,  // extended styles
        L"EDIT",
        ...
    );
    

    【讨论】:

    • 我认为它有效。我会在某些条件下测试一段时间。谢谢。
    • 那么一定是程序中的其他东西在改变样式。因为屏幕截图中两个控件之间的区别在于WS_EX_CLIENTEDGE 的存在与否。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多