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 |
これらのサンプルを使用しての感想や、質問は 掲示板や、 らくがき帳に書きとめて頂けるとうれしいです。