[トップページ] [星雲紀行] [MLXS] [WPGen] [自作音楽] [モデル] [vi/vim] [tips] [自己紹介]

Windows Programming

目次

  1. このページは
  2. テキスト処理
  3. スクリーンセーバ
    1. Visual Studio 上でのスクリーンセーバ作成方法
    2. スクリーンセーバのエラー:未解決の外部シンボル
    3. Visual Studio のスクリーンセーバTips
    4. 参考URL
  4. icon 作成
  5. setup 作成プログラム
  6. multimedia
  7. tips
  8. 用語
  9. 参考文献・参考ウェブページ

このページは

Windows プログラミングについてのメモ。

[content]

テキスト処理

テキスト処理には整形処理なしで高速なTextOut() と やや負荷があるが、整形機能を持つDrawText() が一般的
TextOut() で何か処理をしようとするとGetTextMetrics() などを 使いまわさねばならず、面倒。

OpenGL なら - wglUseFontBitmaps - wglUseFontOutlines が出来るらしい。また、OpenGL とTextOut DrawText の相性悪い。
要調査。

参考:
[content]

スクリーンセーバ

Visual Studio 上でのスクリーンセーバ作成方法

同様にライブラリをインクルードすればBCC などでも作成可能だと思われるが、試していない。

スクリーンセーバ作成には以下のファイルをインクルード・プロジェクトに追加する。 ライブラリ・インクルードパスを追加しておけばいいのかも知れないが場合によって失敗したのでプロジェクトに追加しておく。

C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Lib
ひょっとすると以下の#pragma の指定でもよいのかもしれない。しかし、成功するときと失敗するときがある。
 #pragma comment(lib, "ScrnSave.Lib")
[content]

スクリーンセーバのエラー:未解決の外部シンボル

エラーとして、

error LNK2019: 未解決の外部シンボル

が表示されたら、このあとに続くライブラリをMSDN で検索し、プロジェクトにそのライブラリを追加する。
エラーが出たシンボルを以下に記載。

  • InitCommonControlsEx
    以下で解決できた。
    #pragma comment(lib, "scrnsave.lib")
    #pragma comment(lib, "comctl32.lib")
  • (scrnsave.lib のエントリポイント。忘れてしまった。)
[content]

Visual Studio のスクリーンセーバTips

プロパティが表示されない

Visual Studio を入れているときに.NET Framework をアンインストールすると振る舞いがおかしくなる。

[content]
スクリーンセーバのコマンドライン

Windows の設定Dialog などに表示させるためにはコマンドの引数の対応を書いておけばよい。

コマンドライン /c
動作設定ダイアログボックスを出力するようにする。
コマンドライン /s
スクリーンセーバを起動するようにする。
コマンドライン /p
コントロールパネルのスクリーンセーバの窓に表示する。
コマンドライン /a
パスワードの設定をする。

http://miyazaki.ddo.jp/pro/page11.html

[content]
デバッグができない

スクリーンセーバプログラムを作成するときにそのままではVisual Studio がすぐに終了してしまう。
これはコマンドライン引数を正しく指定していなかったためであった。
# スクリーンセーバ実行時にウィンドウのサイズをフルサイズに変更するために WM_MOUSEMOVE イベントを取得しているのかと思った。

Web 上で探したが、この情報を直接見つけることができなかった。
コマンドライン引数の指定は以下の手順で行う。(注意:VisualStudio2003 にての操作)
数週間も悩んでしまった問題。

  1. "プロジェクト"メニューを選択
  2. "PROJECT_NAME のプロパティ" を選択する。
  3. "PROJECT_NAME のプロパティ ページ" が表示される。
  4. タブメニューの"構成プロパティ" 以下の"デバッグ" を選択する。
  5. 表示された設定の"動作"を選択する。
  6. "コマンド引数" が表示され、スクリーンセーバの起動を意味する "s" を指定する。

これでデバッグ時にスクリーンセーバが起動できる。

[content]
出力するファイル名称の指定
  1. "プロジェクト"メニューを選択
  2. "PROJECT_NAME のプロパティ" を選択する。
  3. "PROJECT_NAME のプロパティ ページ" が表示される。
  4. タブメニューの"リンカ" 以下の"全般" を選択する。
  5. "出力ファイル" にて出力するファイル名称の指定を行う。
[content]

参考URL

[content]

icon 作成

Icon を作成したプログラムに適用させるにはIcon ファイルを作成し、プログラムに適用させる必要がある。

    作成適用方法
  • 何か画像ファイルを作成する。作成時はJPEG やBMP などなんでもよい。 ただし視認性のため、できれば正方であることが望ましい。
  • Icon ぱくらなどで.ico ファイルを元画像から作成する。
  • Visual Studio 2003 では、"リソースビュー"を開く
  • "リソースの追加"を選択
  • "Icon"を選択
  • 新規作成を押す
  • "リソースビュー"にアイコンが追加されている。
  • 追加されたアイコンのプロパティを見てファイル名を確認
  • 記載されているファイルがsln ファイルのあるディレクトリにあるのを確認。
  • いったんVisual Studio を終了する。
  • 当該ファイルを削除し、自分が作成したアイコンファイルに置き換える。
  • Visual Studio を起動する。
  • コンパイルすると出力ファイルのアイコンが指定したものになっている。

補足1:なぜか作成したアイコンを直接VS へインポートできない。 補足2:VS6.0 では確かリソースIDが"IDR_MAINFRAME"であればよかった。

[content]

Setup 作成プログラム

作成したプログラムを配布するときにセットアッププログラムが あると、設定を一度に行ってくれて便利になる。
そのWindows プログラムのセットアップをスクリプトで作成できる フリーのソフトがInnoSetup。
商用利用も可能。
英語版だが、日本語セットアップを作成するスクリプトも 作成してくれた方がいるので日本語のセットアップ環境も作成可能。


参考:
[content]

Multimedia

マルチメディア(AVI, mp3 など)の再生にはMCI ライブラリ群を使用すると とても楽にプログラムができるらしい。
MCIWndPlay() 関数を呼ぶだけで実装できるらしい。


参考:

[content]

tips

_

[content]

用語

[content]

参考文献・参考ウェブページ

[content]
ご意見、ご感想、誤字、間違い等、お気づきの点がありましたら KGussan@Gmail.com まで連絡ください。
このウェブページの注意・免責事項 Copyright (C) 2004-2012 KGussan. [トップページ]
[PR:元国税局勤務の起業家向け、遺産相続の相談なら植村洋税理士事務所:一時間無料税理士相談。お気軽に。]