知ってると便利な小技集

知っておくと便利な小技を紹介します。

ファイルのプロパティーを表示する

ShellExecuteEx()でファイルやフォルダを右クリックしてプロパティを
選択すると表示されるダイアログを簡単に表示する事ができます。


// 引数 lpFilePath プロパティーを表示するファイルのパス
void ShowPropertyDialog(LPCTSTR lpFilePath)
{
    SHELLEXECUTEINFO shei = { sizeof(SHELLEXECUTEINFO) };
    shei.fMask            = SEE_MASK_INVOKEIDLIST | SEE_MASK_FLAG_NO_UI;
    shei.hwnd             = m_hWnd; // オーナーウィンドウのハンドル
    shei.lpVerb           = _T("properties";);
    shei.lpFile           = lpFilePath;
    ::ShellExecuteEx(&shei);
}


デスクトップのサイズ(位置)を取得する

タスクバーを除いたデスクトップのサイズを知るには
SystemParametersInfo()で取得できます。
これでデスクトップのスクリーン座標がRECT構造体のrcに格納されます。


RECT rc;
::SystemParametersInfo(SPI_GETWORKAREA, 0, &rc, 0);


非MFCでアウトプットウィンドウに出力する

デバッグ情報をアウトプットウィンドウに出力するには_RPT系のマクロを使えば出力できます。
使い方はTRACE系と同じです。


#include <crtdbg.h>

_RPT0(_CRT_WARN, "Output\n");
_RPT1(_CRT_WARN, "string = %s", lpString);


動的にエディットボックスのパスワードスタイルを変更する

SetWindowLong()等でES_PASSWORDスタイルを書き換えても駄目です。
変更するにはSetPasswordChar()を使います。
変更後は領域をInvalidateRect()で更新してやってください。


// 設定
CEdit.SetPasswordChar('*');
CEdit.InvalidateRect(NULL, TRUE);

// 解除
CEdit.SetPasswordChar('\0');
CEdit.InvalidateRect(NULL, TRUE);


< 戻る << HOME ©1999-2002 by Akky, All right reserved.