掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TSaNumEditをBDS2006で使用したい (ID:25501)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
TSaNumEdit = class(TCustomControl) private procedure WMNCPaint(var Msg: TWMNCPaint); message WM_NCPAINT; // 以下略 end; uses Themes, UxTheme; // ←追加 procedure TSaNumEdit.WMNCPaint(var Msg: TWMNCPaint); var R: TRect; ExStyle: Integer; TempRgn: HRGN; BorderWidth, BorderHeight: Integer; begin if UxTheme.UseThemes then begin ExStyle := GetWindowLong(Handle, GWL_EXSTYLE); if (ExStyle and WS_EX_CLIENTEDGE) <> 0 then begin GetWindowRect(Handle, R); BorderWidth := GetSystemMetrics(SM_CXEDGE); BorderHeight := GetSystemMetrics(SM_CYEDGE); InflateRect(R, -BorderWidth, -BorderHeight); TempRgn := CreateRectRgnIndirect(R); if Msg.Rgn <> 1 then CombineRgn(TempRgn, Msg.Rgn, TempRgn, RGN_AND); DefWindowProc(Handle, Msg.Msg, Integer(TempRgn), 0); DeleteObject(TempRgn); end else DefaultHandler(Msg); ThemeServices.PaintBorder(Self, False); end else DefaultHandler(Msg); end; これでテーマ対応になるはず。 XPManifest がなくてもテーマ対応になっちゃいますが… 細かいところは適当に修正してやってください。 (これで正しいのかは知らないけど)
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.