18

Win32 / GDI APIの使用方法や、Win32 APIを使用してガラスのフォームに直接描画およびペイントするために、それに取って代わるものを学習するための優れたリソースを探しています。

Delphiを使用しているときに、これにDelphiまたはVisualC++のタグを付けました。あなたが見つけることができるどんなコードサンプルと記事でもありがたいです。MSDNの記事はこれについて書かれていないようです。

目標として、次のいずれかを実行したいとします。(a)Google Chromeの機能を再現する(ガラスフレームの一部としてタブ)(b)MS Office 2010の機能を再現する(ガラスフレームの保存ボタン、MFCではVS 2010、「クイックアクセスツールバー」として(下の図を参照)。

私はMFCを使用していませんが、MFCソースを調べることが良い情報源である場合、MFCソースまたはBCG元のソース(両方を持っています)のどこにクイックアクセスツールバーのレンダリング/ペイントコードが実装されているか知りたいです。

代替テキスト

更新:以下の回答の1つからの関連するネイトリンクは、NC(非クライアント)ペイントメッセージ、ガラスフレームにペイントするときの処理方法、およびそれに関するMSDNの記事をここに示しています。

4

5 に答える 5

21

これは私の「Glass」ブックマークフォルダのサブセットであり、このトピックに関する多くの調査/検索の結果です。これらはすべて、ガラスについて学び、ガラスを利用してさまざまな問題を解決するのに役立ちます。これらのほとんどにはDelphiコードが含まれていますが、別の言語の場合は注意しました。

プレーンガラスリンク

  • Delphiで半透明のウィンドウを使用する:DelphiフォームでGlassを使用するための優れた紹介(非常に基本的なものから)
  • ガラスへのカスタム描画:ウィンドウのガラス領域にビットマップまたはその他の画像を描画する方法について説明します。アルファチャンネルなどもカバーしています。
  • VC ++プロジェクトでのGlassの使用:Glassのオン、テキストの描画、通知の処理などについて説明します。これは、Glassがどのように機能するかについての優れた一般的な紹介です。基礎となる詳細の多くはVCLによって処理されます(たとえば、GlassFrameプロパティとTForm内部はこれの多くを処理します)が、とにかくAPIレベルで実装される方法の基本を理解することは非常に役立ちます
  • 非クライアント領域に描画する方法:これは、タイトルバーにOfficeのツールバーのようなものを描画する方法を示しています。.Netコード、ただし翻訳可能
  • カスタムタイトルバーの設定:非クライアント領域の描画に関する非常に詳細な記事(Delphiでは、Delphiコード)。続いてパート2が続きます。これは、ウィンドウ全体を完全に引き継ぎ、標準のタイトルバーを自分で模倣する方法を示しています。 これらの2つの記事では、質問で要求したとおりにOfficeとChromeを模倣できます。
  • ガラス領域で最適に機能するようにさまざまなVCLコントロールを設定する方法:VCLはガラスを十分にサポートしていません。アーティファクトや、それを解決するために何をしようとも、コントロールがまったく正しく描画されないことがよくあります。この記事では、基本的なVCLビジュアルコンポーネント(ラベル、ボタン、プログレスバーなど)と、それらが完全に描画されるように、またはガラス領域に配置されたときに少なくとも「可能な限り」描画されるようにそれぞれに設定するものをリストします。

高度な、または接線方向に関連する:

于 2010-09-30T00:05:59.830 に答える
6

Vista / Windows 7でのカスタムタイトルバーの描画に関するこれらの投稿は、興味があるかもしれません。

サンプル画像:

サンプル

于 2010-09-29T14:47:30.933 に答える
5

DWMに関するMSDNページを見つけたと思います。多くのトピックといくつかの例がジャンプしています。そこにある「概要」記事のいくつかには例があります(概要の背後にあるDWMブラーなど)。

残念ながら、ドキュメント以外に、貴重な良い記事はほとんどありません。codeprojectでガラスを使用することから始めて、delphiでガラスを検出する方法を見てみましょう。その後、ドキュメントから直接関数を使用することはそれほど悪くありません。幸いなことに、それらはすべて実際には非常に簡単です。

于 2010-09-29T14:45:23.960 に答える
2

ガラスボタンを含むガラスコンポーネントの優れたWebサイト:

http://rmklever.com/

于 2011-06-30T01:39:12.197 に答える
0

さらに、これらの古い記事はあなたを助けるかもしれません:

于 2010-09-29T22:22:16.203 に答える