CreateCaret

システムキャレット用の新しい形状を作成し、キャレットの所有権を指定したウィンドウに割り当てる。キャレット形状は線、ブロック、またはビットマップにできる。

CreateCaret hWnd, hBitmap, nWidth, nHeight

hWnd : [intptr] 型: HWND キャレットを所有するウィンドウへのハンドル。
hBitmap : [intptr] 型: HBITMAP キャレット形状を定義するビットマップへのハンドル。NULL の場合、キャレットは塗りつぶしになる。(HBITMAP) 1 の場合、キャレットはグレーになる。ビットマップハンドルの場合、キャレットは指定されたビットマップになる。ビットマップハンドルは CreateBitmapCreateDIBitmap、または LoadBitmap で作成されたものでなければならない。hBitmap がビットマップハンドルの場合、CreateCaret は nWidth と nHeight を無視する。ビットマップ自体が幅と高さを定義する。
nWidth : [int] 型: int キャレットの幅 (論理単位)。0 の場合、システム定義のウィンドウ境界の幅に設定される。hBitmap がビットマップハンドルの場合、CreateCaret はこのパラメータを無視する。
nHeight : [int] 型: int キャレットの高さ (論理単位)。0 の場合、システム定義のウィンドウ境界の高さに設定される。hBitmap がビットマップハンドルの場合、CreateCaret はこのパラメータを無視する。

(プラグイン / モジュール : user32.dll)

解説

システムキャレット用の新しい形状を作成し、キャレットの所有権を指定したウィンドウに割り当てる。キャレット形状は線、ブロック、またはビットマップにできる。

[戻り値]
型: BOOL 関数が成功した場合、戻り値は 0 以外。
関数が失敗した場合、戻り値は 0。拡張エラー情報を取得するには GetLastError を呼ぶ。

[備考]
nWidth と nHeight
はキャレットの幅と高さを論理単位で指定する。ピクセル単位での正確な幅と高さはウィンドウのマッピングモードによる。CreateCaret
は、所有するウィンドウに関係なく、以前のキャレット形状があれば自動的に破棄する。アプリケーションが ShowCaret
関数を呼んでキャレットを表示するまで、キャレットは非表示である。システムはキューごとに 1
つのキャレットを提供する。ウィンドウはキーボードフォーカスを持っているか、アクティブなときにのみキャレットを作成すべきである。ウィンドウはキーボードフォーカスを失う前または非アクティブになる前にキャレットを破棄すべきである。DPI
仮想化: この API は DPI
仮想化に参加しない。幅と高さのパラメータは、対象ウィンドウに関する論理サイズとして解釈される。呼び出し元スレッドは考慮されない。

情報

プラグイン / モジュールuser32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の user32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_user32_gen2.hs