balor と WIN32 API の連携
balor は WIN32 API と連携しやすいように作られています。
balor の多くのクラスは WIN32 API に登場するハンドルのラッパーとして振舞います。
例えば Control クラスとその派生クラスは HWND ハンドルのラッパーです。
このようなラッパークラスでは HWND ハンドルへの自動変換(operator HWND())が用意されます。
Frame frame(L"test"); Button button; // operator HWND() は null チェックにも使用できる。 if (!button) { button = Button(frame, 0, 0, 0, 0, L"button"); // HWND を引数に取る WIN32 API にそのまま渡す事ができる。 HWND parent = GetParent(button); }
以下は、クラスと WIN32 API ハンドルの対応表です。
クラス | ハンドル |
---|---|
Bitmap | HBITMAP |
Brush | HBRUSH |
Cursor | HCURSOR |
Font | HFONT |
Graphics | HDC |
Icon | HICON |
ImageList | HIMAGELIST |
Pen | HPEN |
Region | HRGN |
Control とその派生クラス | HWND |
Menu::Item | HMENU |
FileStream | HANDLE |
Registry | HKEY |
Module | HMODULE/HINSTANCE |