バーの自前描画 – プログラミング – Home

通知
すべてクリア

バーの自前描画


ぬあ
 ぬあ
(@ぬあ)
ゲスト
結合: 21年前
投稿: 4
Topic starter  

お世話になっております。

ウインドウに表示される、ツールバーやリバーなどのバー
の色(背景など)を変更したり、画像を貼り付けたりすることは可能なのでしょうか?
可能な場合は、どのようにすればよいのでしょうか?

よろしくお願いします。

プログラミング環境は以下になります。

VisualStudio.NET2003
ATL, WTL


引用解決済
トピックタグ
チャップ
 チャップ
(@チャップ)
ゲスト
結合: 20年前
投稿: 1
 

ツールバーならこことか参考になります。
http://www.eonet.ne.jp/~yfactory/SDK/3-07.htm


返信引用
Gak
 Gak
(@Gak)
ゲスト
結合: 23年前
投稿: 132
 

バーをサブクラス化して WM_ERASEBKGND を処理すれば行けそう。

-------------------------------
WNDPROC pfnTb_;

LRESULT CALLBACK tbProc(...) {
switch (message) {
case WM_ERASEBKGND:
GetClientRect(&rect);
FillRect((HDC)wParam, &rect, GetSysColorBrush(COLOR_DESKTOP));
return 1;
}
return CallWindowProc(pfnTb_, hWnd, message, wParam, lParam);
}

LRESULT CALLBACK WndProc(...) {
switch (message) {
case WM_CREATE:
hToolbar = CreateToolbarEx(...);
pfnTb_ = (WNDPROC)SetWindowLong(hToolbar, GWL_WNDPROC, (LONG)tbProc);
}
}


返信引用
みみかき
 みみかき
(@みみかき)
ゲスト
結合: 21年前
投稿: 9
 

WM_ERASEBKGND を受け取るようにしてみましたが、上手くいきませんでした。

いろいろ試行錯誤した結果、SetBandInfoで RBBIM_BACKGROUND を使うと描画
画像を貼り付けられることがわかりました。


返信引用
ぬあ
 ぬあ
(@ぬあ)
ゲスト
結合: 21年前
投稿: 4
Topic starter  

ありがとうございます。

SetBandInfoで RBBIM_BACKGROUNDを使うようにしてみます。


返信引用
ぬあ
 ぬあ
(@ぬあ)
ゲスト
結合: 21年前
投稿: 4
Topic starter  

SetBandInfo で 画像を背景にすることができました。
ありがとうございます。

ただ、バーの輪郭の部分には貼り付けられなかったので、バーを二段にした場合
などに、目立ってしまいます。
これを回避する方法はないのでしょうか?

よろしくお願いします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました