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

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

C# と VB.NET の入門サイト

Re[2]: VisualStylesの影響を受けないコントロールの作成


(過去ログ 144 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■84215 / inTopicNo.1)  VisualStylesの影響を受けないコントロールの作成
  
□投稿者/ アカシア (1回)-(2017/05/31(Wed) 22:22:54)

分類:[C#] 

VisualStdio C# 4.6

自作したCustomControlの一部がEnableVisualStylesの影響を受けてうまく描画ができません。
Programs.cs側のEnableVisualStylesをコメントアウトすることで対処できるのですが、
アプリ内の他のコントロールの描画にも影響を受けてしまいます。

そこで自作したCustomControlに対して、VisualStylesの影響を受けない手段を施したいのですが、
何か手段はないのでしょうか。

引用返信 編集キー/
■84216 / inTopicNo.2)  Re[1]: VisualStylesの影響を受けないコントロールの作成
□投稿者/ Azulean (825回)-(2017/05/31(Wed) 23:14:18)
No84215 (アカシア さん) に返信
> そこで自作したCustomControlに対して、VisualStylesの影響を受けない手段を施したいのですが、
> 何か手段はないのでしょうか。

ユーザーコントロール単位ではなく、ボタン、ラジオボタンなどのコントロールのハンドルごとに SetWindowTheme を空文字列で呼び出せばいけるとは思います。

https://msdn.microsoft.com/en-us/library/windows/desktop/bb759827%28v=vs.85%29.aspx

例

private void button2_Click(object sender, EventArgs e)
{
    SetWindowTheme(comboBox1.Handle, "", "");
}

[DllImport("Uxtheme.dll", CharSet = CharSet.Unicode)]
private static extern int SetWindowTheme(IntPtr handle, string subAppName, string subIdList);


// UserControl 自体に指定しても、そこに置かれているコントロールに引き継がれるというものではないので、
// テーマの適用を切りたいコントロールごとに呼び出しが必要。

引用返信 編集キー/
■84243 / inTopicNo.3)  Re[2]: VisualStylesの影響を受けないコントロールの作成
□投稿者/ アカシア (2回)-(2017/06/03(Sat) 13:06:12)
回答ありがとうございます。
コントロールに組み込んだところ、VisualStyleのアプリケーションの中に入れても大丈夫でした。
どうもありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -