アルファブレンド・プログラミングチップス
プログラミングチップス
  • BLOG
  • TIPS
  • LINK
  • CONTACT
  • HOME
  • SITEMAP
  • ALPHABREND
TIPS/VisualC++/縦書きコンボボックス
[ リロード ]   [ ソース ]  [ トップ | 一覧 | 単語検索 | 最新 | バックアップ | ヘルプ ]

トップ > TIPS > VisualC++ > 縦書きコンボボックス
[ ページコメント(0) ] [ トラックバック(0) ]
Counter: 1128, today: 2, yesterday: 1
Word等に貼り付けられるアプリケーション Prev Next フローティング中のツールバーを斜めにサイズ変更できるようにする

縦書きコンボボックス

縦書きといっても
通常のコンボボックスに縦書き描画しているだけなので
1文字目くらいしか表示されないと思います。

まずCTategakiComboというクラスを作成し、
コンボボックスに割り当てます。

CTategakiCombo m_combo;

次にOnInitDialog等で縦書きフォントを割り当てます。

m_combofont.CreateFont( 12, 0, 2700, 0, FW_NORMAL, 0, 0, 0,
	ANSI_CHARSET | SHIFTJIS_CHARSET, OUT_DEFAULT_PRECIS,
	CLIP_LH_ANGLES, DEFAULT_QUALITY, DEFAULT_PITCH, "@MS 明朝" );
m_combo.SetFont( &m_combofont );

あとは正しく縦書きフォントを表示させるため、
CTategakiComboのDrawItemを継承し実装します。

void CTategakiCombo::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
	char		text[256];
	CRect		rect;
	CString		str;
	COLORREF	oldcolor;
	int			oldmode;
	LOGFONT		logfont;
	CFont		*font;


	if( lpDrawItemStruct->itemID != -1 )
	{
		if( font = GetFont() )
		{
			if( font->GetLogFont( &logfont ) )
			{
				oldmode	= SetBkMode( lpDrawItemStruct->hDC, TRANSPARENT );
				if( lpDrawItemStruct->itemState & ODS_FOCUS )
				{
					oldcolor	= SetTextColor( lpDrawItemStruct->hDC, GetSysColor( COLOR_HIGHLIGHTTEXT ) );
					FillRect( lpDrawItemStruct->hDC, &lpDrawItemStruct->rcItem, GetSysColorBrush( COLOR_HIGHLIGHT ) );
				}
				else
				{
					oldcolor	= SetTextColor( lpDrawItemStruct->hDC, GetSysColor( COLOR_WINDOWTEXT ) );
					FillRect( lpDrawItemStruct->hDC, &lpDrawItemStruct->rcItem, GetSysColorBrush( COLOR_WINDOW ) );
				}
				GetLBText( lpDrawItemStruct->itemID, text );
				TextOut( lpDrawItemStruct->hDC,
						lpDrawItemStruct->rcItem.left + 5 + logfont.lfHeight,
						lpDrawItemStruct->rcItem.top + 5, text, (int)strlen(text) );
				SetTextColor( lpDrawItemStruct->hDC, oldcolor );
				SetBkMode( lpDrawItemStruct->hDC, oldmode );
				if( lpDrawItemStruct->itemState & ODS_FOCUS )
				{
					DrawFocusRect( lpDrawItemStruct->hDC, &lpDrawItemStruct->rcItem );
				}
			}
		}
	}
}

ちなみにコンボボックスのプロパティで
オーナードローを有効にしておいて下さい。

これで完成です。

付箋機能(wema) メニュー 
付箋機能 [新規] [ごみ箱] [透明] [更新] [リスト] [ヘルプ]  付箋検索: 自動更新:
付箋の編集
文字色: 背景色:
お名前:  線接続id:

[ごみ箱] [透明] [リスト] [ヘルプ]  付箋検索:

ページコメント
 
投稿された内容の著作権はコメントの投稿者に帰属します。

リロード   差分 ソース ファイル添付 添付ファイル一覧   Wikiトップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
ページ名:TIPS/VisualC++/縦書きコンボボックス
ページ作成:dala - 2006/05/28 23:09:29 JST(907d)
最終更新:dala - 2006/05/28 23:09:29 JST(907d)
編集可:dala
リンクページ:TIPS(10h) VisualC++(907d)
Modified by dala

"PukiWikiMod" 1.5.1 Copyright © 2003-2005 ishii & nao-pon. License is GNU/GPL.
Based on "PukiWiki" by PukiWiki Developers Team
Powered by PHP 5.2.6

HTML convert time to 0.391 sec.
Go Page Top
メインメニュー
ホーム プログラミングチップス 最新ページ一覧 ページ一覧 日記 掲示板 ダウンロード FAQ サイトマップ リンク集 お問い合わせ
WordPress カテゴリ一覧
  • Akelos
  • CakePHP
  • Flex
  • ちいたん
  • 日記
TIPS

  • CakePHP
  • CentOS
  • Flex
  • PHP
  • VisualC++
日記カレンダー
2008年 11月
日 月 火 水 木 金 土
« 9月    
 1
2345678
9101112131415
16171819202122
23242526272829
30  
最新チップス
2008-11-20
  • ヘルプ
  • TIPS
2008-10-14
  • TIPS/VisualC++/縦書きエディットコントロール
2008-6-9
  • TIPS/Flex
2008-5-24
  • TIPS/CakePHP/複数形
2008-4-15
  • TIPS/PHP
2008-3-21
  • TIPS/CakePHP/scripts_for_layoutとは?
2008-3-10
  • TIPS/CakePHP
2008-3-6
  • TIPS/CakePHP/cronを使う
  • TIPS/Flex/サウンドをループ
日記最近の投稿
  • 2008-9-9
    • MySQL文字列の数値変換
  • 2008-8-28
    • XOOPSの外部利用
  • 2008-7-17
    • asp.netのタスク
  • 2008-5-15
    • 最近
  • 2008-4-24
    • オリジナルのView
  • 2008-4-1
    • Yahooが!
    • mashupedia閉鎖
  • 2008-3-31
    • ヒゲシミュレータ
  • 2008-3-28
    • Modelの追加方法
  • 2008-3-26
    • scripts_for_layout続き
日記月別過去ログ
  • 2008年 9月
  • 2008年 8月
  • 2008年 7月
  • 2008年 5月
  • 2008年 4月
  • 2008年 3月
  • 2008年 2月
  • 2007年 12月
  • 2007年 11月
  • 2007年 10月
  • 2007年 9月
  • 2007年 8月
  • 2007年 7月
  • 2007年 6月
  • 2007年 5月
  • 2007年 4月
  • 2007年 3月
  • 2007年 1月
  • 2006年 12月
  • 2006年 11月
  • 2006年 10月
  • 2006年 9月
  • 2006年 8月
  • 2006年 7月
  • 2006年 6月
  • 2006年 5月
日記検索
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
Powered by XOOPS Cube 2.0 © 2005-2006 The XOOPS Project theme design by BCOOL