C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.57459 の関連記事表示

<< 0 >>
■57459  フォーム上の特定のコントロールのみ不透明に
□投稿者/ ken -(2011/02/28(Mon) 11:04:39)

    分類:[.NET 全般] 

    VC++ 2010 Expressでフォームアプリケーションを作成しています。
    ここで、フォームのOpacityを変更することで、フォームとそこに配置されたコントロールの透明度を変更できます。ここで、配置されたコントロールの内、一部のみを不透明にし、残りは透明とすることは可能でしょうか?
親記事 /過去ログ96より / 関連記事表示
削除チェック/

■57461  Re[1]: フォーム上の特定のコントロールのみ不透明に
□投稿者/ shu -(2011/02/28(Mon) 14:59:32)
    2011/02/28(Mon) 14:59:51 編集(投稿者)

    No57459 (ken さん) に返信

    FormのTransparencyKeyに指定した色は透過されますが、そういうことではないですか?
記事No.57459 のレス /過去ログ96より / 関連記事表示
削除チェック/

■57462  Re[2]: フォーム上の特定のコントロールのみ不透明に
□投稿者/ ken -(2011/02/28(Mon) 17:06:11)
    > FormのTransparencyKeyに指定した色は透過されますが、そういうことではないですか?

     現状白色がこのTransparencyKeyに設定されているようです。

     行いたいのは、Formに配置した特定のラベルとコンボボックスのみ不透明にしたいのです。しかし、色で指定されると言うことは、同じ色を使用しているコントロールであれば、同時に透明化されてしまうのでしょうか。
記事No.57459 のレス /過去ログ96より / 関連記事表示
削除チェック/

■57463  Re[3]: フォーム上の特定のコントロールのみ不透明に
□投稿者/ shu -(2011/02/28(Mon) 17:16:28)
    No57462 (ken さん) に返信
    >  現状白色がこのTransparencyKeyに設定されているようです。
    何も設定していなければ、白ではないです。

    >
    >  行いたいのは、Formに配置した特定のラベルとコンボボックスのみ不透明にしたいのです。しかし、色で指定されると言うことは、同じ色を使用しているコントロールであれば、同時に透明化されてしまうのでしょうか。

    このやり方が正しいとして、TransparencyKeyは他で使わない色に設定しておいて、透明にしない部分はそのまま、透明にする部分はTransparencyKeyと同じ色にすればいいです。
記事No.57459 のレス /過去ログ96より / 関連記事表示
削除チェック/

■57464  Re[4]: フォーム上の特定のコントロールのみ不透明に
□投稿者/ ken -(2011/02/28(Mon) 17:24:32)
    2011/02/28(Mon) 17:42:48 編集(投稿者)

     すみません。言い忘れたことがあります。透明と書きましたが、正確には半透明です。

     つまり、今の状態ですと乗っているコントロールに限らず、FormのOpacityを変えることで、上に乗っている全てのコントロールの透明度(つまり半透明〜不透明)を同時に変えています。しかし、コンボボックスと特定のラベルは半透明としたくないのです。

    ところで、C#ですが、こんなページがありました。これは参考になりそうですが、C++へ翻訳する必要あります。

    http://rockmanjuno.blogspot.com/2009/12/blog-post.html
記事No.57459 のレス /過去ログ96より / 関連記事表示
削除チェック/

■57466  Re[5]: フォーム上の特定のコントロールのみ不透明に
□投稿者/ shu -(2011/02/28(Mon) 17:50:49)
    No57464 (ken さん) に返信
    > 2011/02/28(Mon) 17:42:48 編集(投稿者)
    >
    >  すみません。言い忘れたことがあります。透明と書きましたが、正確には半透明です。
    >
    >  つまり、今の状態ですと乗っているコントロールに限らず、FormのOpacityを変えることで、上に乗っている全てのコントロールの透明度(つまり半透明〜不透明)を同時に変えています。しかし、コンボボックスと特定のラベルは半透明としたくないのです。
    >
    > ところで、C#ですが、こんなページがありました。これは参考になりそうですが、C++へ翻訳する必要あります。
    >
    > http://rockmanjuno.blogspot.com/2009/12/blog-post.html

    Formを分けて表示するという方法になりますね。トップレベルでないとOpacityがきかないので独立して表示し
    移動、リサイズ、クローズを同期させているようです。
記事No.57459 のレス /過去ログ96より / 関連記事表示
削除チェック/

■57470  Re[6]: フォーム上の特定のコントロールのみ不透明に
□投稿者/ ken -(2011/02/28(Mon) 20:24:34)
    > Formを分けて表示するという方法になりますね。トップレベルでないとOpacityがきかないので独立して表示し
    > 移動、リサイズ、クローズを同期させているようです。

    以下の部分、C++に翻訳願えませんか。

    this.title_label.Text = this.Text;
    this.title_label.MouseDown += new MouseEventHandler( Form1_MouseDown );
    this.title_label.MouseMove += new MouseEventHandler( Form1_MouseMove );

    this.fm2 = new Form2();
    this.fm2.FormClosing += new FormClosingEventHandler( fm2_FormClosing );
    this.AddOwnedForm( fm2 );

    this.fm2.Width = this.Width - 40;
    this.fm2.Height = this.Height - 60;

    this.fm2.Show();
    this.fm2.Left = this.Left + 20;
    this.fm2.Top = this.Top + 40;
記事No.57459 のレス /過去ログ96より / 関連記事表示
削除チェック/

■57471  Re[7]: フォーム上の特定のコントロールのみ不透明に
□投稿者/ Azulean -(2011/02/28(Mon) 22:11:40)
    No57470 (ken さん) に返信
    > 以下の部分、C++に翻訳願えませんか。

    C++/CLI ですよね。とっかかりもわからない状態でしょうか?
    正直なところ、C++/CLI の書き方を学んで C# のサンプルから書き換えできるスキルを身につけないと、今後厳しいと思います。

    部分的にそれらしいコードに書き換えたものを以下に載せますが、コンパイルは試していません。
    あとは応用で何とかなりませんか?

    this->title_label->Text = this->Text;
    this->title_label->MouseDown += gcnew MouseEventHandler(this, &Form1::Form1_MouseDown);

    this->fm2 = gcnew Form2();
    this->AddOwnedForm(fm2);
記事No.57459 のレス /過去ログ96より / 関連記事表示
削除チェック/

■57474  Re[8]: フォーム上の特定のコントロールのみ不透明に
□投稿者/ ken -(2011/02/28(Mon) 23:00:17)
    ありがとうございます。

    > this->title_label->Text = this->Text;
    > this->title_label->MouseDown += gcnew MouseEventHandler(this, &Form1::Form1_MouseDown);
    >
    > this->fm2 = gcnew Form2();
    > this->AddOwnedForm(fm2);

     これは理解できるのですが、例えば、title_labelが何を意図したものだとか、わかってないんです。どうやら言語以前の問題ですね。例えば上記部分をForm_Loadに書いても、コンパイルエラーが出るわけで。(title_labelはクラスのメンバーとして見あたらない。)
記事No.57459 のレス /過去ログ96より / 関連記事表示
削除チェック/

■57475  Re[9]: フォーム上の特定のコントロールのみ不透明に
□投稿者/ shu -(2011/02/28(Mon) 23:20:03)
    No57474 (ken さん) に返信

    >  これは理解できるのですが、例えば、title_labelが何を意図したものだとか、わかってないんです。どうやら言語以前の問題ですね。例えば上記部分をForm_Loadに書いても、コンパイルエラーが出るわけで。(title_labelはクラスのメンバーとして見あたらない。)
    title_labelはタイトルバーの代わりにラベルを張り付けたのだと思います。タイトルバーが非表示のスタイルになっているということです。
記事No.57459 のレス /過去ログ96より / 関連記事表示
削除チェック/

■57476  Re[5]: フォーム上の特定のコントロールのみ不透明に
□投稿者/ 魔界の仮面弁士 -(2011/03/01(Tue) 00:37:33)
    No57464 (ken さん) に返信
    >  つまり、今の状態ですと乗っているコントロールに限らず、FormのOpacityを変えることで、
    > 上に乗っている全てのコントロールの透明度(つまり半透明〜不透明)を同時に変えています。
    > しかし、コンボボックスと特定のラベルは半透明としたくないのです。

    UpdateLayeredWindow API で ULW_ALPHA を指定すれば、
    透明部分と半透明部分と不透明部分とをピクセル単位で指定できますよ。

    以下、C++ のコードではありませんが参考までに。
    http://youryella.wankuma.com/Library/Extensions/Form/LayeredWindow.aspx
記事No.57459 のレス /過去ログ96より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -