CBWHTMLDIB32

現在、開発凍結されています。ここに記載されている内容は、現在実現の目処はたっていません。

概要#

[[HTMLタグ>./タグ]]を利用して文章の装飾表示を行う。
内容的に[[yaneSDK]]のCTextDrawに似ているが、こちらは簡易版として、表示しか担当せず、タグを利用してデータをセットしたり、hrタグでテキストを分割することもできない。
その代わりに利用方法も簡便になっており、文字列の最後に区切り子としてhrタグを記述する必要がなく、データ処理を廃して表示専用にしている。

画像を扱うのに内部的に[[auto_resource]]を利用している。

注意点#

使用方法#

適当にHTMLタグを含む文字列をSetTextで渡すとその場でタグを解析、その後Updateすることで画像を生成。
SetWidthで指定された横幅で自動改行されるため、単なる文字列表示に使っても便利。

ダウンロード#

上が新しい。

html090205.lzh
html080917.lzh
html070713.lzh
bwhtml070607.lzh
bwhtml070401.lzh

履歴#

09/02/05連続したウィンドウサイズ変更で画像が大きくなり続けるバグ修正
08/09/17imgタグにclip・width・height属性を追加
07/07/13CDIB32の整数倍拡大に関するバグ修正に伴う単純化
07/06/07SetTextにprintfの書式バージョン追加
07/04/01できたどー

メンバ#

ここに記載されていない関数は使うべきではない。
または、ソースコードをよく読んで注意深く使うこと。

GetColorByName#

COLORREF GetColorByName(LPCSTR strName)
HTMLで使える色名から実際の色の値を得る。
パーサで内部的に使っているだけで他に用途はないが公開しても問題ないためpublicにしてある。

GetFontSize#

int GetFontSize(int relative)
HTML中のフォントサイズから実際のフォントサイズを得る。
relativeに3を指定すると元の大きさが返る。

OnDraw#

void OnDraw(CBWDraw* lp, int x, int y, int length=INT_MAX)
指定文字数分相当表示する。
自動的にUpdateが呼び出されるため事前にUpdateしておく必要はない。

SetFontSize#

void SetFontSize(int nSize)
基準フォントサイズを設定する。
このフォントサイズを中心に文書内で文字の大きさが変化する。

SetMaxWidth#

void SetMaxWidth(int w)
最大幅を指定する。
一行が長い場合、最大幅で自動改行される。
短い場合でも生成されるサーフェスの大きさはこの幅になる。

SetText#

void SetText(const string &s)
HTMLタグを含んだ文字列を設定する。
自動的にUpdateConditionを呼び出してタグを解析する。

SetText#

void __cdecl SetText(LPSTR fmt, ... )
上のSetTextの強化版。
printfと同じ記法が使える。

「Update」#

void Update()
画像を生成する。
OnDrawを使わずBlt系で直接描画する場合のみ必要。
この項目はなぜか項目名がエラーを起こしたので表記を変えてある。

UpdateAll#

static void UpdateAll()
全てのCBWHTMLDIB32に対してUpdateをかける。
描画にOnDrawしか使わない場合は全く不要。

UpdateCondition#

void UpdateCondition()
タグを解析する。
通常は自動的に呼び出されるため明示的に使用する必要はない。