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. Proxydomo
  2. MTunDonutHistory
もっと見る
最近更新されたページ
  • 1994日前

    メニュー
  • 1994日前

    ExpTabBar
  • 1994日前

    ExpTabBar old
  • 2337日前

    Proxydomo
  • 3073日前

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

    FileDlgHack
  • 3154日前

    右メニュー
  • 3261日前

    proxydomo_detail
  • 3489日前

    Proxydomo - English edition
  • 3578日前

    SetDefaultAudioDevice
もっと見る
人気記事ランキング
  1. Proxydomo
  2. MTunDonutHistory
もっと見る
最近更新されたページ
  • 1994日前

    メニュー
  • 1994日前

    ExpTabBar
  • 1994日前

    ExpTabBar old
  • 2337日前

    Proxydomo
  • 3073日前

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

    FileDlgHack
  • 3154日前

    右メニュー
  • 3261日前

    proxydomo_detail
  • 3489日前

    Proxydomo - English edition
  • 3578日前

    SetDefaultAudioDevice
もっと見る
ウィキ募集バナー
急上昇Wikiランキング

急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!

  1. ストーリーを教えてもらうスレ暫定Wiki
  2. ファイアーエムブレム用語辞典
  3. マージマンション@wiki
  4. トリコ総合データベース
  5. 発車メロディーwiki
  6. 提督たちの憂鬱 支援SSほか@ まとめウィキ
  7. 正田崇作品 @ ウィキ
  8. イナズマイレブン 染岡さんと愉快な仲間たち wiki
  9. 機動戦士ガンダム EXTREME VS.2 OVERBOOST wiki
  10. テレビ番組スポンサー表 @ wiki
もっと見る
人気Wikiランキング

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

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

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

  1. MadTown GTA (Beta) まとめウィキ
  2. シュガードール情報まとめウィキ
  3. まどドラ攻略wiki
  4. 戦国ダイナスティ攻略@ウィキ
  5. SurrounDead 攻略 (非公式wiki)
  6. ちいぽけ攻略
  7. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  8. Dark War Survival攻略
  9. 魔法少女ノ魔女裁判 攻略・考察Wiki
  10. 杖と剣の伝説
もっと見る
全体ページランキング

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

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. Braid - ストーリーを教えてもらうスレ暫定Wiki
  3. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  4. コメント/雑談・質問 - マージマンション@wiki
  5. 全人類転送ミッション - ストグラ まとめ @ウィキ
  6. 零 -刺青ノ聲- - アニヲタWiki(仮)
  7. モンスター一覧_第3章 - モンスター烈伝オレカバトル2@wiki
  8. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
  9. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
  10. 868 - ストグラ まとめ @ウィキ
もっと見る

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

2019 AtWiki, Inc.