設定 - みる会図書館


検索対象: Inside Visual C++
275件見つかりました。

1. Inside Visual C++

PART 4 上級的なトピックス 呼び出す。〃 0 佐のパラメータはひとつで、 0 がプライマリ Verb 、 1 がセカンタ、、リ Verb と続く。 Verb が起動されたときにサーバープログラムがロードされていない場合、 OLE システムはサー アイテムのシリアライズ クタがすべての面倒を見る。必要な場合、サー ープログラムは終了させられる。 この作業は簡単である。単純に CO C 〃盟召襯オプジェクトを削除すればよい。仮想デストラ アイテムの削除 をロードし、必要なデータを送る。 526 が、独自の CO ん C 〃盟召川ポインタをドキュメント内に保持する必要がある場合は、 OLE アイテ る。これは CO ん C のの仮想関数 D な朝〃厩 s 中で扱われる。しかしドキュメント構造体 CO ん C 〃のの内部アイテムリストを使用する場合、 OLE アイテムの削除は自動で行なわれ ドキュメントのクリーンアップ コールバックを引き起こさせる。すべての範囲指定は MM ー HIMETRIC 論理単位を仮定している。 ーに 0 立昭 0 ″〃の に頼むことがときどきある。 CO ん C 〃盟 e 襯の & 鵬〃関数は、サー クライアントから、よりクライアントの必要にかなう矩形中にデータを再描画することをサー はない。 ズの矩形でサーバーのアイコンを描画するその他のクライアントは、 G イ召の呼び出しの必要 テムのサイズを設定するためにこの関数を呼び出す。例題プログラム EX25A といった、固定サイ の G 召鵬〃赤関数を呼び出すことができる。 Windows のライトは、ドキュメント中の OLE アイ クライアントアプリケーションが OLE アイテムのサイズを知る必要がある場合、 CO C 厩 / 襯 OLE アイテムの大きさの取得と設定 いけない。派生ドキュメントクラス中のシリアライズの制御は読者が行なう。 べースクラスのドキュメントクラスがこれらのアイテムをシリアライズすると仮定しては 注意クライアントドキュメントは独自のクライアントアイテムのリストを持っているが、 に送る必要のある適当な動作が行なわれるまで保持することになる。 クライアントはデータを読み込んだ後、ユーザーが Verb を起動するといった、データをサー タをメモリ中に持っているので、単純にデータをディスクに書き込むだけである。ロードの場合、 呼び出すことになる。ストアの場合、クライアントはすでに必要なネーテイプフォーマットのデー キュメント用に用意する。この関数は最終的には CO C 厩 / 襯べースクラスの S 夜〃託関数を して、各ドキュメントをシリアライズするという動作を行なう S の〃記関数を、クライアントド ンフレームワークが OLE のシリアライズを簡単にしている。ドキュメントアイテムリストを走査 トに関して何も知ることなく、ロードとストアを行なわなければならない。実際にはアプリケーショ OLE のシリアライズというと難しそうに聞こえる。クライアントはサーバーデータのフォーマッ

2. Inside Visual C++

