トップページ⇒tech
140コメント121KB

私の猫はWindows APIを学ぼうとしない。

■ このスレッドは過去ログ倉庫に格納されています
0001 ◆PeTZoo0ATs 2005/09/28(水) 13:15:20
私はすべての疑問に答えるつもりだが、約束はできない。
通常、私は非常に忙しく、
私の猫は Windows API を学ぼうとしない。

Although I'll also try to answer any easy questions you may have,
I can't make any promises.
I'm usually pretty busy, and my cat refuses to learn the Windows API.

Charles Petzold
October 5, 1998
0002デフォルトの名無しさん2005/09/28(水) 13:16:59
>>1にぴったりなスレ
http://qb5.2ch.net/test/read.cgi/saku/1098189517/
0003 ◆PeTZoo0ATs 2005/09/28(水) 13:17:22
しまった
10月5日に立てればよかった
0004デフォルトの名無しさん2005/09/28(水) 14:41:44
第1章はじめに
1.3 最初のWindowsプログラム
Chap01\HelloMsg
HelloMsg.c -- Displays "Hello, Windows 98!" in a message box
【サンプルプログラム】
WinMain()からメッセージボックスを表示する。
【課題1】
WinMain()ではなくmain()からメッセージボックスを表示しなさい。
【課題2】
メッセージボックスに表示するアイコンを変更しなさい。
【課題3】
メッセージボックスに表示するボタンを変更しなさい。
【課題4】
メッセージボックスのどのボタンが押されたか確認しなさい。
【課題5】
第3章で作成するプログラムからメッセージボックスを表示しなさい。
オーナーウインドウを指定した場合、指定しない場合の違いを確認しなさい。
0005 ◆PeTZoo0ATs 2005/09/28(水) 16:58:16
Windowsプログラミングの学習スレがなかったから作ってみた。
各自目標を立てて勝手に勉強してください。

まず自分から
今ペゾルド本で勉強中(約2周目)
今回はサンプルプログラムの仕様書の作成
これは後で本を見ずに自分が書いた仕様書を元に
プログラムを作るため
目標は(上)を1ヶ月ぐらいで完了
0006 ◆PeTZoo0ATs 2005/09/28(水) 17:29:41
サンプル数えてみたら(上)だけで50個以上あった。
1日2個ぐらいやらないと1ヶ月で予定終わんない
0007 ◆PeTZoo0ATs 2005/09/28(水) 22:17:03
第2章
2.3.5 整形機能付きメッセージボックス
Chap02\ScrnSize
SCRNSIZE.C -- Displays screen size in a message box
【サンプルプログラム】
可変個の引数を取り、printfのように書式で整形したメッセージを
メッセージボックスに表示する関数を作る。
この関数を利用して、
ディスプレイの幅と高さをメッセージボックスへ表示する。
【関数の仕様】
int CDECL MessageBoxPrintf (TCHAR * szCaption, TCHAR * szFormat, ...)
【ヒント】
可変個の引数を使う va_list, va_start, va_end
va_listを使うsprintf系の関数 _vsntprintf
システムメトリック値の取得 GetSystemMetrics
0008デフォルトの名無しさん2005/09/28(水) 23:57:59
そう言えば猫でもわかるWindowsAPIとかって本があったなあ。
0009デフォルトの名無しさん2005/09/29(木) 10:20:24
Charles Petzold cat refuses to learn でぐぐったらこんなものが見つかった

[PDF] Programming Windows 5th Edition
ファイルタイプ: PDF/Adobe Acrobat

付録CDのおまけの原書電子ブックと内容は同じだと思う。
英語だけど本やCD持ってない人はドゾー
0010デフォルトの名無しさん2005/09/29(木) 10:28:20
Programming Windows 5th Edition pdf でぐぐった1番先頭だ

Programming Windows 5th Edition pdf の検索結果 約 230,000 件中 1 - 10 件目 (0.35 秒)

[PDF] Programming Windows 5th Edition
ファイルタイプ: PDF/Adobe Acrobat
Anniversary Edition" of Programming Windows is the best edition yet. Many other
people at. Microsoft (including some of the early developers of Microsoft Windows)
also helped out when I was. writing the earlier editions, and these fine ...
0011 ◆PeTZoo0ATs 2005/09/29(木) 17:02:56
>9-10
ペゾルド氏の公式サイトで古い版のサンプルプログラムが公開されてるんですが
なかなか面白いですよ
http://charlespetzold.com/books.html

Programming Windows, 1st edition 1988
CHAP02 WELCOME5.C
親ウインドウ1つとポップアップウインドウを2つを開きます。
ポップアップウインドウ1には親ウインドウのハンドルを渡す。
ポップアップウインドウ2の親ウインドウのハンドルはNULLにします。

ポップアップウインドウを閉じた場合は
WM_DESTROYを処理してしないのでプログラムは終了しないはず。
親ウインドウを閉じた場合は
WM_DESTROYでPostQuitMessageしているのでプログラムは終了するはず。

でも親ウインドウを閉じる前に他のウインドウを破棄しないといけないですよね。
親ウインドウのハンドルを渡してる方はウインドウが破棄されると思うのですが、
親ウインドウのハンドルを渡してない方はどうなるんですかね?
結果はあとで試してみます。
0012 ◆PeTZoo0ATs 2005/09/29(木) 17:07:02
今ペゾルド本の第3章やってます。
ここは1番面白い部分なのでちょっと時間がかかりそうです。
0013デフォルトの名無しさん2005/09/29(木) 17:21:40
今ペゾルド本の第3章やってます。
ここは1番面白いと思いこませなければとてもやってられない部分なので、ちょっと時間がかかりそうです。
0014 ◆PeTZoo0ATs 2005/10/03(月) 21:08:56
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第3章 Windowsとメッセージ
3.1.2 HELLOWINプログラム
【サンプル名】
Chap03\HelloWin
HELLOWIN.C -- Displays "Hello, Windows 98!" in client area
【仕様】
通常のアプリケーションウインドウを表示する。
起動時にWaveファイルを再生する。
ウインドウの中央に"Hello, Windows 98!"と表示する。
ウインドウサイズが変更されても同様に中央に表示する。
【備考】
WINMM.LIBを使用

【書名】
Programming Windows, 1st edition / Charles Petzold, 1988
【サンプル名】
CHAP02
NOTHING.C -- Do-Nothing Program for Windows
【仕様】
何もしないWindowsプログラム(WinMainのみ)
【備考】
古いプログラムなので関数の型を修正する必要がある。(以下同様)

【書名】
Programming Windows, 1st edition / Charles Petzold, 1988
【サンプル名】
CHAP02
WELCOME1.C -- Welcome to Windows Program No. 1
【仕様】
ウインドウを一瞬表示してすぐ終わる(メインループがない)
0015 ◆PeTZoo0ATs 2005/10/03(月) 21:10:44
【書名】
Programming Windows, 1st edition / Charles Petzold, 1988
【サンプル名】
CHAP02
WELCOME2.C -- Welcome to Windows Program No. 2
【仕様】
ウインドウを表示
ウインドウのサイズ変更可能、最小化最大化可能
閉じるボタンで終了

【書名】
Programming Windows, 1st edition / Charles Petzold, 1988
【サンプル名】
CHAP02
WELCOME3.C -- Welcome to Windows Program No. 3
【仕様】
画面中央にウインドウを表示
ウインドウのサイズは画面の縦横のサイズのそれぞれ1/2
ウインドウサイズ変更不可、最小化最大化可能
閉じるボタンで終了
0016 ◆PeTZoo0ATs 2005/10/03(月) 21:13:10
【書名】
Programming Windows, 1st edition / Charles Petzold, 1988
【サンプル名】
CHAP02
WELCOME4.C -- Welcome to Windows Program No. 4
【仕様】
ウインドウを10個表示する(すべて同じウインドウクラスで親子関係なし)
タイトルにインスタンスハンドルとウインドウハンドルを表示
ウインドウのサイズ変更可能、最小化最大化可能
閉じるボタンで終了
【備考】
自分以外のウインドウを破棄しないでいきなり終了している

【書名】
Programming Windows, 1st edition / Charles Petzold, 1988
【サンプル名】
CHAP02
WELCOME5.C -- Welcome to Windows Program No. 5
【仕様】
親ウインドウ1つとポップアップウインドウを2つを開く
ポップアップウインドウ1には親ウインドウのハンドルを渡す
ポップアップウインドウ2の親ウインドウのハンドルはNULL
【備考】
親ウインドウを閉じる時に
親を持たないポップアップウインドウが開いていると破棄されない。
0017 ◆PeTZoo0ATs 2005/10/03(月) 21:14:22
【書名】
Programming Windows, 1st edition / Charles Petzold, 1988
【サンプル名】
CHAP02
PARTY.C -- Overlapped, Popup, and Child Windows
【仕様】
親ウインドウ1つとポップアップウインドウ2つと子ウインドウ2つを開く
ポップアップウインドウ1(親を持つ)にエディットコントロールを置く
ポップアップウインドウ2(親を持たない)にボタンを置く

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第4章 テキストの出力
4.2.10 サンプルプログラム:システムメトリックスの表示
【サンプル名】
Chap04\SysMets1
SYSMETS1.C -- System Metrics Display Program No. 1
【仕様】
文字列を複数行、複数列で表示する。
文字の幅と高さから適切に右寄せ左寄せ改行をする。
【備考】
GetSystemMetricsでシステムメトリック値を取得
GetTextMetricsでフォントの情報を取得(文字の幅や高さがわかる)
0018 ◆PeTZoo0ATs 2005/10/03(月) 21:15:45
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第4章 テキストの出力
4.3.3 スクロールするSYSMETS
【サンプル名】
Chap04\SysMets2
SYSMETS2.C -- System Metrics Display Program No. 2
【仕様】
前のプログラムに縦スクロールを追加
【備考】
古い16ビットの頃のAPI使用
余分にスクロールしてしまう。

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第4章 テキストの出力
4.4.3 新しいSYSMETS
【サンプル名】
Chap04\SysMets3
SYSMETS3.C -- System Metrics Display Program No. 3
【仕様】
前のプログラムの改良版
縦横スクロール可能
【備考】
新しいWin32API使用
0019 ◆PeTZoo0ATs 2005/10/03(月) 21:36:15
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第5章 描画の基礎
5.2.3 DEVCAPS1プログラム
【サンプル名】
Chap05\DevCaps1
DEVCAPS1.C -- Device Capabilities Display Program No. 1
【仕様】
前章のSysMets1と同様のプログラム
【備考】
GetDeviceCapsでデバイスコンテキスト情報を取得

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第5章 描画の基礎
5.3.2 直線
【サンプル名】
Chap05\SineWave
SINEWAVE.C -- Sine Wave Using Polyline
【仕様】
ウインドウの大きさに合わせて直線と正弦曲線(Sine Wave)を描く
【備考】
MoveToEx LineTo Polyline 使用
0020デフォルトの名無しさん2005/10/08(土) 00:12:30
>>1
俺のかわいい子猫ちゃん、なんでも教えてあげるよ
0021デフォルトの名無しさん2005/10/08(土) 04:49:12
天才ゲームプログラマ養成ギプス
またの名を「猫にはわからないプログラミング」 略して、
「猫には」とお呼びください(笑)
ttp://www.sun-inet.or.jp/~yaneurao/intensive/ggg/
0022 ◆PeTZoo0ATs 2005/10/09(日) 14:05:11
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第5章 描画の基礎 5.3 点と線の描画
5.3.3 バウンディングボックスファンクション
【サンプル名】
Chap05\LineDemo
LINEDEMO.C -- Line-Drawing Demonstration Program
【仕様】
ウインドウの大きさに合わせて矩形、楕円、角の丸い矩形、直線を描画
【備考】
Rectangle MoveToEx LineTo Ellipse RoundRect

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第5章 描画の基礎 5.3 点と線の描画
5.3.4 Bezierスプライン
【サンプル名】
Chap05\Bezier
BEZIER.C -- Bezier Splines Demo
【仕様】
Bezierスプラインを描画する。
2つの終端点は固定、2つの制御点はマウスの左右ボタンで可変。
ウインドウに合わせた初期値で再描画する。
【備考】
PolyBezier MoveToEx LineTo
0023 ◆PeTZoo0ATs 2005/10/09(日) 14:06:19
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第5章 描画の基礎 5.4 閉じた領域の描画
5.4.1 Polygonファンクションと多角形モード
【サンプル名】
Chap05\AltWind
ALTWIND.C -- Alternate and Winding Fill Modes
【仕様】
閉じた領域をAlternateとWindingで塗りつぶして違いを比較する
【備考】
SetPolyFillMode Polygon

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第5章 描画の基礎 5.5 マッピングモード
5.5.7 WHATSIZEプログラム
【サンプル名】
Chap05\WhatSize
WHATSIZE.C -- What Size is the Window?
【仕様】
6種類のマッピングモードでクライアント領域の大きさを論理座標系で表示する。
【備考】
SetMapMode SetWindowExtEx SetViewportExtEx
0024 ◆PeTZoo0ATs 2005/10/09(日) 14:07:45
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第5章 描画の基礎 5.6 矩形、リージョン、クリッピング
5.6.2 ランダムな矩形
【サンプル名】
Chap05\RandRect
RANDRECT.C -- Displays Random Rectangles
【仕様】
ランダムな位置、大きさ、色で矩形を描画し続ける。
【備考】
PeekMessage SetRect FillRect

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第5章 描画の基礎 5.6 矩形、リージョン、クリッピング
5.6.5 CLOVERプログラム
【サンプル名】
Chap05\Clover
CLOVER.C -- Clover Drawing Program Using Regions
【仕様】
4つの楕円から作ったクリッピングリージョンで描画する。
【備考】
CreateEllipticRgn CreateRectRgn CombineRgn
SetViewportOrgEx SelectClipRgn
0025デフォルトの名無しさん2005/10/11(火) 05:18:11
要するに日記スレ?
0026デフォルトの名無しさん2005/10/12(水) 12:17:33
スレ立てて2週間過ぎました。
予定より遅れてます。
今「6章キーボード」のテスト中です。
ドイツ語、ギリシャ語、ロシア語のキーボードの設定を使うので
いつもと違うテスト用のPCで実験中です。
普段使ってるPCの環境はいじりたくないです。

この辺の機能はたぶん使う予定がないので飛ばしてもいいのですが、
せっかくスレまで立てたのでやってみることにしました。
0027デフォルトの名無しさん2005/10/12(水) 12:18:17
P279 6.4.2各国キーボードの問題
まずドイツ語のキーボードをインストールします。
本は英語版のWindowsを基準に書いてあるのでわかりにくいです。
「ドイツ語 キーボード」 などで検索して参考にした方がいいでしょう。

「ドイツ語」のためのコンピュータ設定
http://www.tufs.ac.jp/ts/personal/yamaguci/seminars/comp_literacy/dt_keyboard.html

キーボードの設定はWindowごとなので、すぐデフォルトの日本語に戻ってしまいます。
タスクバーで状態を確認/切り替えするといいです。
0028デフォルトの名無しさん2005/10/12(水) 12:19:59
P273 6.3.4 デッドキャラクタメッセージ
今使ってる日本語キーボードのデッドキーは
「0」の2つ右(BackSpaceの2つ左)の「~^へ」のキーでした。

アクサンテギュ áíúéó
デッドキー押す。離してから「aiueo」のどれか押すの2ストローク。

アクサングラーヴ àìùèò
Shift+デッドキー、離してから「aiueo」のどれか押すの2ストローク。

※参考
標準JISキーボードでのドイツ語配列
http://www-cc.gakushuin.ac.jp/~xomura/winforgerm/keyboard.html
0029デフォルトの名無しさん2005/10/12(水) 12:41:10
P279 6.4.2各国キーボードの問題
次はギリシャ語とロシア語です。
ドイツ語と違ってキーボードの一覧に見当たりませんでした。
この場合、多言語サポートをインストールすればいいそうです。
ロシア語は「キリル言語」だそうです。
※参考
ロシア語を打つための設定方法
http://rosianotomo.com/rusinstall/rusinstall.htm

この辺の設定はインストールCDと再起動が必用でした。
再起動したらキーボードの一覧にギリシャ語とロシア語がありました。
あとはドイツ語と同じです。

これで日本語、ドイツ語、ギリシャ語、ロシア語が
タスクトレイのアイコンをクリックすると簡単に切り替えできます。

αβψδεφγηιξκλμνοπ;ρστθωςχυζ
ΑΒΨΔΕΦΓΗΙΞΚΛΜΝΟΠ;ΡΣΤΘΩςΧΥΖ

фисвуапршолдьтщзйкыегмцчня
ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ
0030デフォルトの名無しさん2005/10/12(水) 18:59:25
P274 6.4.1 KEYVIEW1プログラム
Windowsがウインドウプロシージャに送る8種類のキーボードメッセージ

以下のキー操作で8種類のキーボードメッセージ発生を確認した。
1 WM_KEYDOWN
2 WM_KEYUP
 ALT以外のキーストロークで発生した。
3 WM_CHAR
 英数字 Tab Space BackSpace Enter などのキーで
 WM_KEYDOWN WM_KEYUP の間で発生した。
4 WM_DEADCHAR
 デッドキーでWM_KEYDOWN WM_KEYUP の間で発生した。
5 WM_SYSKEYDOWN
6 WM_SYSKEYUP
 Altキーで発生した。
7 WM_SYSCHAR
 Alt+英数字などでWM_SYSKEYDOWN WM_SYSKEYUP の間で発生した。
8 WM_SYSDEADCHAR
 Alt+デッドキーでWM_SYSKEYDOWN WM_SYSKEYUP の間で発生した。
0031デフォルトの名無しさん2005/10/12(水) 19:00:26
P280
Releaseバージョン(非Unicode)
文字化けする
※アメリカバージョンのWindowsでは間違った文字が表示されるらしい。

P292 Unicodeではどうなるか
Debugバージョン(Unicode)
ちゃんと正しく表示される。IMEで日本語入力もできる。
※アメリカバージョンのWindowsでは黒いブロックが表示されるらしい。
0032デフォルトの名無しさん2005/10/12(水) 19:32:11
P284 StokFont
OEM_FIXED_FONT Terminal 128
ANSI_FIXED_FONT Courier 0
ANSI_VAR_FONT MS Sans Serif 0
SYSTEM_FONT System 128
DEVICE_DEFAULT_FONT System 128
SYSTEM_FIXED_FONT FixedSys 128
DEFAULT_GUI_FONT MS UI Gothic 128
Releaseバージョン(非Unicode) CharSet=128でカタカナ表示。
Debugバージョン(Unicode) CharSet=128でもカタカナ出ない。

システムフォントはビットマップフォントだが
日本語のDEFAULT_GUI_FONTは例外?
0033デフォルトの名無しさん2005/10/12(水) 19:32:47
P297 KeyView2
固定ピッチのTrueTypeフォントでキャラクタセットを使用
Releaseバージョン(非Unicode)
日本語は化ける。ドイツ語、ギリシャ語、ロシア語は表示された。
Debugバージョン(Unicode)
日本語、ドイツ語、ギリシャ語、ロシア語が表示された。
でも日本語は2バイトなのでずれる。

