atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
lafe @ ウィキ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
lafe @ ウィキ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
lafe @ ウィキ
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • lafe @ ウィキ
  • TabSkinClassic

lafe @ ウィキ

TabSkinClassic

最終更新:2010年04月11日 05:40

lafe

- view
管理者のみ編集可
/////////////////////////////////////////////////////////////////////////////
// CTabSkin
 
class CTabSkin
{
	friend class CTabCtrlItem;
 
private:
	CFont		m_font;
 
	COLORREF	m_colText;
	COLORREF	m_colActive;
	COLORREF	m_colInActive;
	COLORREF	m_colDisable;
	COLORREF	m_colDisableHi;
	COLORREF	m_colBtnFace;
	COLORREF	m_colBtnHi;
 
private:
	// コンストラクタ
	CTabSkin() { _LoadTabTextSetting(); }
public:
 
//	CTabSkin(CTheme& Theme)
//		: m_bVisible(FALSE), m_nDrawStyle(SKN_TAB_STYLE_THEME), m_Theme(Theme)
//	{
//	}
	virtual ~CTabSkin();
 
	int		GetFontHeight() const;
	HFONT	GetFontHandle() { return m_font.m_hFont; }
 
private:
	void	_GetSystemFontSetting(LOGFONT* plf);
	void	_LoadTabTextSetting();
 
	virtual void  DrawSkinCur(CDCHandle dc, CRect rcItem) = 0;	// Active
	virtual void  DrawSkinNone(CDCHandle dc, CRect rcItem) = 0;	// Normal
	virtual void  DrawSkinSel(CDCHandle dc, CRect rcItem) = 0;	// Hot
};
 
 
///////////////////////////////////////////////////////////////////////////////////
// CTabSkin
 
 
int		CTabSkin::GetFontHeight() const
{
	LOGFONT	lf = { 0 };
	m_font.GetLogFont(lf);
 
	return lf.lfHeight;
}
 
 
 
void	CTabSkin::_GetSystemFontSetting(LOGFONT* plf)
{
	// refresh our font
	NONCLIENTMETRICS info = {0};
 
	info.cbSize = sizeof (info);
	::SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof (info), &info, 0);
 
	*plf = info.lfMenuFont;
}
 
void	CTabSkin::_LoadTabTextSetting()
{
	CString	strTabSkinIni = Misc::GetExeDirectory() + _T("TabSkin.ini");
 
	// システム既定の値を設定
	LOGFONT	lf = { 0 };
	_GetSystemFontSetting(&lf);
 
	m_colText		= ::GetSysColor(COLOR_BTNTEXT);
	m_colActive		= RGB( 128, 0, 128 );
	m_colInActive	= RGB(   0, 0, 255 );
	m_colDisable	= ::GetSysColor(COLOR_3DSHADOW);
	m_colDisableHi	= ::GetSysColor(COLOR_3DHILIGHT);
	m_colBtnFace	= ::GetSysColor(COLOR_BTNFACE);
	m_colBtnHi		= ::GetSysColor(COLOR_BTNHILIGHT);
 
	// ファイルの存在チェック
	if (::GetFileAttributes(strTabSkinIni) == 0xFFFFFFFF) {
			strTabSkinIni = _GetSkinDir() + _T("TabSkin.ini");
	}
 
	// .iniから読み込み
	CIniFileRead pr( strTabSkinIni, _T("Color") );
	_QueryColorString( pr, m_colText		, _T("Text") );
	_QueryColorString( pr, m_colActive		, _T("Active") );
	_QueryColorString( pr, m_colInActive	, _T("InActive") );
	_QueryColorString( pr, m_colDisable		, _T("Disable") );
	_QueryColorString( pr, m_colDisableHi	, _T("DisableHilight") );
	_QueryColorString( pr, m_colBtnFace 	, _T("ButtonFace") );
	_QueryColorString( pr, m_colBtnHi		, _T("ButtonHilight") );
 
	pr.ChangeSectionName(_T("Font"));
	lstrcpy(lf.lfFaceName, 	pr.GetString(_T("lfFaceName") 	, lf.lfFaceName));
	HDC hDC = ::GetDC(NULL);
	lf.lfHeight		= -MulDiv(pr.GetValue (_T("lfHeight"), lf.lfHeight), GetDeviceCaps(hDC, LOGPIXELSY), 72);
	lf.lfItalic		= (BYTE)pr.GetValue (_T("lfItalic")		, lf.lfItalic);
	lf.lfUnderline	= (BYTE)pr.GetValue (_T("lfUnderline")	, lf.lfUnderline);
	lf.lfStrikeOut	= (BYTE)pr.GetValue (_T("lfStrikeOut")	, lf.lfStrikeOut);
	lf.lfWeight 	= FW_NORMAL;
	lf.lfCharSet 	= DEFAULT_CHARSET;
	if (m_font.IsNull() == false) {
		m_font.DeleteObject();
	}
	m_font.CreateFontIndirect(&lf);
}
 
 
 
 
 
