如何创建正常的win32编辑控件?

Car*_*ers 4 c winapi

我正在尝试创建一个带有常规3D边框的编辑控件(无论如何都采用经典的Windows风格),但它周围只有1px的黑色边框.这是我的CreateWindowEx电话:

return CreateWindowEx(0, "EDIT", "E:\\bk",
                      WS_VISIBLE | WS_CHILD | WS_BORDER | ES_LEFT,
                      87, 81, 150, 17,
                      main_window.hwnd,
                      (HMENU)5, hInstance, NULL);
Run Code Online (Sandbox Code Playgroud)

如果我排除WS_BORDER那么它只是一个白色的盒子.关于这里有什么问题的任何想法?

更新

WS_EX_CLIENTEDGE做了伎俩.我对清单文件一无所知,或者如何使窗口使用更现代的Windows主题(例如XP),而不是粗糙的3D边框.但是,当我确实学到这一切时,WS_EX_CLIENTEDGE会让他们使用这些主题,还是会强制执行3D外观?

mek*_*ian 7

尝试使用WS_EX_CLIENTEDGE.这将在典型情况下创建插入的3D窗口边框.

return CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "E:\\bk",
                      WS_VISIBLE | WS_CHILD | WS_BORDER | ES_LEFT,
                      87, 81, 150, 17,
                      main_window.hwnd,
                      (HMENU)5, hInstance, NULL);
Run Code Online (Sandbox Code Playgroud)

另请参阅以下链接,了解CreateWindowEx的其余可用标志.

MSDN上的CreateWindowEx