文字コードのメモ

Posted on Mon 03 December 2007 in Windows

ASCII文字以外の知識があいまいなのでメモ

ASCII 0x00-0x7fの値で表される文字コード

マルチバイト文字 1ビットと2ビットが混じっている形式
Shift-JIS
EUC-JP
ISO-2022-JP
UTF-8
一バイト目が0x80-0xffで始まる。
int isleadbyte(int c) マルチバイトの一文字目を判定する。
これが0以外の値を返すとき後ろの値も一緒に扱うとうまくいくようだ。

ワイド文字 すべて2ビット(Windowsでは)の形式 wchar_tであらわす。
UTF-16

TCHAR 状況にあわせてマルチバイト・ワイドに切り替わってくれる型


デバッグ用のウィンドウ

Posted on Wed 31 October 2007 in Windows

デバッグ情報の表示用にウィンドウをもう1つ作ろうと思って
もう1つCreateWindowでつくってみたが・・・

タスクバーに表示はされるが、肝心のウィンドウが出てこない・・・
同一プロセスではだめなのか。。。と考えてしまったが

CW_USEDEFAULT + 600
とかやってたのがまずかったみたい、ウィンドウがどっかに行ってたみたいだ・・・・

CW_USEDEFAULT
にしたら出てきた。

f:id:hiroki0:20071101005339p:image


Vista用のアイコン

Posted on Sat 16 June 2007 in Windows

Windows Vistaでは、256x256までのPNG圧縮の、アイコンを扱える。
これは、普通にコンパイルしようとすると
error RC2176 : old DIB in・・・
というエラーになるので、別の方法をとる必要があります。
下の2つの方法があります。

・VisualStadioのパッチを当てる
・ダミーのアイコンでコンパイルしておき、後に入れ替える

2番目のダミーのアイコンを使用する方法を、解説します。

まず、IcoFXなどでVista用のアイコンの作製を行います。
『IcoFX』http://icofx.xhost.ro/
自分は、このとき256x256と46x46,32x32,16x16のサイズも一緒に作っておきました。
こうするとXPでもアイコンが表示されるようです。

次に、ReplaceVistaIcon.exeをつかってアイコンを入れ替えました。
『ReplaceVistaIcon.exe』http://www.rw-designer.com/compile-vista-icon …


Continue reading

IEコンポーネント

Posted on Thu 14 June 2007 in Windows

IEコンポーネントを使う場合の注意

VC++2005の場合
CreateWindow( \"AtlAxWin80\", \"Shell.Explorer.2\", ・・・・

VC++2003.netの場合
CreateWindow( \"AtlAxWin71\", \"Shell.Explorer.2\", ・・・・


WinAPIによる非矩形ウィンドウの実現

Posted on Thu 31 May 2007 in Windows

基本的な流れは、以下の通り。

  1. リージョンを作る。
  2. SetWindowRgnでリージョンの形に添ったウィンドウの生成。

SetWindowRgnの第一引数は、ウィンドウハンドル、
第二引数は、リージョン、
第三引数は、再描画するかどうか これだけでok

・ビットマップからリージョンを作る
http://techtips.belution.com/ja/vc/0010/
↑で、画像からリージョンを作る方法を説明している。

DDBは、デバイスに依存するビットマップ
・直接加工できない
・ハードウェア処理に適している
・そのため、ハードウェアごとに形式が異なることがある

DIBは、デバイスに依存しないビットマップ
・1ドットにアクセスできる
BMPファイルからの変換またはその逆も簡単