Windows API で Vb を拡張しよう
掲載している内容は、基本的にフリー扱いですが、転載は禁止します。
でも堅いことは言いません、抜粋して自由にお使い下さい。
ここに紹介するサンプルを使用して生じたいかなる障害、損害に対して
Spector2k は一切の責任を負わないものとします。
最終更新日:2001年8月4日
※ドライブ、フォルダ、ファイル操作
あのファイルはどこだっけ? | SearchTreeForFile() | imagehlp | |
子階層を含むディレクトリの作成 | MakeSureDirectoryPathExists() | imagehlp | |
スペシャルフォルダの求め方 | SHGetSpecialFolderLocation() | shell32 | |
SHGetPathFromIDList() | shell32 | ||
Windows,System,Tempフォルダの求め方 | GetWindowsDirectory() | kernel32 | |
GetSystemDirectory() | kernel32 | ||
GetTempPath() | kernel32 | ||
ドライブレターの取得とドライブタイプ | GetLogicalDrives() | kernel32 | |
GetDriveType() | kernel32 | ||
初期化ファイル(.INI)の読み書き | GetPrivateProfileSection() | kernel32 | |
WritePrivateProfileSection() | kernel32 |
※メモリ関連
メモリ情報の取得 | GlobalMemoryStatus() | kernel32 | |
メモリ内容の複写 | RtlMoveMemory() | kernel32 | |
文字列ポインタを操作してのソート | RtlMoveMemory() | kernel32 | |
timeGetTime() | winmm |
※描画処理関連
ベジェ曲線、ベジェ曲面 | PolyBezier() | gdi32 | |
点線矩形の描き方 | DrawFocusRect() | user32 | |
文字列を右寄せや中央揃えで出力(その1) | GetTextALIGN() | gdi32 | |
SetTextALIGN() | gdi32 | ||
文字列を右寄せや中央揃えで出力(その2) | DrawText() | user32 | |
直線軌跡の座標の取得 | LineDDA() | gdi32 | |
LineDDAProc() | |||
レイヤードウィンドウの作成 | SetLayeredWindowAttributes() | user32 | |
グラデーションの作成 | GradientFill() | msimg32 |
※画像処理関連
画像の透過処理(その1) | BitBlt() | gdi32 | |
GetPixel() | gdi32 | ||
SetPixel() | gdi32 | ||
画像の透過処理(その2) | GetPixel() | gdi32 | |
TransparentBlt() | msimg32 | ||
画像の透過処理(その3) | CreateEllipticRgnIndirect() | gdi32 | |
DeleteObject() | gdi32 | ||
GetRgnBox() | gdi32 | ||
OffsetRgn() | gdi32 | ||
SelectClipRgn() | gdi32 |
※コントロール(ウィンドウ)操作
複数コントロールを一括して移動 | BeginDeferWindowPos() | user32 | SWP_NOACTIVATE SWP_NOMOVE SWP_NOSIZE SWP_NOZORDER |
DeferWindowPos() | user32 | ||
EndDeferWindowPos() | user32 | ||
GetTickCount() | kernel32 | ||
コンボボックスのリスト幅を変更 | SendMessage() | user32 | CB_SETDROPPEDWIDTH |
リストボックスに横スクロールバーをつける | SendMessage() | user32 | LB_SETHORIZONTALEXTENT |
指定した幅、高さをもつウィンドウの作成 | AdjustWindowRectEx() | user32 | GWL_EXSTYLE GWL_STYLE |
GetClientRect() | user32 | ||
GetWindowLong() | user32 | ||
MDI子ウィンドウのカスケード、タイル表示 | CascadeWindows() | user32 | GW_CHILD GW_HWNDNEXT MDITILE_HORIZONTAL MDITILE_SKIPDISABLED MDITILE_VERTICAL |
GetClassName() | user32 | ||
GetClientRect() | user32 | ||
GetWindow() | user32 | ||
TileWindows() | user32 | ||
APIを使ってツールチップコントロールを拡張 | CreateWindowEx() | user32 | |
InitCommonControls() | comctl32 | ||
タイマーを止めないメッセージボックス | MessageBox() | user32 |
※マウス操作
マウスホバー、マウスリーブの実装 | ReleaseCapture() | user32 | |
SetCapture() | user32 |
※サブクラス化
スクロールバーのサブクラス化 | CallWindowProc() | user32 | WM_VSCROLL |
GetWindowLong() | user32 | ||
SetWindowLong() | user32 | ||
マウスホイールの回転イベントの取得 | CallWindowProc() | user32 | WM_MOUSEWHEEL |
GetWindowLong() | user32 | ||
mouse_event() | user32 | ||
SetWindowLong() | user32 |
※メッセージ処理
アイドルイベントの実装 | PeekMessage() | user32 |
これらのサンプルを使用しての感想や、質問は 掲示板や、 らくがき帳に書きとめて頂けるとうれしいです。