我想用“drop-box”扩展一个打开/保存对话框,它应该看起来像TPanel(斜角)。代码已经存在 - 我使用带有WNDCLASS名称“编辑”的CreateWindowEx()。
我已经搜索了一个用纯WinAPI绘制TPanel(分别是斜面STATIC)的解决方案,但没有找到任何东西。
MS Spy ++告诉我,TPanel的WNDCLASS名称为“TPanel”(听起来不像纯WinAPI?)
我现在尝试使用以下代码,但是当我尝试使用类名“TPanel”而不是“EDIT”或“STATIC”时,我会得到一个AV。
procedure TForm1.Button1Click(Sender: TObject);
begin
CreateWindowEx(
WS_EX_LEFT or WS_EX_LTRREADING or WS_EX_RIGHTSCROLLBAR or WS_EX_CONTROLPARENT,
'TPanel',
'Hello World',
WS_CHILDWINDOW or WS_VISIBLE or WS_CLIPSIBLINGS or WS_CLIPCHILDREN,
0, 0, 100, 100,
Handle, 0, hInstance, nil);
end;
你能帮帮我吗?
问候
丹尼尔马歇尔
PS:你能告诉我如何在StackOverflow.com上编写delphi高亮显示的代码吗?
答案 0 :(得分:6)
TPanel是纯VCL控件,它不是Win32窗口类的包装器。 看一下TPanel的源代码(在VCL源代码中),看看它是如何绘制的。你需要的是用纯色填充内部并涂上边框。如果你想要主题支持,事情变得更加棘手。
另外,为什么要使用纯WinAPI?您可以在打开/保存对话框中嵌入VCL控件。在VCL源代码中查看TOpenPictureDialog - 它完全符合您的需求。