小ネタメモ

職場にC++Builder 2007が届いたのですが、まだ購入手続きに進んでないはずなのに届いてしまった不思議。見積もりと間違えて発注してしまった様子。その処理に手間取ってて今しばらくオアズケです…。


今日のところは自分で忘れがちな小ネタメモでお茶を濁します。

TListBoxのフォーカス点線削除

OwnerDrawにしてもフォーカスの点線は描画されてしまうので、それを消す(見えなくする)方法。XORで描画されるので、先にXORで描画しておくだけ。

    if( State.Contains( odFocused)){
        cvs->DrawFocusRect( Rect);
    }

二重起動防止

あんまりC++Builderと関係ないけど、よく使うので。

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    // mutex作成
    HANDLE hMtx = CreateMutex( NULL, false, "mutexName");
    if( GetLastError() == ERROR_ALREADY_EXISTS){
        // 終了処理,またはウインドウ探してアクティブに
        return 1;
    }
    try// mutex削除
    CloseHandle( hMtx);
}

Set (Delphi組み込み型Set)

これもよく出てくるのに使い方を忘れる。

Set& Clear();
Clear メソッドは,Set オブジェクトからすべての要素をクリアします。
bool Contains(const T el) const
Contains メソッドは,Set が特定の要素を持っているかどうかを調べます。
bool fastcall Empty() const
Empty メソッドは,Set にメンバーが含まれているかどうかを問い合わせます。
operator <<
指定された要素を Set に追加します。
operator >>
指定された要素を Set から削除します。