前回、以下サイトを紹介いただき、何とかデスクバンドを作成することができました。
http://msdn.microsoft.com/en-us/library/aa969320 …
http://eternalwindows.jp/shell/shellex/shellex13 …
しかし、こちらの環境は WIndows XP / Borland C++Builder 6 proなのですが、
uxtheme.libがないため、ウィンドウズスタイルが使えません。
ウィンドウズスタイルを使ったタスクバーと自作したデスクバンドに違和感があり、何とかウィンドウズスタイルを使用したいのです。
MSNサイトから、Windws SDK v6.0とv7.1をダウンロードしてUxtheme.libを入手したのですがPCの中のsytem32にあるuxtheme.dll(6.0.2900.5512)と合わないようです。
どなたか、WIndows XP / Borland C++Builder 6 pro(uxthemeが無い環境)でウィンドウズスタイルを使える方法を教えていただけないでしょうか。
具体的には以下コードが使いたいのです。
宜しくお願いします。
<ONPAINTコード>
HTHEME htheme;
HDC hdcPaint;
HPAINTBUFFER hBufferedPaint;
DTTOPTS dttOpts;
htheme = OpenThemeData(NULL, L"TASKBAND");
hBufferedPaint = BeginBufferedPaint(hdc, &rc, BPBF_TOPDOWNDIB, NULL, &hdcPaint);
DrawThemeParentBackground(m_hwnd, hdcPaint, &rc);
ZeroMemory(&dttOpts, sizeof(DTTOPTS));
dttOpts.dwSize = sizeof(DTTOPTS);
dttOpts.dwFlags = DTT_COMPOSITED | DTT_TEXTCOLOR;
dttOpts.crText = crText;
DrawThemeTextEx(htheme, hdcPaint, 0, 0, szText, -1, DT_SINGLELINE | DT_CENTER | DT_VCENTER, &rc, &dttOpts);
EndBufferedPaint(hBufferedPaint, TRUE);
CloseThemeData(htheme);
No.2
- 回答日時:
もし、.h、LIB の設定が Borland C++ の .h、LIB を使用する設定のままでしたら、Borland C++ の方を無効にして、ダウンロードした新しい方を使用する設定にしてみてはどうでしょう。
この回答への補足
uxtheme.libの件は「VC向けのlibファイルは、C++Builderでは使えない」というのが原因だということが分かりました。implibコマンドでBCB用のlibファイルを作成する必要があり、解決しました。
補足日時:2011/05/05 22:43アドバイスありがとうございます。
Borland C++Builderには元々uxtheme.hとuxtheme.libはなく、SDK 6.0/7.1のものを使っています。でも、状況は1)の通りです。今、別バージョンのSDKではと思い、今、ダウンロードしています。
何とかなれば良いのですが・・・・。
No.1ベストアンサー
- 回答日時:
ウィンドウズスタイルというのが何のことか、いまひとつピンとこないですが・・・。
http://msdn.microsoft.com/en-us/library/bb773257 …
http://msdn.microsoft.com/en-us/library/bb773317 …
によると BeginBufferedPaint とか DrawThemeTextEx とかって Vista 以降ってなってますから、普通に考えると XP では使えないと思います・・・。
DrawThemeParentBackground は XP でも使えますから、↓くらいで我慢するしかないんじゃないでしょうか。
( 質問に掲載されていた Microsoft のページを参考にしています。)
WM_PAINT の処理
RECT rc;
PAINTSTRUCT ps;
COLORREF crText = RGB( 255, 255, 255 );
TCHAR szText[] = TEXT("My DeskBand");
BeginPaint( m_hwnd, &ps );
GetClientRect( m_hwnd, &rc );
DrawThemeParentBackground( m_hwnd, ps.hdc, &rc );
SetTextColor( ps.hdc, crText );
SetBkMode( ps.hdc, TRANSPARENT );
DrawTextW( ps.hdc, szText, -1, &rc, DT_CENTER | DT_VCENTER | DT_SINGLELINE );
EndPaint( m_hwnd, &ps );
回答ありがとうございます。
MSNサイトから、Windws SDK v6.0とv7.1をダウンロードしてUxtheme.libを追加、Uxtheme.hをincludeして早速、試してみましたが「未定義シンボル__in」エラーが出てしまいました。
入手したUxtheme.libではダメみたいです。
もう少し、頑張ってみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 7 Windows7でMicrosoft VirtualPC2007 SP1を使用する 9 2022/11/17 13:12
- ホームページ作成・プログラミング 11以降のホームページ作成ソフト 4 2022/04/10 09:25
- Windows 10 ウィンドウズ10 Homeパソコンで、アドオン管理にフェリカが追加されません。IE開いてるのに。 N 4 2022/11/20 17:54
- Windows Vista・XP windows xp proが起動しなくなりました 10 2022/05/20 00:49
- Excel(エクセル) 1つのファイルを3つのフォルダにファイル名を【明日の日付】にして、コピーをしたい 2 2022/12/21 17:43
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- Windows 10 explorerをedgeで開く方法 2 2022/06/05 14:59
- その他(OS) Macか、Windowsか、アドバイスください 2 2023/03/28 19:40
- CPU・メモリ・マザーボード ウィンドウズ11ノートPCのアマゾン整備済み品というのはどういう意味でしょうか 使用されているCPU 8 2022/11/15 17:12
- フリーソフト Mozilla thunderbirdのソフトに詳しい方 6 2022/06/08 14:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ポップアップメニュー
-
トラックのループの仕方
-
2÷3などの余りについて
-
C言語で%を使わない余りの出し方
-
比較回数と交換回数表示について
-
信頼区間の1.96や1.65ってどこ...
-
nCmの関数
-
複数桁10進数の*桁目だけを抽出...
-
Notepad++の関数リスト表示の変...
-
C言語のfor文です。 繰り返しの...
-
break文でループを一気に抜ける...
-
正負を反転させて出力するプロ...
-
#define _CRT_SECURE_NO_WARNIN...
-
error C2143: 構文エラー : ';'...
-
プログラムでの数字につく”f”の...
-
既定のコンストラクタがありま...
-
hit&bolwのプログラミングがで...
-
C言語 配列と関数の練習問題
-
c言語
-
std::set<int> で、ある値が何...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エディットボックスの背景の色...
-
ダイアログプログラムでEnterキ...
-
C言語win32api、エディットボッ...
-
音量調節
-
エディットコントロール入力時...
-
プログラミングでエラーが出ま...
-
エラー Run-Time Check Failur...
-
キャレットの現在位置の表示 (W...
-
LoadImageとSetCursorについて
-
コンソールアプリケーションの...
-
画像を表示したいのですが……
-
ボタンの色(WINAPI)
-
COMPORTマルチスレッドで例外発生
-
C++のcase文の書き方
-
Win32APIでウィンドウを中央に...
-
PeekMessageについて
-
CTreeCtrlのCreate関数でエラー...
-
オーバーレイみたいな処理がしたい
-
この列挙体でsysjanの関数はあ...
-
DirectInputについて再
おすすめ情報