C 如何创建普通的win32编辑控件?
我试图创建一个编辑控件,它周围有常规的3D边框(无论如何,在经典的windows样式中),但它周围只有一个1px的黑色边框。这是我的C 如何创建普通的win32编辑控件?,c,winapi,C,Winapi,我试图创建一个编辑控件,它周围有常规的3D边框(无论如何,在经典的windows样式中),但它周围只有一个1px的黑色边框。这是我的CreateWindowEx调用: return CreateWindowEx(0, "EDIT", "E:\\bk", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_LEFT, 87, 81, 150, 17,
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);
如果我排除了WS\u BORDER
,那么它只是一个白框。你知道这里出了什么问题吗
更新
WS_EX_CLIENTEDGE
成功了。
我对清单文件一无所知,也不知道如何让窗口使用更现代的windows主题(例如XP),而不是笨重的3D边框。但是,当我了解了所有这些之后,
WS_exu_CLIENTEDGE
会让他们使用这些主题吗,还是会强化3D外观?我想你指的是“WS_exu DLGMODALFRAM
E”风格。它使它看起来像老式的3d凸起式外观。与“WS_BORDER”结合使用,使控件周围看起来像一个3d边框。尝试使用WS_EX_CLIENTEDGE。这将在典型情况下创建嵌入的三维窗口边框
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);
有关CreateWindowEx的其余可用标志,请参见以下链接
他是对的,WS_EX_CLIENTEDGE将进行3D边框处理。当然,您需要检查链接所针对的comctl32.dll版本,但WS_EX_CLIENTEDGE仍将适用。还请注意,如果使用MFC生成表单,则更容易跟上常用控件的更新。最后,您可以始终使用Spy++实用程序检查要检查的窗口的窗口样式。