P303 Typer
固定ピッチのTrueTypeフォントでキャラクタセットを使用
Releaseバージョン(非Unicode) Debugバージョン(Unicode)
ドイツ語、ギリシャ語、ロシア語で入力できた。
日本語は2バイトなのでずれたり化けたり。
0034デフォルトの名無しさん2005/10/12(水) 22:39:16
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第6章 キーボード 6.2 キーストロークメッセージ
6.2.6 SYSMETSの拡張:キーボードインターフェイスの付加
【サンプル名】
Chap06\SysMets4
SYSMETS4.C -- System Metrics Display Program No. 4
【仕様】
第4章のSYSMETS3にキーボードでスクロールを追加
【備考】
SendMessage

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第6章 キーボード 6.4 キーボードメッセージとキャラクタセット
6.4.1 KEYVIEW1プログラム
【サンプル名】
Chap06\KeyView1
KEYVIEW1.C -- Displays Keyboard and Character Messages
【仕様】
8種類のキーボードメッセージをすべて表示する。
【備考】
途中でディスプレイのサイズが変更された場合に対応
ヘッダだけ残してスクロールする。
mallocで確保したメモリの解放は?
0035デフォルトの名無しさん2005/10/12(水) 22:39:52
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第6章 キーボード 6.4 キーボードメッセージとキャラクタセット
6.4.3 キャラクタセットとフォント
【サンプル名】
Chap06\StokFont
STOKFONT.C -- Stock Font Objects
【仕様】
すべてのストックフォントを表示する。
【備考】
罫線で表形式で表示
スクロールで7種類のフォントの切り替えをする。

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第6章 キーボード 6.4 キーボードメッセージとキャラクタセット
6.4.5 TrueTypeとビッグフォント
【サンプル名】
Chap06\KeyView2
KEYVIEW2.C -- Displays Keyboard and Character Messages
【仕様】
KeyView1の改良版
【備考】
キーボードの言語切り替えに対応。
コードページに対応。
0036デフォルトの名無しさん2005/10/12(水) 22:40:55
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第6章 キーボード 6.5 キャレット
6.5.2 TYPERプログラム
【サンプル名】
Chap06\Typer
TYPER.C -- Typing Program
【仕様】
タイピングプログラム
【備考】
カーソルは自由に移動可能
タブも対応
mallocで確保したメモリの解放は?
0037デフォルトの名無しさん2005/10/17(月) 17:11:18
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第7章 マウス 7.2 クライアント領域のマウスメッセージ
7.2.1 マウス処理の簡単な例
【サンプル名】
Chap07\Connect
CONNECT.C -- Connect-the-Dots Mouse Demo Program
【仕様】
マウス左ボタンを押している間のマウスの軌跡を記録して、
その全部の点を直線で結ぶ(対角線も)
【備考】
SetPixel MoveToEx LineTo SetCursor ShowCursor
砂時計カーソル

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第7章 マウス 7.4 プログラムによるヒットテスト
7.4.2 プログラム例
【サンプル名】
Chap07\Checker1
CHECKER1.C -- Mouse Hit-Test Demo Program No. 1
【仕様】
クライアント領域を5x5の25個の矩形に分割する。
マウスでクリックした矩形にX印をつけ、
もういちどクリックしたらX印を消す。
(チェックボックスのような動作)
【備考】
Rectangle MoveToEx LineTo MessageBeep
0038デフォルトの名無しさん2005/10/17(月) 17:12:00
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第7章 マウス 7.4 プログラムによるヒットテスト
7.4.4 CHECKERへのキーボードインターフェイスの追加
【サンプル名】
Chap07\Checker2
CHECKER2.C -- Mouse Hit-Test Demo Program No. 2
【仕様】
CHECKER1にキーボードインターフェイスを追加
矢印キーでマウスカーソルを移動、
HOMEで左上隅 ENDで右下隅
スペース、ENTERでXを描画または消す。
【備考】
SendMessage ClientToScreen SetCursorPos

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第7章 マウス 7.4 プログラムによるヒットテスト
7.4.6 子ウインドウを使ったCHECKER
【サンプル名】
Chap07\Checker3
CHECKER3.C -- Mouse Hit-Test Demo Program No. 3
【仕様】
25個の子ウインドウを作ってマウスクリックを処理する。
【備考】
CreateWindow GetWindowLong SetWindowLong MoveWindow
GetClientRect
0039デフォルトの名無しさん2005/10/17(月) 17:12:44
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第7章 マウス 7.4 プログラムによるヒットテスト
7.4.7 子ウインドウとキーボード
【サンプル名】
Chap07\Checker4
CHECKER4.C -- Mouse Hit-Test Demo Program No. 4
【仕様】
CHECKER3へキーボードインターフェイスを追加
フォーカス枠を表示
【備考】
SetFocus SendMessage SelectObject DeleteObject
GetStockObject CreatePen

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第7章 マウス 7.5 マウスのキャプチャ
7.5.1 矩形のブロックアウト
【サンプル名】
Chap07\BlokOut1
BLOKOUT1.C -- Mouse Button Demo Program
【仕様】
左マウスボタンを押してドラッグすると
ドラッグ開始位置と現在のカーソル位置で矩形の枠を動的に描画する。
マウスボタンを離した所で矩形を塗りつぶす。
【備考】
SetROP2 SelectObject GetStockObject Rectangle SetCursor
0040デフォルトの名無しさん2005/10/17(月) 17:13:24
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第7章 マウス 7.5 マウスのキャプチャ
7.5.3 BLOKOUT2プログラム
【サンプル名】
Chap07\BlokOut2
BLOKOUT2.C -- Mouse Button & Capture Demo Program
【仕様】
BLOKOUT1にマウスキャプチャを追加
【備考】
SetCapture ReleaseCapture

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第7章 マウス 7.6 マウスホイール
【サンプル名】
Chap07\SysMets
SYSMETS.C -- Final System Metrics Display Program
【仕様】
SYSMETSの最終版
マウスホイールを使う
【備考】
SystemParametersInfo WM_MOUSEWHEEL SendMessage
0041デフォルトの名無しさん2005/10/17(月) 17:14:17
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第8章 タイマ 8.2 タイマを使う3種類の方法
8.2.1 第1の方法
【サンプル名】
Chap08\Beeper1
BEEPER1.C -- Timer Demo Program No. 1
【仕様】
クライアント領域の色を1秒間隔で赤と青に交互に切り替える。
この時ビープ音を鳴らす。
【備考】
SetTimer KillTimer MessageBeep
GetClientRect CreateSolidBrush FillRect DeleteObject

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第8章 タイマ 8.2 タイマを使う3種類の方法
8.2.2 第2の方法
【サンプル名】
Chap08\Beeper2
BEEPER2.C -- Timer Demo Program No. 2
【仕様】
BEEPER1と同じ機能
コールバック関数へタイマメッセージを送る
【備考】
CALLBACK
0042デフォルトの名無しさん2005/10/19(水) 17:09:20
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第8章 タイマ 8.3 時計プログラムの作成
8.3.1 デジタル時計の作成
【サンプル名】
Chap08\DigClock
DIGCLOCK.c -- Digital Clock
【仕様】
デジタル時計
【備考】
SetTimer KillTimer
CreateSolidBrush DeleteObject Polygon
SetMapMode SetWindowExtEx SetViewportExtEx
SetWindowOrgEx SetViewportOrgEx OffsetWindowOrgEx
SYSTEMTIME GetLocalTime GetLocaleInfo
参考
ロケール情報
http://www.galliver.co.jp/writing/msdn/msdn14/

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第8章 タイマ 8.3 時計プログラムの作成
8.3.5 アナログ時計の作成
【サンプル名】
Chap08\Clock
CLOCK.C -- Analog Clock Program
【仕様】
アナログ時計
【備考】
SetMapMode SetWindowExtEx SetViewportExtEx SetViewportOrgEx
Ellipse Polyline GetLocalTime
SetTimer KillTimer
0043デフォルトの名無しさん2005/10/19(水) 17:10:21
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第8章 タイマ 8.4 タイマを使った状況報告
【サンプル名】
Chap08\WhatClr
WHATCLR.C -- Displays Color Under Cursor
【仕様】
マウスカーソルのホットスポットのピクセルのRGB値を表示
【備考】
GetTextMetrics
CreateDC DeleteDC GetCursorPos GetClientRect DrawText
SetTimer KillTimer

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第9章 コントロール 9.1 ボタンクラス
【サンプル名】
Chap09\BtnLook
BTNLOOK.C -- Button Look Program
【仕様】
10種類の標準スタイルのボタンコントロールを表示して、
ボタンを押した時のメッセージをスクロール表示
【備考】
GetDialogBaseUnits CreateWindow
GetStockObject SelectObject SetBkMode TextOut
InvalidateRect ValidateRect ScrollWindow
0044デフォルトの名無しさん2005/10/19(水) 17:12:57
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第9章 コントロール 9.2 コントロールと色
9.2.4 オーナー描画ボタン
【サンプル名】
Chap09\OwnDraw
OWNDRAW.C -- Owner-Draw Button Demo Program
【仕様】
2つのボタンをオーナー描画で作成
左のボタンでウインドウサイズを小さく、右のボタンで大きくする。
ボタンをクリックしたら反転してフォーカス枠を表示
【備考】
GetStockObject SelectObject Polygon
CreateWindow MoveWindow GetWindowRect
FillRect FrameRect InvertRect DrawFocusRect

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第9章 コントロール 9.4 スクロールバークラス
9.4.1 COLORS1プログラム
【サンプル名】
Chap09\Colors1
COLORS1.C -- Colors Using Scroll Bars
【仕様】
赤、緑、青のスクロールバーでRGB値を変更し
その色でウインドウの背景色を変える。
スクロールバーをサブクラス化してキー操作に対応する。
【備考】
CreateSolidBrush GetStockObject SetClassLong DeleteObject
GetSysColor SetRect SetFocus GetWindowLong
SetScrollPos SetWindowText InvalidateRect
SetTextColor SetBkColor GetParent GetKeyState CALLBACK
0045デフォルトの名無しさん2005/10/19(水) 17:13:52
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第9章 コントロール 9.5 エディットクラス
【サンプル名】
Chap09\PopPad1
POPPAD1.C -- Popup Editor using child window edit box
【仕様】
大きさをクライアント領域に合わせたエディットコントロール
水平垂直スクロールバーを持つ
テキストの容量制限を越えたらメッセージを表示する。
【備考】
SetFocus MoveWindow MessageBox

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第9章 コントロール 9.6 リストボックスクラス
9.6.5 リストボックスを使った簡単なアプリケーション
【サンプル名】
Chap09\Environ
ENVIRON.C -- Environment List Box
【仕様】
リストボックスに環境変数の名前を表示する。
リストボックスから環境変数の名前を選択するとその値を表示
【備考】
GetEnvironmentStrings calloc CopyMemory free
GetDialogBaseUnits SetFocus SendMessage
GetEnvironmentVariable SetWindowText
0046デフォルトの名無しさん2005/10/19(水) 17:14:22
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第9章 コントロール 9.6 リストボックスクラス
9.6.7 Windows版のheadプログラム
【サンプル名】
Chap09\head
HEAD.C -- Displays beginning (head) of file
【仕様】
リストボックスにカレントディレクトリの内容とドライブ名を表示。
リストボックスの項目はダブルクリックまたはENTERで選択。
ファイルを選択するとファイルの内容をテキストとして表示
ディレクトリを選択するとカレントディレクトリを移動
ドライブを選択するとカレントドライブを変更
【備考】
GetCurrentDirectory GetCurrentDirectory
SetWindowLong SendMessage CALLBACK
SetFocus CreateFile CloseHandle ReadFile
lstrcpy lstrcat SetWindowText DrawTextA
GetStockObject SelectObject GetSysColor SetTextColor SetBkColor
0047デフォルトの名無しさん2005/10/23(日) 20:55:02
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第10章 メニュー、その他のリソース
10.1 アイコン、カーソル、文字列、カスタムリソース
10.1.1 プログラムへのアイコンの追加
【サンプル名】
Chap10\IconDemo
ICONDEMO.C -- Icon Demonstration Program
【仕様】
カスタムアイコンをクライアント領域全体に並べて表示する。
アイコンは標準の32x32と小さい16x16を用意する。
【備考】
LoadIcon GetSystemMetrics DrawIcon

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第10章 メニュー、その他のリソース
10.1 アイコン、カーソル、文字列、カスタムリソース
10.1.6 カスタムリソース
【サンプル名】
Chap10\PoePoem
POEPOEM.C -- Demonstrates Custom Resource
【仕様】
カスタムリソースに文字列とテキストファイルを追加
リソースから読み出したテキストファイルを表示
【備考】
LoadIcon LoadString LoadStringA MessageBoxA
GetTextMetrics LoadResource FindResource LockResource
SetScrollRange SetScrollPos MoveWindow SetFocus InvalidateRect
GetClientRect DrawTextA FreeResource AnsiNext
0048デフォルトの名無しさん2005/10/23(日) 20:55:57
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第10章 メニュー、その他のリソース 10.2 メニュー
10.2.6 プログラム例
【サンプル名】
Chap10\MenuDemo
MENUDEMO.C -- Menu Demonstration
【仕様】
メニューのプログラム例
File、Editの各メニューはビープ音のみ(未実装)
Backgroundで背景色を変える。(選択した色にチェック)
Timerでタイマーをスタートまたは停止(選択不可はグレー表示)
Helpからはメッセージボックスを表示
【備考】
GetMenu MessageBeep SendMessage CheckMenuItem
GetStockObject SetClassLong MessageBeep
SetTimer KillTimer EnableMenuItem MessageBox

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第10章 メニュー、その他のリソース 10.2 メニュー
10.2.9 フローティングポップアップメニュー
【サンプル名】
Chap10\PopMenu
POPMENU.C -- Popup Menu Demonstration
【仕様】
MenuDemoとほぼ同様の機能をポップアップメニューで
(Timerはない)
【備考】
LoadMenu GetSubMenu ClientToScreen TrackPopupMenu
MessageBeep CheckMenuItem SetClassLong GetStockObject
InvalidateRect MessageBox SendMessage
0049デフォルトの名無しさん2005/10/23(日) 20:56:29
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第10章 メニュー、その他のリソース 10.2 メニュー
10.2.1 コントロールメニュー活用法
【サンプル名】
Chap10\PoorMenu
POORMENU.C -- The Poor Person's Menu
【仕様】
コントロールメニューにコマンドとセパレータを追加する。
また追加したコマンドとセパレータを削除する
【備考】
GetSystemMenu AppendMenu MessageBox

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第10章 メニュー、その他のリソース 10.2 メニュー
10.2.13 型破りのメニュー
【サンプル名】
Chap10\NoPopups
NOPOPUPS.C -- Demonstrates No-Popup Nested Menu
【仕様】
ポップアップメニューを持たないトップレベルメニュー。
複数のトップレベルメニューを切り替える。
【備考】
LoadMenu SetMenu MessageBeep
0050デフォルトの名無しさん2005/10/23(日) 20:57:52
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第10章 メニュー、その他のリソース 10.3 キーボードアクセラレータ
10.3.7 メニューとアクセラレータをサポートしたPOPPAD
【サンプル名】
Chap10\PopPad2
POPPAD2.C -- Popup Editor Version 2 (includes menu)
【仕様】
POPPAD2にメニューとアクセラレータを追加
プログラムの終了時にメッセージボックスで確認を求める
【備考】
LoadAccelerators TranslateAccelerator
SetFocus MoveWindow EnableMenuItem SendMessage
IsClipboardFormatAvailable MessageBeep MessageBox
DestroyWindow

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第11章 ダイアログボックス 11.1 モーダルダイアログボックス
11.1.1 "About"ダイアログボックスの作成
【サンプル名】
Chap11\About1
ABOUT1.C -- About Box Demo Program No. 1
【仕様】
メニューから"About"ダイアログボックスを表示
【備考】
DialogBox EndDialog CALLBACK
0051デフォルトの名無しさん2005/10/23(日) 20:58:30
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第11章 ダイアログボックス 11.1 モーダルダイアログボックス
11.1.6 より複雑なダイアログボックス
【サンプル名】
Chap11\About2
ABOUT2.C -- About Box Demo Program No. 2
【仕様】
ダイアログボックスのラジオボタンで色と形を選択する。
選択した色と形をダイアログボックス上でプレビュー、
OKでダイアログを閉じてメインウインドウに表示する。
【備考】
GetClientRect CreateSolidBrush SelectObject Rectangle Ellipse
DeleteObject InvalidateRect UpdateWindow PaintWindow
DialogBox EndDialog CheckRadioButton SetFocus

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第11章 ダイアログボックス 11.1 モーダルダイアログボックス
11.1.13 カスタムコントロールの定義
【サンプル名】
Chap11\About3
ABOUT3.C -- About Box Demo Program No. 3
【仕様】
楕円形のボタンをカスタムコントロールで定義する。
(四角いボタンの表面に楕円形と文字が書いてある)
【備考】
DialogBox EndDialog GetClientRect GetWindowText
GetSysColor CreateSolidBrush SelectObject DeleteObject
GetSysColor SetBkColor SetTextColor Ellipse DrawText
SendMessage GetWindowLong CALLBACK
0052デフォルトの名無しさん2005/10/23(日) 20:59:53
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第11章 ダイアログボックス 11.2 モードレスダイアログボックス
11.2.2 COLORSの新バージョン
【サンプル名】
Chap11\Colors2
COLORS2.C -- Version using Modeless Dialog Box
【仕様】
COLORS1のスクロールバーをモードレスダイアログへ
【備考】
CreateSolidBrush GetStockObject SetClassLong DeleteObject
CreateDialog IsDialogMessage GetDlgItem GetWindowLong GetParent
SetScrollPos SetDlgItemInt InvalidateRect

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第11章 ダイアログボックス 11.2 モードレスダイアログボックス
11.2.3 ダイアログボックスのようなウィンドウのようなHEXCALCプログラム
【サンプル名】
Chap11\HexCalc
HEXCALC.C -- Hexadecimal Calculator
【仕様】
16進電卓、キーボードとマウス対応
【備考】
DLGWINDOWEXTRA CreateDialog SetDlgItemText
CharUpper SendMessage Sleep SetFocus
0053デフォルトの名無しさん2005/10/23(日) 21:01:13
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第11章 ダイアログボックス 11.3 コモンダイアログボックス
11.3.1 POPPADへのファイル操作の付加
【サンプル名】
Chap11\PopPad3
POPPAD.C -- Popup Editor
【仕様】
POPPADにファイル、検索置換、フォントのダイアログを追加
【備考】
LoadAccelerators TranslateAccelerator IsDialogMessage
EM_LIMITTEXT RegisterWindowMessage SetFocus MoveWindow EnableMenuItem
WM_UNDO WM_CUT WM_COPY WM_PASTE WM_CLEAR EM_SETSEL EM_GETSEL
IsClipboardFormatAvailable EndDialog
GetOpenFileName GetSaveFileName CreateFile GetFileSize ReadFile CloseHandle
IsTextUnicode malloc free WideCharToMultiByte MultiByteToWideChar
GetWindowTextLength WriteFile
FindText ReplaceText EM_SETSEL EM_SCROLLCARET EM_REPLACESEL
ChooseFont CreateFontIndirect WM_SETFONT DeleteObject GetClientRect InvalidateRect

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第11章 ダイアログボックス 11.3 コモンダイアログボックス
11.3.5 ファンクションコールが1つだけのWindowsプログラム
【サンプル名】
Chap11\Colors3
COLORS3.C -- Version using Common Dialog Box
【仕様】
色の設定のコモンダイアログを表示する。
ダイアログを閉じたらプログラムを終了する。
【備考】
ChooseColor
0054デフォルトの名無しさん2005/10/30(日) 18:55:08
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第12章 クリップボード 12.1 クリップボードの簡単な使い方
12.1.6 クリップボードとUnicode
【サンプル名】
Chap12\ClipText
CLIPTEXT.C -- The Clipboard and Text
【仕様】
クリップボードを使って Cut Copy Paste する
Unicode VersionとANSI Versionでデータを交換する。
【備考】
LoadAccelerators TranslateAccelerator EnableMenuItem IsClipboardFormatAvailable
OpenClipboard CloseClipboard GetClipboardData GlobalLock malloc InvalidateRect
GlobalAlloc GlobalUnlock EmptyClipboard SetClipboardData CloseClipboard DrawText

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第12章 クリップボード 12.3 クリップボードビューアの作成
12.3.3 簡単なクリップボードビューア
Chap12\ClipView
CLIPVIEW.C -- Simple Clipboard Viewer
【仕様】
テキストのみ対応のクリップボードビューア
【備考】
SetClipboardViewer OpenClipboard GetClipboardData GlobalLock
GlobalUnlock CloseClipboard ChangeClipboardChain
0055デフォルトの名無しさん2005/10/30(日) 18:55:44
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第13章 プリンタの使い方 13.1 印刷の基礎
13.1.2 プリンタデバイスコンテキスト
Chap13\Print1
GETPRNDC.C -- GetPrinterDC function
【仕様】
Windows98とWindowsNTで動作するGetPrinterDC関数
【備考】
GetVersion EnumPrinters CreateDC

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第13章 プリンタの使い方 13.1 印刷の基礎
13.1.3 DEVCAPS の新バージョン
Chap13\DevCaps2
DEVCAPS2.C -- Displays Device Capability Information (Version 2)
【仕様】
ディスプレイと全ての接続済みプリンタについての情報を表示する。
プリンタの一覧をメニューへ追加する。
【備考】
GetMenuItemCount DeleteMenu GetVersion EnumPrinters AppendMenu
CheckMenuItem GetMenuString OpenPrinter PrinterProperties ClosePrinter
EnableMenuItem CreateIC DeleteDC GetDeviceCaps
0056デフォルトの名無しさん2005/10/30(日) 18:57:00
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第13章 プリンタの使い方 13.1 印刷の基礎
13.1.6 もっとも簡単な印刷プログラム
Chap13\FormFeed
FORMFEED.C -- Advances printer to next page
【仕様】
紙を排出するだけのプログラム
【備考】
GetPrinterDC StartDoc StartPage EndPage EndDoc DeleteDC

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第13章 プリンタの使い方 13.2 グラフィックとテキストの印刷
Chap13\Print1
PRINT.C -- Common routines for Print1, Print2, and Print3
【仕様】
Print1, Print2, Print3で使う共通部分
【備考】
Rectangle MoveToEx LineTo SaveDC RestoreDC
SetMapMode SetWindowExtEx SetViewportExtEx SetViewportOrgEx
Ellipse SetTextAlign TextOut GetSystemMenu AppendMenu
0057デフォルトの名無しさん2005/10/30(日) 18:57:42
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第13章 プリンタの使い方 13.2 グラフィックとテキストの印刷
13.2.1 骨組みだけの印刷ルーチン
Chap13\Print1
PRINT1.C -- Bare Bones Printing
【仕様】
クライアント領域に図形と文字を描画する。
システムメニューから Print を選択で同じものをプリンタへ出力
【備考】
GetDeviceCaps StartDoc StartPage EndPage EndDoc

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第13章 プリンタの使い方 13.2 グラフィックとテキストの印刷
13.2.4 中止関数の実装
Chap13\Print2
PRINT2.C -- Printing with Abort Procedure
【仕様】
PRINT1に中止関数を追加
【備考】
PeekMessage EnableWindow SetAbortProc
0058デフォルトの名無しさん2005/10/30(日) 18:58:21
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第13章 プリンタの使い方 13.2 グラフィックとテキストの印刷
13.2.5 印刷ダイアログボックスの追加
Chap13\Print3
PRINT3.C -- Printing with Dialog Box
【仕様】
PRINT1に印刷ダイアログボックスを追加
【備考】
SetWindowText GetSystemMenu EnableMenuItem
GetParent EnableWindow DestroyWindow IsDialogMessage
CreateDialog

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第13章 プリンタの使い方 13.2 グラフィックとテキストの印刷
13.2.6 POPPADへの印刷ルーチンの追加
Chap13\PopPad
POPPRNT.C -- Popup Editor Printing Functions
【仕様】
POPPADのエディットコントロールの内容をプリンタへ印刷する。
【備考】
GetSystemMenu EnableMenuItem GetParent EnableWindow DestroyWindow
PeekMessage IsDialogMessage EM_GETLINECOUNT GetTextMetrics GetDeviceCaps
CreateDialog SetDlgItemText SetAbortProc GetWindowText
StartDoc StartPage EM_GETLINE TextOut EndPage EndDoc DestroyWindow
0059デフォルトの名無しさん2005/10/30(日) 19:00:38
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第14章 ビットマップとBitBlt 14.3 ビットブロック転送-BitBlt
14.3.1 単純なBitBlt
Chap14\BitBlt
BITBLT.C -- BitBlt Demonstration
【仕様】
プログラムのコントロールメニューアイコンをクライアント領域へコピーする。
クライアント領域全体に縦横に並べる。
【備考】
GetSystemMetrics GetWindowDC ReleaseDC BitBlt

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第14章 ビットマップとBitBlt 14.3 ビットブロック転送-BitBlt
14.3.2 ビットマップの拡大/縮小
Chap14\Stretch
STRETCH.C -- StretchBlt Demonstration
【仕様】
プログラムのコントロールメニューアイコンをクライアント領域へコピーする。
クライアント領域のサイズに拡大して1回だけコピー
【備考】
GetSystemMetrics GetWindowDC ReleaseDC StretchBlt
0060デフォルトの名無しさん2005/10/30(日) 19:01:37
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第14章 ビットマップとBitBlt 14.4 GDIビットマップオブジェクト
14.4.4 ビットマップリソースのロード
Chap14\Bricks1
BRICKS1.C -- LoadBitmap Demonstration
【仕様】
モノクロビットマップリソースをロードしてクライアント領域に縦横に並べる。
【備考】
LoadBitmap GetObject CreateCompatibleDC SelectObject BitBlt
DeleteDC DeleteObject

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第14章 ビットマップとBitBlt 14.4 GDIビットマップオブジェクト
14.4.5 モノクロビットマップのフォーマット
Chap14\Bricks2
BRICKS2.C -- CreateBitmap Demonstration
【仕様】
リソースなしでレンガのビットマップを直接作成する。
(BRICKS1と同じ表示になる)
【備考】
CreateBitmapIndirect CreateCompatibleDC DeleteDC SelectObject BitBlt
0061デフォルトの名無しさん2005/10/30(日) 19:02:14
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第14章 ビットマップとBitBlt 14.4 GDIビットマップオブジェクト
14.4.6 ビットマップから作ったブラシ
Chap14\Bricks3
BRICKS3.C -- CreatePatternBrush Demonstration
【仕様】
ビットマップから背景ブラシを作成する。
(BRICKS1と同じ表示になる)
【備考】
LoadBitmap CreatePatternBrush DeleteObject

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第14章 ビットマップとBitBlt 14.4 GDIビットマップオブジェクト
14.4.7 ビットマップ上への描画
Chap14\HelloBit
HELLOBIT.C -- Bitmap Demonstration
【仕様】
ビットマップに " Hello, world! " と描画し、
BitBltかStretchBltでクライアント領域にコピーする。
(コピーの方法はメニューから選択する。)
【備考】
CreateCompatibleDC GetTextExtentPoint32 CreateCompatibleBitmap
SelectObject TextOut CheckMenuItem StretchBlt BitBlt
0062デフォルトの名無しさん2005/10/30(日) 19:07:03
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第14章 ビットマップとBitBlt 14.4 GDIビットマップオブジェクト
14.4.8 シャドウビットマップ
Chap14\Sketch
SKETCH.C -- Shadow Bitmap Demonstration
【仕様】
マウスによる描画プログラム
左クリックして移動で黒い線、右クリックして移動で白い線
【備考】
ZeroMemory EnumDisplaySettings CreateCompatibleBitmap
CreateCompatibleDC DeleteDC SelectObject PatBlt
SetCapture GetStockObject MoveToEx LineTo BitBlt DeleteObject

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第14章 ビットマップとBitBlt 14.4 GDIビットマップオブジェクト
14.4.9 ビットマップを使ったメニューアイテム
Chap14\GrafMenu
GRAFMENU.C -- Demonstrates Bitmap Menu Items
【仕様】
ビットマップでメニューアイテムを作成する。
TrueTypeフォントからビットマップを作成する。
【備考】
SetMenu CheckMenuItem GetMenu GetSystemMenu AppendMenu
CreateMenu LoadMenu GetDialogBaseUnits CreateIC
CreateCompatibleDC DeleteDC GetObject CreateBitmapIndirect
SelectObject StretchBlt DeleteObject GetTextMetrics
CreateFont GetTextExtentPoint32 CreateBitmap TextOut GetMenuItemInfo
0063デフォルトの名無しさん2005/10/30(日) 19:07:35
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第14章 ビットマップとBitBlt 14.4 GDIビットマップオブジェクト
14.4.10 矩形以外のビットマップイメージ
Chap14\BitMask
BITMASK.C -- Bitmap Masking Demonstration
【仕様】
矩形のビットマップイメージをマスクして楕円で表示。
【備考】
LoadBitmap GetObject CreateCompatibleDC SelectObject
CreateBitmap Rectangle Ellipse BitBlt DeleteDC DeleteObject

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第14章 ビットマップとBitBlt 14.4 GDIビットマップオブジェクト
14.4.11 単純な動画
Chap14\Bounce
BOUNCE.C -- Bouncing Ball Program
【仕様】
タイマとビットマップによりクライアント領域を跳ね回るボールを表示
【備考】
GetDeviceCaps SetTimer KillTimer DeleteObject CreateCompatibleDC
CreateCompatibleBitmap SelectObject Rectangle CreateHatchBrush
SetBkColor Ellipse DeleteDC BitBlt
0064デフォルトの名無しさん2005/10/30(日) 19:08:37
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第14章 ビットマップとBitBlt 14.4 GDIビットマップオブジェクト
14.4.12 ウインドウの外のビットマップ
Chap14\Scramble
SCRAMBLE.C -- Scramble (and Unscramble) Screen
【仕様】
デスクトップの分割イメージをランダムに入れ替えてスクランブルする。
そして逆の順番に入れ替えて全部元に戻す。
【備考】
LockWindowUpdate GetDCEx CreateCompatibleDC GetSystemMetrics
CreateCompatibleBitmap SelectObject srand rand Sleep
DeleteDC ReleaseDC DeleteObject LockWindowUpdate

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第14章 ビットマップとBitBlt 14.4 GDIビットマップオブジェクト
14.4.12 ウインドウの外のビットマップ
Chap14\Blowup
BLOWUP.C -- Video Magnifier Program
【仕様】
マウスで画面上の任意の矩形領域を選択してクライアント領域へコピーする。
この時クライアント領域のサイズに合わせて拡大/縮小表示する。
【備考】
GetDCEx ReleaseDC ClientToScreen PatBlt GetObject CreateBitmapIndirect
CreateCompatibleDC SelectObject BitBlt DeleteDC
LockWindowUpdate SetCapture ReleaseCapture SetCursor
CreateCompatibleBitmap StretchBlt ReleaseDC IsClipboardFormatAvailable
EnableMenuItem OpenClipboard EmptyClipboard SetClipboardData
DeleteObject GetClipboardData CloseClipboard GetClientRect SetStretchBltMode
0065デフォルトの名無しさん2005/10/30(日) 19:25:54
今後の予定: 下巻を1ヶ月ぐらい
0066悔しかったらサンプルでも作ってみろ2005/11/01(火) 11:43:20
これだけの内容、全部把握しているなら大したもんだが実態は、読んだ端から忘れるんだろうな。
0067デフォルトの名無しさん2005/11/07(月) 21:35:29
祝日土日遊んでしまってかなり遅れてしまったけどようやく再開

