0

TPanel(斜角)のように見える「ドロップボックス」を使用して、開く/保存ダイアログを拡張したいと思います。コードはすでにあります-私はCreateWindowEx()をWNDCLASS名「Edit」で使用しています。

純粋なWinAPIを使用してTPanel(または斜角のSTATIC)を描画するためのソリューションを検索しましたが、何も見つかりませんでした。

MS Spy ++によると、TPanelのWNDCLASS名は「TPanel」です(純粋なWinAPIのようには聞こえませんか?)

次のコードを試しましたが、クラス名「EDIT」や「STATIC」ではなく「TPanel」を試してみるとすぐに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でデルファイで強調表示されたコードを書く方法を教えてください。

4

1 に答える 1

6

TPanel は純粋な VCL コントロールであり、Win32 ウィンドウ クラスのラッパーではありません。TPanel のソース コード (VCL ソース内) を見て、どのように正確に描画されているかを確認してください。必要なのは、内部を単色で塗りつぶし、境界線をペイントすることです。ただし、テーマのサポートが必要な場合は、さらに複雑になります。

また、純粋な WinAPI を使用する理由は何ですか? 開く/保存ダイアログに VCL コントロールを埋め込むことができます。VCL ソース コードの TOpenPictureDialog を見てください。まさに必要なことを実行します。

于 2010-10-27T08:47:06.297 に答える