8 章 Visual Basic コントロ ーノレ 幅は以下の式に従って計算される。 クライアント論理 twips = クライアントピクセル x 1440 / インチあたりの論理ピクセル する前に、文字列に変換しておかなければならない。以下の太字部分のコードで既存のコードを データメンバの値を設定している。倍精度値は、これをセルのテキストプロバティの設定に使用 関数の最後近くのネストしたループは、グリッドセルのテキストに、対応する襯ー % する。 プロバティを設定し、それ以外のセルを右揃えにするために CoIAlignment プロバティを設定 左の列 ) にインデックス付きの FixedAlignment プロバティと、中央揃えにする CoIAIignment 2 番目のカ % ループは行の高さと行のラベルを設定する。これはまた、すべての固定セル ( 上の行、 を示すために設定されている Col と Row の両方のプロバティに依存しているからである。 メータを使用しなければならない。テキストはインデックス指定されないが、これは特定のセル CoIWidth はインデックス付きのプロバティであり、要素の値を設定するのにインデックスパラ S わ乃℃加めメンバ関数を使った列の幅と見出しの設定を、 8 列すべてに繰り返すというものだ。 こで最初の面 % ループを見てみよう。このコードは、 C レ召 Co 厩川 / の S 襯 P % のげなと Set 幅の矩形を取得する。 C ルの G の C 〃訳 e 関数は、クライアント矩形のデバイス座標単位 ( ピクセル ) の幅と同じ 置き換える。 BOOL CEx08aDiaIog : : OnInitDia10g() CRect rect ; char temp [ 20 ] ー int long 1C01W 土 dt 五 , 1RovHeight ー VERIFY(CDia10g : : OnInitDia10g() ) ; VERIFY (m_pVBGrid—>GetNumProperty い CoIs ” ) VERIFY(m_pVBGrid—>GetNumProperty( "Rovs") CCIientDC dc(this) ; (L) ; / / App studio で設定 12L ) ; m—pVBGrid—>GetCIientRect (rect) ; / / デノヾイス座標 1C01W 土 dt 五 = m_pVBGrid—>GetNumProperty("CoIWidth" , 0 ) ; IRovHeight = m—pVBGrid—>GetNumProperty ( "RovHeight " ( 1440L * ( 10 れ g ) rect. right) / 1C01W 土 dt ()L * (long) dc. GetDeviceCaps (LOGPIXELSX) ) ( 1440L * ( 10 れ g ) rect. bottom) / IRovHeight ( 12L * (long) dc. GetDeviceCaps (LOGPIXELSY) ) 20L ; 20L ; m—pVBGrid->SetNumProperty("Rov" , 0 土 0 て ( 土 0 ー土く 8 ; 土 + + ) { m—pVBGrid—>SetNumProperty( " C01W 土 dt ” ( 土 ) { / / 列見出し m—pVBGrid—>SetNumProperty("C01" 1C01W 土 dt 五 , 土 ) ;

3. Inside Visual C++

PART 2 クラスライプラリピュークラス 上で役に立つものだ。高速化のヒントが付録でなく ケーションをビルドするための時間を最初から節約することを可能にするためである。 ここに記述されている手続きは付加的なものだが、 に示してあるのは、 読者がサンプルアプリ これらの組み合わせによる効果で、ビルド時 とを前提にしている。 間は半分以下になる。これらの手続きの多くは、コンピュータに十分なメモリが実装されているこ AUTOEXEC. BAT ファイル中で設定する。 ルを RAM ドライプ中に格納するように、これらの環境変数を指定する。これらの環境変数は ンパイラとリンカ ( およびこれらの環境変数を認識するほかのプログラム ) がテンボラリファイ 3. 環境変数 TM P と TEM P を D: \ に設定する。 RAM ドライプのインストールが成功したら、コ プをインストールしたら、すべてのアプリケーションを終了し、コンピュータをリプートする。 ハードディスクドライプが C のみの場合、 RAM ドライプはドライプ D となる。 RAM ドライ Guide to Managing Memory with MS-DOS 6 」を参照 ) 。 しい情報については、 1993 年、 Dan Gookin による Microsoft Press の「 The Micorsoft には、上記の行の化ん愈んを虎沁に変更する (MS-DOS のメモリ管理機能のより詳 にも注意。アッパメモリプロックを作成するメモリ管理ソフトウェアを使っていない場合 する MS-DOS 、ないしサードバーティ製のメモリマネージャの使用を仮定していること ている。より新しいバージョンを使うべきである。この例はアッパメモリプロックを作成 注意 RAMDRIVE. SYS デバイスドライバは、 MS-DOS と Windows の両方に添付され devicehigh=c : \windowsyramdrive. sys 4096 512 1024 /e プを設定する。 CONFIG. SYS ファイル中の以下の行は 4MB の RAM ドライプを設定する。 RAM ドライプを設定する。コンピュータが 12MB 以上のメモリを使えるのなら、 RAM ドライ アルを参照 ) 。 のダブルバッファリングオプションを使うこと ( 詳しい情報は MS ー DOS か Windows のマニュ ンの方を使えばよい。ハードディスクがダブルバッファリングを必要とするときは、 SMARTDRV る。 SMARTDRV は MS-DOS 、 Windows の両方に添付されているので、より新しいバージョ SMARTDRV は一般的にすべての Windows べースのプログラムのパフォーマンスを改善させ シュサイズはコンピュータのメモリ量を基準にしている ) 。 ティリティを起動する。デフォルトのキャッシュサイズで通常は十分である ( デフォルトのキャッ る。コンピュータがプートしたときに AUTOEXEC. BAT ファイル中の SMARTDRV 行がユー るいは Windows のセットアップでインストールされるディスクキャッシュユーティリティであ SMARTDRV がインストールされていることを確認する。 SMARTDRV は通常 MS-DOS 、あ 2. 1. ( 注 : RAM ドライプがドライプ D でないときはドライプの文字を変更する ) temp=D : \ tmp=D : \ set set

4. Inside Visual C++

5 章 0 フォントの表示 グラフィックスデバイスインターフェイス (GDI) 表示が印刷出力に一致するということに関して配慮しなくてよい場合、多くの適応性を持っこと になる。任意のスケール指定が可能な Windows TrueType フォントを選択できるし、固定サイズ のシステムフォント ( ストックオプジェクト ) を選択することもできる。 TrueType フォントの場合、 使用しているマッピングモードはたいして問題ではない。単にフォントの高さを選択し、作業すれ ばよい。ポイントに関して心配する必要はない。 印刷出力を画面に一致させるために、プリンタフォントのサイズを設定することにはいくらか問 題があるが、 TrueType は以前よりも作業を簡単にしている。しかしたとえ TrueType フォントを 使用している場合であっても、決して表示をプリンタ出力に完全に一致させることはできない。な ぜか ? 文字は最終的にはピクセルで表示され、カーニングにより調整されることもあるが、文字列 の幅は含まれる文字のピクセル幅の総和に等しい。文字のピクセル幅はフォント、マッピングモー ド、出力デバイスの解像度に依存する。プリンタとディスプレイが MM- TEXT モード ( 1 ピクセ ル、あるいはドット = 1 論理単位 ) である場合のみ、正確な一致をみることができる。改行の計算に CDC の G E. e 厩関数を使用する場合、まれに画面の改行位置がプリンタの改行位置と異なる ことがある。 ( 注 : 第 18 章で詳しく議論するクラスライプラリの [ 印刷プレビュー ] モードでは、改行はプリン タで行なわれるのと同じく正確に行なわれるが、その処理により表示品質は低下する ) プリンタ固有のフォントを画面に反映させる場合も、 TrueType は作業を楽にする。 Windows はもっとも近い TrueType フォントに置き換える。 8.5 ポイントの LinePrinter フォントの場合、 TvVindows はそれにかなり似ている Courier New フォントを提供する。 0 ウインドウ中のポイントーー論理 twips 印刷に twips 単位 ( 1 / 20 ポイント、 1 / 1440 インチ ) を使う場合、ウインドウのデバイスコンテキ ストのマッピングモードを MM_ TWIPS に設定することを、明確に指定しなければならない。しか しながら、このようにするのは好ましくない。なぜなら、用紙上でははっきり見える 10 ポイントの 文字は、同じ大きさで VGA 画面上に表示させた場合、読むには小さすぎる。代わりに、 CharIes PetzoId が (Programming Windows 3.1 内で ) 「論理 twips 」と呼んでいるマッピングモード使え ば、よりうまく動作する。 以下の文はマッピングモードを論理 twips に設定する。 pDC—>SetMapMode (MM—ANISOTROPIC) ; pDC—>SetWindowExt ( 1440 , 1440 ) ; pDC—>SetViewportExt (pDC—>GetDeviceCaps (LOGPIXELSX) , —pDC—>GetDeviceCaps (LOGPIXELSY) ) ; このマッピングモードの背景にある理屈に関してあまり考えなくていい。 ディスプレイ上で論理 109

5. Inside Visual C++

24 章 Microsoft ODBC によるデータベース管理 コントローノレ ボタン ボタン 工ディット ID_QUERY_EXECUTE ID_QUERY_TABLES IDC-SQL ダイアログのリソース ID は / DD ー Q し召で、以下のスタイルが設定されている。 [ スタイル ] = チャイルド [ 境界 ] = なし [ 可視 ] = チェックなし [ ファイル ] メニューにはふたつの項目が追加される。 メニュー項目 CODBC 接続] CODBC 接続解除 ] コマンド ID_FILE_CONNECT ID_FILE_DISCONNECT EX24A プログラムの実行 モリモデル ( 問い合わせの結果を格納するために必要 ) と ODBC を導入するライプラリを指定して サプディレクトリに置かれている。 EX24A の MAK ファイル ( プロジェクトの設定 ) にはラージメ STOCK. DBF が収められている。これらのファイルは例のソースコードと共に YVCPPYEX24A 本書の付属ディスクにはふたつの関連するサンプルのデータベースファイル SHARE. DBF と ことはできない。 ODBC Ver. 2.0 以降でサポートされる予定である。 ) ( 訳注 : ODBC SDK 日本語版からは SIMBA. DLL が削除されているので、この例を動作させる は YWINDOWSYSYSTEM サプディレクトリに置かれる。 られる場所にインストールされていることを確認する。 DLL ファイル ODBC. DLL と SIMBA. DLL ンカに見つけられる場所に、インクルードファイル SQL. H と SQLEXT. H がコンパイラに見つけ ODBC デモが正しく動作することを確認する。また ODBC を導入するライプラリ ODBC. LIB がリ 含む ODBC ソフトウェア開発キットを正しくインストールしなければならない。 Visual Basic の このプログラムをコンパイル、実行するためには、 dBASE/XBase ドライバ、 SIMBA. DLL を を入力する。 2. [ ファイル ] メニューから [ ODBC 接続 ] を選択し、次に以下に示すふたつのダイアログにデータ 1. プログラムを起動する。 ODBC. DLL ファイルが使用可能でなければすぐにわかるはすだ。 EX24A. EXE をビルドした後、以下のステップに従う。 509

6. Inside Visual C++

PART 2 クラスライプラリピュークラス ビットマップボタンをクリックするとメッセージが現われる。ビットマップボタンは、 App Studio 中で指定した矩形より小さい ( 前記のステップ 4 に示されたダイアログを参照 ) 。アプリケーショ ンフレームワークがビットマップのビットをダイアログ中のピクセルにマップするため、これら は縮小される。 0 さらに進んだビットマップボタン ビットマップボタンは、すでに見てきた「アップ」、「ダウン」状態に加えて、「フォーカスされた」、 そして「ディスエープルされた」状態を想定することができる。ボタンが F で終わるビットマップリ ソース名を持っ場合、そのビットマップはボタンが入力フォーカスを持っている場合に現われるよう になる。リソース名が X で終わる場合は、ビットマップはボタンが ( C ルの E 〃〃わル肥関 数の呼び出しなどを介して ) ディスエープルされている場合に現われる。 C 召″襯ゆお″クラスの より詳しい解説はクラスライプラリリファレンスを参照。 タイマの使用と制御の拠出 マイクロプロセッサの速度に依存しない一定の間隔でプログラムにメッセージを送るように Windows タイマをプログラムすることができる。タイマはアニメーションの速度の制御、アラー ムの起動、擬似マルチタスクの実装、あるいは以下の例で示すような、長い計算処理中の視覚的な 状態表示などに使用することができる。 0 タイマ タイマの使用は簡単である。単にインターバルバラメータとともに C ルの S 行襯げ関数を 呼び出し、そして ClassWizard の助けを借りて WM_TIMER メッセージ用のメッセージハンド ラ関数を用意すればよい。タイマのインターバルを 200 ミリ秒に設定したとすると、 C ルの K 石襯げ関数の呼び出し、あるいはタイマのウインドウが削除されるまで、そのインターバルを ごとに WM_TIMER メッセージが生成される。 タイマをベースにした単純なアニメーションプログラムはありふれたものである。ビューの 0 〃 C 尾 4 関数がタイマを起動し、そしてタイマメッセージハンドラが位置変数を更新し、領域を無効 化する。 0 D 耀関数は位置変数に従って、イメージを描画する。本章の後半の EXIIB サンプル プログラムは、長い計算処理にタイマを使って割り込みをかけるという点で、多少は興味深いもの だ。タイマで実験している間に、読者は Windows メッセージ処理に関してさらに学び、独自のマ ルチタスクアプリケーションを作成するための多少の洞察を得るだろう。 206

7. Inside Visual C++

ドキュメントーピューアーキテクチャ PART 3 使用するアのタ : 通常使うプリンタ ( [ 時 ON MJ ー 5 囲ー 印第囲の選択 0 ページ指定 0 選した部舅 OK 沌ル 刈 ) タの設定 ( .. へ叮ジまで ( 歩 Figure18-I 標準のく印刷 > ダイアログ ューザーが [ プリンタの設定 ] ボタンをクリックすると、 Figure18 ー 2 に示す標準の < プリンタの 設定 > ダイアログが現われる。 プリンタの選択 ◎南伊うラりツ引朝 ( 現在「 20N M 、 . ト 50U I に ) 0 その他のブリンタ : EPSON MJ-500 ー LPTI: OK 社 ) セル 印わ向き 0 横 ( リ 用紙の選択 オ - トラート方一夕、、 Figure18-2 標準のくプリンタの設定 > ダイアログ 364 Figure18-3 印刷の標準のステータスダイアログ 研 1 : へ出力中 を給 ON MJ 一 50U を 印届仲 絎マ ! 第、ノ当ン : な 1 : 明 示する。 印刷処理中は、アプリケー ションは Figure18 ー 3 に示すような標準のステータスダイアログを表

8. Inside Visual C++

18 章印刷と印刷プレピュー 0 対話的な印刷ページの選択 もし読者がデータ処理の世界で仕事をしていたのなら、バッチモード印刷を使っていただろう。 プログラムはますレコードを読み、次に選択された情報をレポート中の行にフォーマットし、印刷 する。たとえば 50 行印刷するごとにプログラムは用紙を排出し、新しいページの見出しを印刷す る。プログラマは全レポートが一度に印刷されると仮定し、印刷ページの対話的な選択は考慮して いない。 Figure18 ー 1 で示したように、 Windows べースの印刷ではページ番号は重要である。ューザーの ページ選択に応答して、プログラムはどの部分の情報を印刷するのかを計算し、そして選択された ページを印刷する。読者がこのページ選択要求を意識すれば、それに従ったアプリケーションのデー タ構造を設計することができる。 第 16 章の生徒のリストを覚えているだろうか ? 生徒が 1000 名いて、ユーザーが 5 ページ目の 生徒のレポートを要求した場合はどうするか ? 生徒の各レコードが 1 印刷行を必要とし、 1 ページ に 50 行印刷すると仮定すると、 5 ページ目はレコード 201 からレコード 250 までを収めていること になる。 CO な℃ ss クラスでは、印刷を開始する前に、最初の 200 のリスト要素を繰り返し飛ば していかなければならない。リストはこの場合、理想的なデータ構造ではないようだ。代わりに配 列はどうだろう ? CO わクラスでは、 201 番目のレコードに直接アクセスすることができる。 すべてのアプリケーションで、要素を一定の印刷行数にマップできるわけではない。生徒のレコー ドが複数行のテキストからなる履歴フィールドを収めている場合を考えてみよう。各レコードが持 っ履歴の行数はわからないので、改ページを決定するためにファイル全体を検索しなければならな い。改ページ位置を計算した時に、プログラムがその位置を記憶しておくようにすれば、効率は向 上する。 0 表示ページ対印刷ページ 多くの場合、印刷ページは表示ページに一致していることが望まれる。第 5 章で学んだように オプジェクトを、その表示とまったく同しに印刷することは保証できない。しかし TrueType フォ ントを使い、そして多少のマージンの余裕があれば、十分近似することができる。読者が用紙全体を 使って作業し、そして対応する表示を読み取れるようにするならば、恐らく画面より大きな表示ウィ ンドウが欲しくなるだろう。つまり、 CS げ 0 〃防麒 ) クラスが印刷を意識したビューに最適である。 しかしたまに、表示ページには注意を払わない場合がある。データがリストボックスに収められ ているとか、あるいはデータを表示する必要がまったくないといった場合だ。このような場合プロ グラムは、ドキュメントから単純にデータを抜き出してプリンタに送るという独立したロジックを 持つだろう。もちろん、プログラムはユーザーのページ範囲指定に正しく応答しなければならない。 プリンタに用紙サイズとランドスーケープ / ポートレイトの設定を問い合わせれば、ページ区切り を正しく調整することができる。 365

9. Inside Visual C++

PART 4 上級的なトピックス OLE アイテムのシリアライズ アイテムのデータをクライアントアプリケーションとの間で転送する必要のあるとき、アプリケー ションフレームワークは CO / バげ怩以襯の & 厖〃〃託関数を呼び出すことになる。 & 厖記た e を派 生 CO / バげ怩以襯クラス用にオーバーライドする必要があるが、 ノヾーの場・合、サーノヾー ードキュメントクラス用の & 厖〃 / た関数を書く必要はない。 クラス、サー OLE システムはすべての通信の世話をする。読者は通常のアプリケーション用と同様に、単純に アイテムの S げ〃託関数を書く。アプリケーションがフルサーバーの場合、同し立厖 4 〃託関数が ドキュメントのディスクへのセープ、ロードにも使用される。 クライアントの Verb の起動の処理 クライアントアプリケーションが OLE アイテムのために Do 佐を呼び出したとき、アプリケー ションフレームワークは CO ん S げ怩以襯の 0 〃 Do 佐関数を呼び出す。べースクラスの Do 佐 関数は、 CO S げ怩召襯の別の仮想関数 0 〃 S 加も呼び出すが、読者はサーバーのメインウイン ドウをアクテイプにするようにこの関数をオーバーライドする。 Verb がひとつのサーバーでは、 0 S ん 0 肥のオーバーライドで十分である。 Verb が複数あるサー バーでは、べースクラスの 0 Do 佐関数は仮想関数 0 E 耀佐を呼び出す。 0 〃 S 加も常に 呼び出される。サーバーのすべての Verb に関して 0 S 加が呼び出されることを望まないなら、 0 Do 佐もオーバーライドしなければならない。 クライアントのウインドウ内での描画 ーは実際にはクライアントのウインドウ中に描画しない。サーバーはクライアントプログ ラムに送るメタファイルを作る。サーバーがメタファイルで何が描画されるかを決定する ( はとんど ーは少なくともアイコンかビットマップを描画する ) 。そして CO / るげ怩以襯の 0 D のサーノヾ 関数がオーバーライドされる。この仮想関数はクライアントアイテムの D 肥関数の呼び出しへの 応答として呼び出される。 0 D 中の GDI オペレーションは、パラメータとして ( ポインタで ) 渡されたメタファイルデ バイスコンテキストを使用する。まず 0 〃 D は CDC の S ル切 E. 関数でウインドウサイ ズを設定しなければならない。 0 D 肥がメタファイルデバイスコンテキストのマッピングモード を設定しなかった場合、このウインドウのサイズはクライアントアイテムのの耀関数で指定され ている矩形にマップされる。ューサーがクライアント矩形のサイズを変更した場合、それに従って アイテムは再スケールされる。サーバーのビュークラスがマッピングモードを MM ー LOENGLISH のような固定モードに設定した場合、クライアントはアイテムを再スケールすることはできない。 気が付いただろうが、 CO S げ怩以襯の 0 〃関数はサーバーのウインドウ内では何もしな ーバーのウインドウ内で描画するには、 0 〃〃耀肥関数を持つビュークラスか、ないしはサー バーのメインフレームウインドウ中での WM_PAINT メッセージのマッピングが必要になる。 542

10. Inside Visual C++

PART 2 クラスライプラリピュークラス UEX05A プログラムの要素 OnPrepareDC 関数中のマッピングモード設定 アプリケーションフレームワークは 0 D の呼び出しの前に 0 〃 P % ゆ DC を呼び出すので、 つまり 0 P ゆ 4 尾〃 C 関数がデバイスコンテキストを準備する場所になる。正しいマッピングモー ドを必要とするそのほかのメッセージハンドラがある場合、これらの関数は 0 〃 P % ゆ 4 〃 C の呼び 出しを収めることになる。 S わ 0 Ⅳ Fo プライベートメンバ関数 S 加肥厩は、ループ中で 10 回実行されるコードを収めている。 C ではこれをグローバル関数で 実現するだろうが、 C 十十ではこれをクラスのプライベートメンバ関数で行なうのが好ましい。 この関数はフォントを作成し、それをデバイスコンテキスト中に選択させて、ウインドウに文字 列を印刷し、フォントの選択の解除、削除を行なう。プログラム中にデバッグ情報を含ませること を選択した場合、 S 加厩はまた、文字列の実際の幅を含む、役に立つフォントメトリック情報 を表示する。 CFont: ℃ reateFont の呼び出し この呼び出しはたくさんのパラメータを伴っているが、重要なものは最初のふたっ、フォントの 高さと幅である。幅の値 0 は、選択されるフォントのアスペクト比がフォントデザイナにより指定 された値に設定されることを意味する。 ーこに非 0 の値を置いた場合、次の例で見るように、フォ ントのアスペクト比を変更することができる。 情報フォントを指定したポイントサイズにしたい場合、 C 尾 4 厩のフォントの高さの パラメータ ( 最初のパラメータ ) は負でなければならない。たとえば財ー TWIPS マッピン グモードを使っている場合、高さのパラメーター 240 は、一襯〃 e を 240 となり、 12 ポイントのフォントを保証する。高さのパラメータ十 240 は、〃 e を 240 となり、より小さいフォントを与える。 C 4 乙の最後のパラメータにはフォント名を指定する。この場合は AriaI TrueType フォ ントである。このパラメータに U んんを指定した場合、 FF_SWISS 指定 ( セリフなしのプロポー ショナルフォントを示す ) は、 Windows に、指定されたサイズを基準にした「もっとも近い」のフォ ントを選択させる。恐らく System フォントか、 Arial TrueType フォントとなる。優先するのは フォント名である。 F. 色 OM. 鳳ル ( セリフ付きのプロポーショナルフォントを示す ) を Arial と共に 指定した場合、 AriaI を取得することになる。 114