>>66
確かに1回読んでるけどかなり忘れてますね。
でも2回目だから最初より楽に読めるし、新しい発見があったりで無駄にはならないと思う。
0068デフォルトの名無しさん2005/11/07(月) 21:36:40
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第15章 DIB 15.1 DIBファイルフォーマット
15.1.10 DIB情報の表示
Chap15\DibHeads
DIBHEADS.C -- Displays DIB Header Information
【仕様】
メニューからビットマップファイルを開いてDIB情報を表示する。
【備考】
va_start wvsprintf va_end CreateFile GetFileSize CloseHandle
malloc free SetCursor ShowCursor ReadFile

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第15章 DIB 15.1 DIBファイルフォーマット
15.2.2 ピクセルからピクセルへ
Chap15\ShowDib1
SHOWDIB1.C -- Shows a DIB in the client area
DIBFILE.C -- DIB File Functions
【仕様】
メニューからビットマップファイルを開いて画面に表示する。
そのビットマップを名前をつけて保存する。
【備考】
EnableMenuItem SetCursor ShowCursor
SetDIBitsToDevice GetOpenFileName GetSaveFileName
CreateFile GetFileSize CloseHandle ReadFile WriteFile
0069デフォルトの名無しさん2005/11/07(月) 21:37:17
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第15章 DIB 15.2 表示と印刷
15.2.3 DIBの逆さまの世界
Chap15\Apollo11
APOLLO11.C -- Program for screen captures
【仕様】
ボトムアップとトップダウンのビットマップを画面に表示する。
ボトムアップ全体、ボトムアップ一部分
トップダウン全体、トップダウン一部分の4種類
【備考】
SetDIBitsToDevice

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第15章 DIB 15.2 表示と印刷
15.2.4 シーケンシャル表示
Chap15\SeqDisp
SEQDISP.C -- Sequential Display of DIBs
【仕様】
メニューからビットマップファイルを開いて画面に表示する。
初回はファイルを読みながら1行ずつ表示する。
更新はメモリから一度に全部表示する。
【備考】
GetOpenFileName CreateFile ReadFile CloseHandle
SetDIBitsToDevice
0070デフォルトの名無しさん2005/11/07(月) 21:38:44
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第15章 DIB 15.2 表示と印刷
15.2.5 DIBの拡大/縮小
Chap15\ShowDib2
SHOWDIB2.C -- Shows a DIB in the client area
【仕様】
SHOWDIB1に以下の機能を追加
プリンタに印刷、クリップボードへコピー切り取り、画面の消去
クライアント領域の中央に表示
クライアント領域全体に拡大/縮小
クライアント領域に合わせて拡大/縮小 ISOTOPIC(縦横の比率を維持)
【備考】
SetDIBitsToDevice SetStretchBltMode StretchDIBits
SetMapMode SetWindowExtEx SetViewportExtEx SetWindowOrgEx SetViewportOrgEx
PrintDlg GetDeviceCaps StartDoc StartPage EndPage EndDoc
GlobalAlloc GlobalLock CopyMemory GlobalUnlock OpenClipboard EmptyClipboard
SetClipboardData CloseClipboard

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第15章 DIB 15.3 DIBとDDBの結合
15.3.1 DIBからDDBを作る
Chap15\DibConv
DIBCONV.C -- Converts a DIB to a DDB
【仕様】
メニューからビットマップファイルを開いて画面に表示する。
(DIBをDDBに変換してから表示)
【備考】
CreateFile GetFileSize CloseHandle ReadFile
CreateDIBitmap CreateBitmapObjectFromDibFile
GetObject CreateCompatibleDC SelectObject BitBlt DeleteDC DeleteObject
0071デフォルトの名無しさん2005/11/07(月) 21:39:19
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第15章 DIB 15.3 DIBとDDBの結合
15.3.3 DIBセクション
Chap15\DibSect
DIBSECT.C -- Displays a DIB Section in the client area
【仕様】
メニューからビットマップファイルを開いて画面に表示する。
(DIBセクションを作って表示)
【備考】
CreateFile ReadFile CloseHandle CreateDIBSection
DeleteObject CreateDibSectionFromDibFile
GetObject CreateCompatibleDC SelectObject BitBlt
DeleteDC DeleteObject
0072デフォルトの名無しさん2005/11/08(火) 10:39:59
>>67
知識は使わなければただのゴミ。
ゴミは言いすぎか。まぁ、自慰行為だな。
0073デフォルトの名無しさん2005/11/13(日) 19:21:40
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.1 パレットの使い方
16.1.2 グレーシェードの表示
Chap16\Grays1
GRAYS1. -- Gray Shades
【仕様】
65色のグレーシェードを表示する。
(パレットマネージャを使わない)
【備考】
CreateSolidBrush FillRect DeleteObject

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.1 パレットの使い方
16.1.2 グレーシェードの表示
Chap16\Grays2
GRAYS2.C -- Gray Shades Using Palette Manager
【仕様】
65色のグレーシェードを表示する。
(パレットマネージャを使う)
【備考】
CreatePalette SelectPalette RealizePalette CreateSolidBrush
PALETTERGB FillRect DeleteObject UpdateColors
WM_QUERYNEWPALETTE WM_PALETTECHANGED
0074デフォルトの名無しさん2005/11/13(日) 19:22:14
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.1 パレットの使い方
16.1.3 パレットインデックスによる方法
Chap16\Grays3
GRAYS3.C -- Gray Shades Using Palette Manager
【仕様】
65色のグレーシェードを表示する。
(パレットインデックスを使う)
【備考】
CreatePalette SelectPalette RealizePalette CreateSolidBrush
PALETTEINDEX FillRect DeleteObject UpdateColors
WM_QUERYNEWPALETTE WM_PALETTECHANGED

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.1 パレットの使い方
16.1.9 システムパレットを見てみる
Chap16\SysPal1
SYSPAL1.C -- Displays system palette
【仕様】
システムパレットのRGB値を256個全部表示する。
【備考】
GetDeviceCaps SIZEPALETTE SelectObject GetStockObject
GetTextExtentPoint32 DestroyWindow GetSystemPaletteEntries TextOut
0075デフォルトの名無しさん2005/11/13(日) 19:22:44
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.1 パレットの使い方
16.1.9 システムパレットを見てみる
Chap16\SysPal2
SYSPAL2.C -- Displays system palette
【仕様】
システムパレットの256種類の色を表示する。
【備考】
GetDeviceCaps SIZEPALETTE PC_EXPLICIT CreatePalette DestroyWindow
SelectPalette RealizePalette CreateSolidBrush PALETTEINDEX
SetRect FillRect DeleteObject WM_PALETTECHANGED

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.1 パレットの使い方
16.1.9 システムパレットを見てみる
Chap16\SysPal3
SYSPAL3.C -- Displays system palette
【仕様】
システムパレットの256種類の色を表示する。
【備考】
GetDeviceCaps SIZEPALETTE CreateBitmap DestroyWindow
CreateCompatibleDC SelectObject StretchBlt DeleteDC
0076デフォルトの名無しさん2005/11/13(日) 19:23:36
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.2 パレットアニメーション
16.2.1 弾むボール
Chap16\Bounce
PALANIM.C -- Palette Animation Shell Program
BOUNCE.C -- Palette Animation Demo
【仕様】
34個のパレットエントリのうち33個を使って
パレットアニメーションで弾むボールを表示する
【備考】
GetDeviceCaps SIZEPALETTE DestroyWindow
SelectPalette RealizePalette UpdateColors PC_RESERVED
CreatePalette SetTimer SetRect CreateSolidBrush PALETTEINDEX
FillRect SelectObject GetStockObject NULL_PEN Ellipse DeleteObject
AnimatePalette KillTimer DeleteObject

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.2 パレットアニメーション
16.2.2 1エントリによるパレットアニメーション
Chap16\Fader
FADER.C -- Palette Animation Demo
【仕様】
ひとつのパレットエントリを使っただけのパレットアニメーション
" Fade In and Out "という文字列をフェードインフェードアウト表示
【備考】
PC_RESERVED CreatePalette SetTimer SetTextColor GetTextExtentPoint32
TextOut AnimatePalette KillTimer DeleteObject
0077デフォルトの名無しさん2005/11/13(日) 19:24:13
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.2 パレットアニメーション
16.2.3 技術アプリケーション
Chap16\Pipes
PIPES.C -- Palette Animation Demo
【仕様】
16個のパレットエントリを使用したパレットアニメーション
2本のパイプの中味をそれぞれ左から右、右から左へ動かす
【備考】
PC_RESERVED CreatePalette SetTimer SetRect
SelectObject GetStockObject FillRect
CreateSolidBrush PALETTEINDEX DeleteObject
MoveToEx LineTo AnimatePalette KillTimer

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.2 パレットアニメーション
16.2.3 技術アプリケーション
Chap16\Tunnel
TUNNEL.C -- Palette Animation Demo
【仕様】
128個のパレットエントリを使用したパレットアニメーション
64種類のグレーシェードでトンネルを潜り抜けていくような効果
【備考】
PC_RESERVED CreatePalette SetTimer CreateSolidBrush PALETTEINDEX
FillRect DeleteObject AnimatePalette KillTimer
0078デフォルトの名無しさん2005/11/14(月) 19:01:06
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.3 パレットと実世界のイメージ
16.3.1 パレットとパック済みDIB
Chap16\ShowDib3
PACKEDIB.C -- Routines for using packed DIBs
SHOWDIB3.C -- Displays DIB with native palette
【仕様】
パック済みDIBのメモリブロックを操作する一連の関数
これらの関数を使ってビットマップファイルを読んで画面に表示
DIBの中のカラーテーブルを使ってパレットを作成する。
【備考】
CreateFile ReadFile CloseHandle CreatePalette
GetOpenFileName DeleteObject SetCursor ShowCursor
SelectPalette RealizePalette SetDIBitsToDevice UpdateColors

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.3 パレットと実世界のイメージ
16.3.2 汎用パレット
Chap16\ShowDib4
SHOWDIB4.C -- Displays DIB with "all-purpose" palette
【仕様】
ShowDib3と同様のプログラム
すべてのDIBの表示に使う汎用パレットを構築する。
【備考】
CreatePalette GetOpenFileName SetCursor ShowCursor
SelectPalette RealizePalette SetDIBitsToDevice UpdateColors
DeleteObject
0079デフォルトの名無しさん2005/11/14(月) 19:02:12
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.3 パレットと実世界のイメージ
16.3.3 ハーフトーンパレット
Chap16\ShowDib5
SHOWDIB5.C -- Displays DIB with halftone palette
【仕様】
ShowDib3と同様のプログラム
ハーフトーンパレットを使う
【備考】
CreateHalftonePalette GetOpenFileName SetCursor ShowCursor
SetStretchBltMode SetBrushOrgEx SelectPalette RealizePalette
StretchDIBits UpdateColors DeleteObject

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.3 パレットと実世界のイメージ
16.3.4 パレット内のインデックス指定
Chap16\ShowDib6
SHOWDIB6.C -- Display DIB with palette indices
【仕様】
ShowDib3と同様のプログラム
パレットインデックスを使う
【備考】
GetOpenFileName DeleteObject SetCursor ShowCursor
SelectPalette RealizePalette SetDIBitsToDevice DIB_PAL_COLORS
UpdateColors
0080デフォルトの名無しさん2005/11/14(月) 19:02:46
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.3 パレットと実世界のイメージ
16.3.5 パレットとビットマップオブジェクト
Chap16\ShowDib7
SHOWDIB7.C -- Shows DIB converted to DDB
【仕様】
ShowDib3と同様のプログラム
GDIビットマップオブジェクトに変換したDIBとパレットを組み合わせ
【備考】
GetOpenFileName DeleteObject SetCursor ShowCursor
SelectPalette RealizePalette CreateDIBitmap
GetObject CreateCompatibleDC SelectObject BitBlt UpdateColors

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.3 パレットと実世界のイメージ
16.3.6 パレットとDIBセクション
Chap16\ShowDib8
SHOWDIB8.C -- Shows DIB converted to DIB section
【仕様】
ShowDib3と同様のプログラム
DIBセクションとパレットの使い方
【備考】
GetOpenFileName DeleteObject SetCursor ShowCursor
CreateDIBSection CopyMemory SelectPalette RealizePalette
GetObject CreateCompatibleDC SelectObject BitBlt UpdateColors
0081デフォルトの名無しさん2005/11/14(月) 19:03:26
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.4 DIBライブラリ
16.4.2 情報関数
Chap16\Dibble
DIBHELP.C -- DIB Section Helper Routines(その1)
【仕様】
DIBセクションについての情報を提供する一連の関数
【備考】
CreateCompatibleDC SelectObject GetDIBColorTable DeleteDC
SetDIBColorTable

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.4 DIBライブラリ
16.4.3 ピクセルの読み書き
Chap16\Dibble
DIBHELP.C -- DIB Section Helper Routines(その2)
【仕様】
DIBのピクセルビットを直接操作
0082デフォルトの名無しさん2005/11/14(月) 19:04:31
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.4 DIBライブラリ
16.4.4 作成と変換
Chap16\Dibble
DIBHELP.C -- DIB Section Helper Routines(その3)
【仕様】
DIBセクションの作成方法とパック済みDIBとの間の相互変換
【備考】
CreateDIBSection DeleteObject GetObject
ZeroMemory CopyMemory GlobalAlloc GlobalLock
CreateCompatibleDC SelectObject GetDIBColorTable DeleteDC
GlobalUnlock CreateFile ReadFile CloseHandle WriteFile
DeleteFile SelectPalette RealizePalette CreateDIBitmap ReleaseDC

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.4 DIBライブラリ
16.4.5 DIBHELPヘッダファイルとマクロ
Chap16\Dibble
DIBHELP.H header file for DIBHELP.C
【仕様】
ヘッダファイルとマクロ
0083デフォルトの名無しさん2005/11/14(月) 19:06:02
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.4 DIBライブラリ
16.4.6 DIBBLEプログラム
Chap16\Dibble
DIBBLE.C -- Bitmap and Palette Program
【仕様】
ビットマップファイルを読んで画面に表示
拡大/縮小表示、クリップボード、反転と回転などに対応
【備考】
GetObject SaveDC SetStretchBltMode CreateCompatibleDC SelectObject
StretchBlt BitBlt SetMapMode SetWindowExtEx SetViewportExtEx
SetWindowOrgEx SetViewportOrgEx DeleteDC RestoreDC CheckMenuItem
GetMenu SetScrollInfo GetScrollInfo UpdateWindow ScrollWindow
UpdateWindow EnableMenuItem GetOpenFileName SetCursor ShowCursor
GetDeviceCaps OpenClipboard EmptyClipboard SetClipboardData
CloseClipboard GetClipboardData GlobalLock GlobalUnlock CloseClipboard
DeleteObject CreateHalftonePalette SelectPalette RealizePalette UpdateColors

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.4 DIBライブラリ
16.4.7 単純なパレットと最適化されたパレット
Chap16\Dibble
DIBPAL.C -- Palette-Creation Functions
【仕様】
さまざまなパレットを作成する
均一分布、"ポピュラリティ"アルゴリズム、"中央値カット"アルゴリズム
【備考】
CreatePalette
0084デフォルトの名無しさん2005/11/14(月) 19:06:29
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第16章 パレットマネージャ 16.4 DIBライブラリ
16.4.8 フォーマット変換
Chap16\Dibble
DIBCONV.C -- Converts DIBs from one format to another
【仕様】
DIBのフォーマットを変換する
【備考】
GetObject GetPaletteEntries GetNearestPaletteIndex DeleteObject
0085デフォルトの名無しさん2005/11/19(土) 16:52:04
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第17章 テキストとフォント 17.3 論理フォント
17.3.2 PICFONTプログラム
Chap17\PickFont
PICKFONT.C -- Create Logical Font
【仕様】
モードレスダイアログでLOGFONT構造体の項目を設定し、
テキストメトリックとフォントのサンプルを表示する。
【備考】
CreateDialogParam SetFocus CheckMenuItem SetGraphicsMode SetMapperFlags
GetClientRect DPtoLP SelectObject CreateFontIndirect TextOut
DeleteObject GetStockObject CheckRadioButton GetDlgItem IsDlgButtonChecked
CreateIC PrintDlg GetTextMetrics GetTextFace DeleteDC GetDlgItemInt
GetDlgItemText SetDlgItemInt SetDlgItemText
SetMapMode MM_ANISOTROPIC SetWindowExtEx SetViewportExtEx GetDeviceCaps

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第17章 テキストとフォント 17.3 論理フォント
17.3.7 EZFONTシステム
Chap17\EZTest
EZFONT.C -- Easy Font Creation
【仕様】
フォント名とポイント数だけでフォントを選択する。
【備考】
SaveDC SetGraphicsMode ModifyWorldTransform SetViewportOrgEx
SetWindowOrgEx GetDeviceCaps DPtoLP CreateFontIndirect SelectObject
GetTextMetrics DeleteObject CreateFontIndirect RestoreDC
0086デフォルトの名無しさん2005/11/19(土) 16:56:43
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第17章 テキストとフォント 17.3 論理フォント
17.3.7 EZFONTシステム
Chap17\EZTest
EZTEST.C -- Test of EZFONT
【仕様】
EZFONTを使ってフォントのサンプルを表示する。
【備考】
SetMapMode MM_ANISOTROPIC SetWindowExtEx SetViewportExtEx
GetObject SelectObject GetTextMetrics TextOut
DeleteObject GetStockObject

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第17章 テキストとフォント 17.3 論理フォント
17.3.8 フォントの回転
Chap17\FontRot
FONTROT.C -- Rotated Fonts
【仕様】
フォントを回転して文字列を表示する。
(30度ごとの12個のサンプル)
【備考】
GetObject DeleteObject SetBkMode SetTextAlign SetViewportOrgEx
SelectObject CreateFontIndirect TextOut GetStockObject
0087デフォルトの名無しさん2005/11/19(土) 16:57:30
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第17章 テキストとフォント 17.4 フォントの列挙
17.4.2 ChooseFontダイアログ
Chap17\ChosFont
CHOSFONT.C -- ChooseFont Demo
【仕様】
フォントのサンプルとLOGFONT構造体の情報を表示する。
フォント選択ダイアログでフォントを選択
GetDialogBaseUnits GetObject GetStockObject ChooseFont
SelectObject CreateFontIndirect GetTextMetrics SetTextColor
TextOut DeleteObject GetStockObject

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第17章 テキストとフォント 17.4 フォントの列挙
17.4.2 ChooseFontダイアログ
Chap17\UniChars
UNICHARS.C -- Displays 16-bit character codes
【仕様】
すべてのUNICODEの文字を表示する。(1ページに256ずつ)
フォント選択ダイアログでフォントを選択
【備考】
GetDC GetDeviceCaps ReleaseDC SetScrollRange SetScrollPos
ChooseFont SetScrollPos SelectObject CreateFontIndirect
GetTextMetrics GetTextExtentPoint TextOut TextOutW
DeleteObject GetStockObject
0088デフォルトの名無しさん2005/11/19(土) 16:59:26
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第17章 テキストとフォント 17.5 段落の整形
17.5.2 段落単位の整形
Chap17\Justify1
JUSTIFY1.C -- Justified Type Program #1
【仕様】
サンプルテキストを左端で折り返して表示する。
左端が単語の途中の場合は1つ前のスペースで改行する。
位置揃え(左、右、中央、均等)を選択
フォント選択ダイアログでフォントを選択
縦横に定規を表示
【備考】
SaveDC SetMapMode MM_ANISOTROPIC SetWindowExtEx SetViewportExtEx
GetDeviceCaps SetWindowOrgEx DPtoLP MoveToEx LineTo RestoreDC
GetTextExtentPoint32 SetTextJustification TextOut GetObject
GetStockObject GetMenu PrintDlg SetCursor ShowCursor StartDoc
StartPage CreateFontIndirect SetTextColor EndPage EndDoc DeleteDC
ChooseFont CheckMenuItem GetClientRect
0089デフォルトの名無しさん2005/11/19(土) 16:59:51
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第17章 テキストとフォント 17.5 段落の整形
17.5.2 段落単位の整形
Chap17\Justify2
JUSTIFY2.C -- Justified Type Program #2
【仕様】
JUSTIFY1と同様
行の分割位置が画面とプリンタで同じになる。
【備考】
SaveDC SetMapMode MM_ANISOTROPIC SetWindowExtEx SetViewportExtEx
GetDeviceCaps SetWindowOrgEx DPtoLP MoveToEx LineTo RestoreDC
GetCurrentObject GetObject GetOutlineTextMetrics CreateFontIndirect
MM_TEXT SelectObject GetCharWidth GetCurrentObject GetTextExtentPoint32
SetTextJustification GetDC GetMenu PrintDlg SetCursor ShowCursor
StartDoc StartPage CreateFontIndirect SetTextColor EndPage EndDoc
DeleteDC ChooseFont CheckMenuItem GetClientRect
0090デフォルトの名無しさん2005/11/19(土) 17:00:19
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第17章 テキストとフォント 17.6 おもしろテクニックの数々
17.6.2 拡張ペン
Chap17\EndJoin
ENDJOIN.C -- Ends and Joins Demo
【仕様】
線の先端と結合部の形状のサンプル
パスを定義して拡張ペンで描画
【備考】
SetMapMode MM_ANISOTROPIC SetWindowExtEx SetViewportExtEx
SelectObject ExtCreatePen BeginPath MoveToEx LineTo EndPath
StrokePath DeleteObject GetStockObject

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第17章 テキストとフォント 17.6 おもしろテクニックの数々
17.6.3 4つのサンプルプログラム
Chap17\FontOut1
FONTOUT1.C -- Using Path to Outline Font
【仕様】
アウトラインフォントからパスを定義して文字の輪郭を描画する。
【備考】
SelectObject GetTextExtentPoint32 BeginPath TextOut EndPath
StrokePath GetStockObject DeleteObject
0091デフォルトの名無しさん2005/11/19(土) 17:01:13
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第17章 テキストとフォント 17.6 おもしろテクニックの数々
17.6.3 4つのサンプルプログラム
Chap17\FontOut2
FONTOUT2.C -- Using Path to Outline Font
【仕様】
アウトラインフォントからパスを定義
拡張ペンで文字の輪郭を描画する。(太さ3ポイントの赤の点線)
【備考】
SelectObject SetBkMode GetTextExtentPoint32 BeginPath TextOut EndPath
ExtCreatePen GetDeviceCaps StrokePath DeleteObject GetStockObject

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第17章 テキストとフォント 17.6 おもしろテクニックの数々
17.6.3 4つのサンプルプログラム
Chap17\FontFill
FONTFILL.C -- Using Path to Fill Font
【仕様】
アウトラインフォントからパスを定義
青の背景に赤のハッチブラシで塗りつぶす。
【備考】
SelectObject SetBkMode GetTextExtentPoint32 BeginPath TextOut EndPath
CreateHatchBrush SetBkColor SetBkMode StrokeAndFillPath DeleteObject
GetStockObject
0092デフォルトの名無しさん2005/11/19(土) 17:02:00
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第17章 テキストとフォント 17.6 おもしろテクニックの数々
17.6.3 4つのサンプルプログラム
Chap17\FontClip
FONTCLIP.C -- Using Path for Clipping on Font
【仕様】
アウトラインフォントから定義したパスでクリッピング領域を設定
クリッピング領域にランダムな色でBezierスプライン曲線を描画
【備考】
SelectObject GetTextExtentPoint32 BeginPath TextOut EndPath
SelectClipPath CreatePen PolyBezier DeleteObject GetStockObject
0093デフォルトの名無しさん2005/11/23(水) 20:59:24
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第18章 メタファイル 18.1 古いメタファイルフォーマット
18.1.1 メモリメタファイルの簡単な例
Chap18\Metafile
METAFILE.C -- Metafile Demonstration Program
【仕様】
メタファイルに図形を描画して
これを使ってイメージを100個表示する。
【備考】
CreateMetaFile CreateSolidBrush Rectangle MoveToEx LineTo
SelectObject Ellipse CloseMetaFile DeleteObject
SetMapMode MM_ANISOTROPIC SetWindowExtEx SetViewportExtEx
SetWindowOrgEx PlayMetaFile DeleteMetaFile

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第18章 メタファイル 18.2 拡張メタファイル
18.2.1 基本的な手順
Chap18\Emf1
EMF1.C -- Enhanced Metafile Demo #1
【仕様】
拡張メタファイルを作成し表示する最小限のプログラム
【備考】
CreateEnhMetaFile Rectangle MoveToEx LineTo CloseEnhMetaFile
0094デフォルトの名無しさん2005/11/23(水) 21:00:18
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第18章 メタファイル 18.2 拡張メタファイル
18.2.1 基本的な手順
Chap18\Emf2
EMF2.C -- Enhanced Metafile Demo #2
【仕様】
ディスクに拡張メタファイルを作成し
ディスクのメタファイルからイメージを表示する。
【備考】
CreateEnhMetaFile Rectangle MoveToEx LineTo CloseEnhMetaFile
DeleteEnhMetaFile GetClientRect GetEnhMetaFile PlayEnhMetaFile

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第18章 メタファイル 18.2 拡張メタファイル
18.2.3 メタファイルとGDIオブジェクト
Chap18\Emf3
EMF3.C -- Enhanced Metafile Demo #3
【仕様】
EMF2と同様のプログラム
デフォルト以外のペンとブラシを使う
【備考】
CreateEnhMetaFile SelectObject CreateSolidBrush ExtCreatePen
GetVersion Rectangle MoveToEx LineTo DeleteObject GetStockObject
CloseEnhMetaFile DeleteEnhMetaFile GetClientRect GetEnhMetaFile
PlayEnhMetaFile
0095デフォルトの名無しさん2005/11/23(水) 21:00:47
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第18章 メタファイル 18.2 拡張メタファイル
18.2.4 メタファイルとビットマップ
Chap18\Emf4
EMF4.C -- Enhanced Metafile Demo #4
【仕様】
メタファイルにビットマップを描画する。
【備考】
CreateEnhMetaFile LoadBitmap GetObject CreateCompatibleDC
SelectObject StretchBlt DeleteDC DeleteObject CloseEnhMetaFile
DeleteEnhMetaFile GetClientRect GetEnhMetaFile PlayEnhMetaFile

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第18章 メタファイル 18.2 拡張メタファイル
18.2.5 メタファイルの列挙
Chap18\Emf5
EMF5.C -- Enhanced Metafile Demo #5
【仕様】
EMF3で作ったメタファイルのイメージをメタファイルの列挙で表示する。
【備考】
PlayEnhMetaFileRecord GetClientRect GetEnhMetaFile EnumEnhMetaFile
DeleteEnhMetaFile
0096デフォルトの名無しさん2005/11/23(水) 21:01:15
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第18章 メタファイル 18.2 拡張メタファイル
18.2.5 メタファイルの列挙
Chap18\Emf6
EMF6.C -- Enhanced Metafile Demo #6
【仕様】
EMF3で作ったメタファイルのイメージをメタファイルの列挙で表示する。
この時メタファイルの内容を一部変更する。
【備考】
CopyMemory PlayEnhMetaFileRecord GetClientRect GetEnhMetaFile
EnumEnhMetaFile DeleteEnhMetaFile

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第18章 メタファイル 18.2 拡張メタファイル
18.2.6 イメージの埋め込み
Chap18\Emf7
EMF7.C -- Enhanced Metafile Demo #7
【仕様】
既存のメタファイルへの他のイメージの埋め込み
【備考】
PlayEnhMetaFileRecord SelectObject GetStockObject ExtCreatePen
Ellipse DeleteObject GetEnhMetaFile GetEnhMetaFileHeader
CreateEnhMetaFile EnumEnhMetaFile CloseEnhMetaFile
DeleteEnhMetaFile GetClientRect PlayEnhMetaFile
0097デフォルトの名無しさん2005/11/23(水) 21:02:38
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第18章 メタファイル 18.2 拡張メタファイル
18.2.7 拡張メタファイルビューア、プリンタ
Chap18\EmfView
EMFVIEW.C -- View Enhanced Metafiles
【仕様】
クリップボードとの間でメタファイルをやり取りする。
メタファイルをロード、保存、印刷する。
メタファイルの情報を表示する。
【備考】
GetEnhMetaFilePaletteEntries CreatePalette GetMenu
EnableMenuItem IsClipboardFormatAvailable GetOpenFileName
DeleteEnhMetaFile SetCursor LoadCursor ShowCursor
GetSaveFileName CopyEnhMetaFile PrintDlg GetDeviceCaps
StartDoc StartPage PlayEnhMetaFile EndPage EndDoc
DeleteDC GetEnhMetaFileDescription GetEnhMetaFileHeader
OpenClipboard EmptyClipboard SetClipboardData CloseClipboard
GetClipboardData SelectPalette RealizePalette GetClientRect
ReleaseDC UpdateColors DeleteObject
0098デフォルトの名無しさん2005/11/23(水) 21:03:06
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第18章 メタファイル 18.2 拡張メタファイル
18.2.8 正確なメタファイルイメージの表示
Chap18\Emf8
EMF8.C -- Enhanced Metafile Demo #8
EMF.C -- Enhanced Metafile Demonstration Shell Program
【仕様】
メタファイルを使って6インチの定規を表示する。
【備考】
GetVersion SelectObject CreatePen Rectangle MoveToEx LineTo
FillMemory SelectObject SetTextAlign SetBkMode DeleteObject
GetStockObject CreateEnhMetaFile GetDeviceCaps CloseEnhMetaFile
DeleteEnhMetaFile GetEnhMetaFileHeader PlayEnhMetaFile
StartDoc StartPage EndPage EndDoc DeleteDC
SetCursor LoadCursor ShowCursor

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第18章 メタファイル 18.2 拡張メタファイル
18.2.8 正確なメタファイルイメージの表示
Chap18\Emf9
EMF9.C -- Enhanced Metafile Demo #9
【仕様】
EMF8で作ったメタファイルを使って6インチの定規を表示する。
正しい大きさで印刷されるように改良
【備考】
GetDeviceCaps GetEnhMetaFile GetEnhMetaFileHeader
PlayEnhMetaFile DeleteEnhMetaFile
0099デフォルトの名無しさん2005/11/23(水) 21:03:42
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第18章 メタファイル 18.2 拡張メタファイル
18.2.9 拡大/縮小とアスペクト比
Chap18\Emf10
EMF10.C -- Enhanced Metafile Demo #10
【仕様】
EMF8で作ったメタファイルを使って定規を表示する。
画面に合わせた大きさで表示するがアスペクト比は維持する。
【備考】
GetDeviceCaps GetEnhMetaFile PlayEnhMetaFile DeleteEnhMetaFile

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第18章 メタファイル 18.2 拡張メタファイル
18.2.9 拡大/縮小とアスペクト比
Chap18\Emf11
EMF11.C -- Enhanced Metafile Demo #11
【仕様】
マッピングモードを使ってメタファイルを作成し
6インチの定規を表示する。
【備考】
SelectObject CreatePen GetVersion Rectangle MoveToEx LineTo
FillMemory SelectObject CreateFontIndirect SetTextAlign
SetBkMode DeleteObject GetStockObject CreateEnhMetaFile
SetMapMode CloseEnhMetaFile DeleteEnhMetaFile GetDeviceCaps
GetEnhMetaFile GetEnhMetaFileHeader PlayEnhMetaFile
0100デフォルトの名無しさん2005/11/23(水) 21:04:21
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第18章 メタファイル 18.2 拡張メタファイル
18.2.11 マッピングと再生
Chap18\Emf12
EMF12.C -- Enhanced Metafile Demo #12
【仕様】
メタファイル作成後にMM_HIMETRICのマッピングモードを使って
6インチの定規を表示する。
【備考】
GetVersion SelectObject CreatePen Rectangle MoveToEx LineTo
FillMemory CreateFontIndirect SetTextAlign SetBkMode TextOut
DeleteObject GetStockObject CreateEnhMetaFile GetDeviceCaps
CloseEnhMetaFile DeleteEnhMetaFile SetMapMode MM_HIMETRIC
SetViewportOrgEx DPtoLP GetEnhMetaFile GetEnhMetaFileHeader PlayEnhMetaFile