////////////////////////////////////////////////////////////////////////////
// CTabSkinClassic
 
class CTabSkinClassic : public CTabSkin
{
public:
	// コンストラクタ
	CTabSkinClassic();
 
private:
	void	DrawSkinCur(CDCHandle dc, CRect rcItem);
	void	DrawSkinNone(CDCHandle dc, CRect rcItem);
	void	DrawSkinSel(CDCHandle dc, CRect rcItem);
};
 
/////////////////////////////////////////////////////////////////////////////
// CTabSkinClassic
 
void	CTabSkinClassic::DrawSkinCur(CDCHandle dc, CRect rcItem)
{
	COLORREF	crTxt	= dc.SetTextColor(m_colBtnFace);
	COLORREF	crBk	= dc.SetBkColor(m_colBtnHi);
	CBrush		hbr( CDCHandle::GetHalftoneBrush() );
	dc.SetBrushOrg(rcItem.left, rcItem.top);
	dc.FillRect(rcItem, hbr);
	dc.SetTextColor(crTxt);
	dc.SetBkColor(crBk);
	dc.DrawEdge(rcItem, EDGE_SUNKEN, BF_RECT);
}
 
void	CTabSkinClassic::DrawSkinNone(CDCHandle dc, CRect rcItem)
{
	dc.DrawEdge(rcItem, BDR_RAISEDINNER, BF_RECT);
}
 
void	CTabSkinClassic::DrawSkinSel(CDCHandle dc, CRect rcItem)
{
	dc.DrawEdge(rcItem, BDR_RAISEDINNER, BF_RECT);
}
 
 
 
「TabSkinClassic」をウィキ内検索
LINE
シェア
Tweet
lafe @ ウィキ
記事メニュー
メニュー
  • トップページ

作成したソフトウェア
  • unDonut
    • 更新履歴
    • 既知のバグ
    • unDonutScript

  • ExpTabBar

  • SetDefaultAudioDevice

  • Proxydomo
    • 詳細
    • SSLフィルタリング
    • Chromium系列のブラウザでSSLフィルタリングが利用できない
    • Proxydomo - English edition

  • ImageArrangement

  • TTBase拡張
    • ファイルダイアログ拡張10
    • ChangeCaretColor

プログラムtip
  • C++
    • Tip



合計: -
今日: -
昨日: -


記事メニュー2
何かあれば【 こちら 】まで問い合わせください

更新履歴

取得中です。
人気記事ランキング
  1. Chromium系列のブラウザでSSLフィルタリングが利用できない
もっと見る
最近更新されたページ
  • 1937日前

    メニュー
  • 1937日前

    ExpTabBar
  • 1937日前

    ExpTabBar old
  • 2280日前

    Proxydomo
  • 3016日前

    Chromium系列のブラウザでSSLフィルタリングが利用できない
  • 3062日前

    FileDlgHack
  • 3097日前

    右メニュー
  • 3204日前

    proxydomo_detail
  • 3432日前

    Proxydomo - English edition
  • 3521日前

    SetDefaultAudioDevice
もっと見る
人気記事ランキング
  1. Chromium系列のブラウザでSSLフィルタリングが利用できない
もっと見る
最近更新されたページ
  • 1937日前

    メニュー
  • 1937日前

    ExpTabBar
  • 1937日前

    ExpTabBar old
  • 2280日前

    Proxydomo
  • 3016日前

    Chromium系列のブラウザでSSLフィルタリングが利用できない
  • 3062日前

    FileDlgHack
  • 3097日前

    右メニュー
  • 3204日前

    proxydomo_detail
  • 3432日前

    Proxydomo - English edition
  • 3521日前

    SetDefaultAudioDevice
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  2. MadTown GTA (Beta) まとめウィキ
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. ソードランページ @ 非公式wiki
  6. AviUtl2のWiki
  7. ヒカマーWiki
  8. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  9. Dark War Survival攻略
  10. 星飼いの詩@ ウィキ
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  6. 検索してはいけない言葉 @ ウィキ
  7. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  8. 発車メロディーwiki
  9. オレカバトル アプリ版 @ ウィキ
  10. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. べりはぴ - ストグラ まとめ @ウィキ
  3. アプリコット - ストグラ まとめ @ウィキ
  4. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  5. ガンダム・エアリアル(改修型) - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  6. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
  7. 機体一覧 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  8. コメント/雑談・質問 - マージマンション@wiki
  9. 危険度7 - 検索してはいけない言葉 @ ウィキ
  10. 奇夢 ヤミ - ストグラ まとめ @ウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.