< July 2005 | August 2005 | September 2005 >

August 15, 2005

複数行のツールチップ

TTM_SETMAXTIPWIDTH を送る。忘れないようにメモメモ。

lResult = SendMessage(          // returns LRESULT in lResult
    (HWND) hWndControl,         // handle to destination control
    (UINT) TTM_SETMAXTIPWIDTH,  // message ID
    (WPARAM) wParam,            // = 0; not used, must be zero
    (LPARAM) lParam             // = (LPARAM) (INT) iWidth;
);


August 5, 2005

vbNullString 実験セット

vbNullString の話が思ったより反響あったので(リンクしていただいていたりするし)DLLとの文字列のやり取りあたりをちゃんと実験してみることにした。ライオン君からの受け売りじゃなんだしね。

結論

  • vbNullString ⇒ NULLポインタになる
  • vbNullChar ⇒ 長さ0の文字列になる
  • "" ⇒ 長さ0の文字列になる
  • String$(1, vbNullChar) ⇒ 長さ0の文字列になる

DLL に渡されるときは vbNullString と "" は区別されていることが分かる。あ、いかん、また混乱してきた。

実験に使ったモジュールとかソースとかほしい方は持ってってください。

vbNullString.lzh(23,927byte)

August 2, 2005

Windows AP にコンソール出力を提供するクラス

表題の通りです。コメントもありません。DEBUGCONSOLEが定義されている場合のみコンソールが作成されます。

CDebugConsole クラスのメンバを以下に示します。

GetInstance
唯一のインスタンスへの参照を返します
SetConsoleTitle
コンソールのタイトルバー文字列を更新します
Printf
標準出力に書式付きで出力します
Errorf
標準エラー出力に書式付きで出力します
VPrintf
引数リストへのポインタを使用して、標準出力に書式付きで出力します
VErrorf
引数リストへのポインタを使用して、標準エラー出力に書式付きで出力します
Dump
渡されたデータを16進でダンプした結果を標準出力に出力します

CDebugConsole クラスのインスタンスは1個のみの存在とし、CDebugConsole::GetInstance () で参照を取得します。

int n = 10;
CDebugConsole::GetInstance ().Printf ("n は %d です。", n);

また、C ソースにインクルードした場合に同等の機能を提供する関数も定義しています。

続きを読む...