Page006
の編集
http://localhost/keibun/mingwiki/index.php?Page006
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
BracketName
CMyFrameWin
FormattingRules
FrontPage
Help
InterWiki
InterWikiName
InterWikiSandBox
MenuBar
Net001
Net002
Net003
Net004
Net005
PHP
Page001
Page002
Page003
Page004
Page005
Page006
Page007
Page008
Page009
Page010
Page011
PukiWiki
PukiWiki/1.4
PukiWiki/1.4/Manual
PukiWiki/1.4/Manual/Plugin
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/H-K
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/V-Z
SandBox
StartPage
WikiEngines
WikiName
WikiWikiWeb
YukiWiki
[[Page005]] * 画像 document の実装 [#z661e847] 前節で見たように、Scroll window にとって必要なのは、表示する document の表示上の大きさと指定された位置からの描画関数であって、document の詳細は必要としない。前節では document の内容は text であったが、ここでは document の内容を画像にしてみよう。 元の text 表示機能も残そうとすると、基底 class を作って、text用 class と、image用 class を派生させるのが自然であろう。上で述べたように必要なのは表示上の大きさを返す関数と描画関数であるので、基底 class は、この二つを virtual 関数として持たせておく。基底 class の名前は、ここでは CMyContent とする。 // myconten.h #ifndef MYCONTENT_H_INCLUDED #define MYCONTENT_H_INCLUDED #include <windows.h> namespace mylib { class CMyContent { public: static const int TYPE_UNKNOWN = 0; static const int TEXT_PLAIN = 1; static const int IMAGE_BMP = 11; public: virtual ~CMyContent(); virtual const SIZE& Size(HDC hdc); virtual int Draw(HDC hdc, int x, int y, PAINTSTRUCT& ps); protected: CMyContent(); protected: SIZE m_sz; }; } // namespace mylib #endif // MYCONTENT_H_INCLUDED 基底 class の関数を使って派生 class の関数を呼び出すわけだが、そのためには pointer 経由で呼び出す必要が出てくる(基底 class へ代入してしまうと、基底 class へコピーされたもの以外は削除されてしまう)。この点については考察は後で行うこととして、とりあえずここでは content に応じて new したものを基底 class への pointer へ cast して保持しておくことにする。
タイムスタンプを変更しない
[[Page005]] * 画像 document の実装 [#z661e847] 前節で見たように、Scroll window にとって必要なのは、表示する document の表示上の大きさと指定された位置からの描画関数であって、document の詳細は必要としない。前節では document の内容は text であったが、ここでは document の内容を画像にしてみよう。 元の text 表示機能も残そうとすると、基底 class を作って、text用 class と、image用 class を派生させるのが自然であろう。上で述べたように必要なのは表示上の大きさを返す関数と描画関数であるので、基底 class は、この二つを virtual 関数として持たせておく。基底 class の名前は、ここでは CMyContent とする。 // myconten.h #ifndef MYCONTENT_H_INCLUDED #define MYCONTENT_H_INCLUDED #include <windows.h> namespace mylib { class CMyContent { public: static const int TYPE_UNKNOWN = 0; static const int TEXT_PLAIN = 1; static const int IMAGE_BMP = 11; public: virtual ~CMyContent(); virtual const SIZE& Size(HDC hdc); virtual int Draw(HDC hdc, int x, int y, PAINTSTRUCT& ps); protected: CMyContent(); protected: SIZE m_sz; }; } // namespace mylib #endif // MYCONTENT_H_INCLUDED 基底 class の関数を使って派生 class の関数を呼び出すわけだが、そのためには pointer 経由で呼び出す必要が出てくる(基底 class へ代入してしまうと、基底 class へコピーされたもの以外は削除されてしまう)。この点については考察は後で行うこととして、とりあえずここでは content に応じて new したものを基底 class への pointer へ cast して保持しておくことにする。
テキスト整形のルールを表示する