【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第18章 メタファイル 18.2 拡張メタファイル
18.2.11 マッピングと再生
Chap18\Emf13
EMF13.C -- Enhanced Metafile Demo #13
【仕様】
EMF11で作ったメタファイルをロードし6インチの定規を表示する。
(メタファイルの作成/表示の両方でマッピングモードを使う。)
【備考】
SetMapMode MM_HIMETRIC SetViewportOrgEx DPtoLP GetEnhMetaFile
GetEnhMetaFileHeader PlayEnhMetaFile DeleteEnhMetaFile
0101デフォルトの名無しさん2005/12/03(土) 18:37:50
【書名】
プログラミングWindows第5版 / Charles Petzold, 1998
第19章 MDI 19.2 サンプルプログラム
Chap19\MDIDemo
MDIDEMO.C -- Multiple-Document Interface Demonstration
【仕様】
MDIのサンプル
"Hello,World!"を表示するウインドウと
ランダムな色とサイズの四角形を表示するウインドウ
【備考】
LoadMenu GetSubMenu TranslateMDISysAccel DestroyMenu
IDM_FIRSTCHILD MDICLIENT CLIENTCREATESTRUCT
WM_MDICREATE MDICREATESTRUCT WM_MDIGETACTIVE WM_QUERYENDSESSION WM_MDIDESTROY
WM_MDITILE WM_MDICASCADE WM_MDIICONARRANGE EnumChildWindows
GetWindow GW_CHILD GW_OWNER DefFrameProc WM_MDIRESTORE
HeapAlloc SetWindowLong GetParent GetWindowLong GetMenu CheckMenuItem
SetTextColor GetClientRect DrawText WM_MDIACTIVATE WM_MDISETMENU DrawMenuBar
HeapFree SetTimer CreateSolidBrush SelectObject Rectangle KillTimer
■ このスレッドは過去ログ倉庫に格納されています