VBプログラミング基礎コース
APIAPIテキストブラウザとは
API関数宣言のデータ型と「タイプセーフティ」
一定の構造
いくつかの API 関数セットを要約します: 制御関数とメッセージ関数、ハードウェア関数とシステム関数、メニュー関数、描画関数
APIとは
まず最初に、API が何なのかを全員に伝える必要があります。いわゆる API は、もともと C および C++ プログラマー向けに作成されました。簡単に言うと、API は DLL と呼ばれる追加のダイナミック リンク ライブラリ ファイルに含まれる関数の一種です。標準の定義によれば、API は Windows の 32 ビット アプリケーション プログラミング インターフェイスであり、プログラマーがさまざまな種類のプログラミング言語を使用して実行するプログラムをコンパイルできるようにする一連の非常に複雑な関数、メッセージ、および構造です。システム上の Windows 95 および Windows NT アプリケーション。 VCを勉強したことがあればAPIは問題ないと言えるでしょう。しかし、VCを学んでいない場合、あるいはWindows95の構造に慣れていない場合、APIを学ぶのは非常に難しいものであると言えます。
WINDOWS の SYSTEM フォルダを開くと、DLL という名前の追加ファイルがたくさんあることがわかります。 DLL には 1 つの API 関数だけではなく、数十、場合によっては数百の API 関数が含まれています。私たち全員がそれをマスターできるでしょうか? 答えはノーです。マスターするのは不可能です。しかし実際には、それらをすべてマスターする必要はありません。Windos システム自体に付属する API 関数をマスターすることに集中する必要があります。ただし、VB 自身の関数を複製する関数も破棄する必要があります。たとえば、VB
etAttr コマンドはファイル属性を取得でき、SetAttr コマンドはファイル属性を設定できます。 API にも対応する関数があります
GetFileAttributes と SetFileAttributes のパフォーマンスは同様です。そうやって計算すると、500か600しか残りません。はい、かなりの数です。しかし、あえて言えるのは、100個を身近にマスターすれば、あなたのプログラミングレベルは少なくとも今の2倍は上がるということです。 VBとWINDOWSは近い関係だと言われていますが、私はAPIの方が近いと思っています。
窓。 API を学習すると、まず WINDOWS アーキテクチャを理解できるようになります。この利益を得るのは簡単ではありません。
API に依存しなかったらどうなるでしょうか? これらのほとんどは高度なプログラミングの本であると言えます (もちろん、これは本のタイトルが「上級」であるからではなく、「内容」が「上級」であるためです)。この本は、ある程度の VB の基礎を持った読者を対象としています)、最初の質問は通常 API から始まります。そのため、APIを学ばないとジュニアレベルに留まり、上がれない可能性が高いと言えます。唯一の方法は、他の人に助けを求めることかもしれません。私は死にそうです、助けに来てください、これをどうすればいいですか、あれはどうすればいいですか? もちろん、今ネットには善良な人が多すぎますか? (私も含めて、ふふ)しかし、この方法では良い作品を手に入れることはできないことを理解してください。なぜなら、この知識がなければ全体のデザインコンセプトを頭の中で形成することができないからです。
APIテキストブラウザ[return]
多くの API 関数は非常に長いです。 APIDdeClientTransaction 関数の例を次に示します。
DeclareFunctionDdeClientTransactionLib"user32"(pDataAsByte,ByValcbDataAsLong,ByValhConvAsLong,ByValhszItemAsLong,ByValwFmtAsLong,ByValwTypeAsLong,ByValdwTimeoutAsLong,pdwResultAsLong)AsLong
おお! API に触れたことがない人は、そんなに長い間、怖気づいていると思います。学習を続けるべきかどうか考えているかもしれません。しかし、心配しないでください。幸いなことに、Microsoft のデザイナーは便利なツールを提供してくれます。これが API です。
テキストビューア。
API テキスト ビューアを使用すると、プログラムに必要な関数宣言、構造体の型、定数を簡単に見つけて、それをクリップボードにコピーし、最後に VB プログラムのコード セグメントに貼り付けることができます。ほとんどの場合、プログラムに必要な関数、構造体、定数の3点さえ決まれば、APIテキストブラウザ上の上記操作でプログラムセグメントに追加することができ、プログラム内で利用できるようになります。 。 関数。これらは API を学習するための最も基本的な常識的な質問であり、API の膨大なシステム コンテンツに比べればはるかに少ないものです。私たちは将来どこでエネルギーを浪費するのでしょうか(これは決して無駄ではありません)。
いつどの関数を使用するか、いつどの構造体型を使用するか、いつどの定数を使用するか。
API関数宣言
振り返ってみましょう。 VB で関数を宣言するにはどうすればよいですか? この記事を読んでいるなら、この質問には必ず答えられると思います。以下は、よく知られている関数宣言です。
FunctionSetFocus(ByValhwndAsLong)AsLong
つまり、このコード行は SetFocus という名前の関数を定義します。この関数には Long データ型のパラメーターがあり、関数が実行されると、値によって渡されます (ByVal)。
API 関数の宣言も非常に似ています。たとえば、API の SetFocus 関数は次のように記述されます。
DeclareFunctionSetFocusLib"user32"Alias"SetFocus"(ByValhwndAsLong)AsLong
もう少し複雑です。はい、もう少し複雑です。ただし、これらの追加部分を除いて、他の部分は以前に学習した内容と同じであると言えます。プログラム内の関数呼び出しについても同様です。のように:
DimdlAsLong
dl&=SetFoucs(Form1.Hwnd)
しかし、一つだけ明らかなことがある。自分で書いた動作の仕組みが見えるプログラムではないし、VBのようなものでもありません。
組み込み関数と同様に、その使用方法は VB のオンライン ヘルプから確認できます。 VB以外の情報を学んだり調べたりするしか方法はありません。
Declare ステートメントは、ダイナミック リンク ライブラリ (DLL) 内の外部プロシージャへの参照をモジュール レベルで宣言するために使用されます。このためには、API 関数宣言でこのステートメントを記述する必要があることを覚えておく必要があります。
Iib は、宣言されたプロシージャまたは関数を含むダイナミック リンク ライブラリまたはコード リソースを示します。言い換えれば、機能やプロセスがどこから来たのかという疑問を説明します。
上の例のように、SetFocusLib "user32" は、関数 SetFocus が user32.dll ファイルからのものであることを示します。主な DLL ダイナミック リンク ライブラリ ファイルは次のとおりです。
user32.dllWindows 管理。アプリケーションのユーザー インターフェイスを生成および管理します。
GDI32.dll グラフィックス デバイス インターフェイス。 Windows デバイス用のグラフィック出力を生成する
Kernel32.dll システム サービス。オペレーティング システムのコンピュータ リソースにアクセスします。
DLL ファイルが Windows フォルダーまたはシステム フォルダーにない場合は、そのソースを関数内に記述する必要があることに注意してください (
パス)。たとえば、SetFocusLib "c:/Mydll/user32"
関数宣言内のエイリアスはオプションです。呼び出されるプロシージャがダイナミック リンク ライブラリ (DLL) 内で別の名前 (エイリアス) を持つことを示します。たとえば、エイリアス「SetFocus」は、User32.dll の SetFocus 関数の別の名前が、
フォーカスを設定します。なぜ 2 つの名前は同じなのでしょうか? もちろん、異なる場合もあります。多くの場合、Alias で記述される関数名、つまりエイリアスの最後の文字は文字 A であることがよくあります。たとえば、SetWindowsText 関数の別の名前は次のとおりです。
SetWindowsTextA。エイリアス「SetWindowsTextA」として表現されます。この A は、関数が ANSI バージョンに属することを示す、設計者が使用する命名規則にすぎません。
理論上、エイリアスは別の名前で API を呼び出すための機能的なメソッドを提供します。エイリアスを指定すると、Declare ステートメントの後の関数に従って関数が呼び出されますが、実際の関数呼び出しではエイリアスが最初に選択されます。たとえば、次の 2 つの関数 (Function、ABCD) 宣言は有効であり、同じ SetFocus 関数を呼び出します。
DeclareFunctionSetFocusLib"user32""SetFocus"(ByValhwndAsLong)AsLong
ABCDSetFocusLib"user32"Alias"SetFocus"(ByValhwndAsLong)AsLong を宣言します
Alias を選択する場合は、エイリアスの大文字と小文字に注意する必要があることに注意してください。Alias を選択しない場合、関数名は大文字と小文字に注意する必要があり、変更できません。もちろん、多くの場合、関数宣言は API から直接行われるため、
これはテキスト ブラウザからコピーされたものであるため、このエラーが発生する可能性は非常に低いですが、これを知っておく必要があります。
最後に、API 宣言 (構造体と定数を含む) はフォームまたはモジュールの "GeneralDeclarations" セクションに配置する必要があります。
データ型と「タイプセーフティ」
API関数で使用するデータ型は基本的にVBと同じです。ただし、WIN32のAPI関数としてはIntegerは存在しません
データ型。もう 1 つのポイントは、ブール型データ型は API 関数では認識できないことです。 Variant データ型は、DataAsAny などの API 関数では Any の形式で表示されます。この API 関数のパラメータとして任意のパラメータ タイプを渡すことができるということですが、これにはいくつかの欠点があります。その理由は、これによりターゲット パラメーターのすべての型チェックがオフになるためです。これにより、さまざまなタイプのパラメータ呼び出しでエラーが発生する可能性が自然に生じます。
厳密な型チェックを強制し、上記の問題を回避するには、関数内で上記の Alias テクノロジを使用することが 1 つの方法です。たとえば、API 関数 GetDIBits には別の宣言メソッドを使用できます。次のように:
GetDIBits 関数のプロトタイプ:
PublicDeclareFunctionGetDIBitsLib"gdi32"Alias"GetDIBits"(ByValaHDCAsLong,ByValhBitmapAsLong,ByValnStartScanAsLong,ByValnNumScansAsLong,lpBitsAsAny,lpBIAsBITMAPINFO,ByValwUsageAsLong)AsLong
GetDIBits 関数の変更:
PublicDeclareFunctionGetDIBitsLongLib"gdi32"Alias"GetDIBits"(ByValaHDCAsLong,ByValhBitmapAsLong,ByValnStartScanAsLong,ByValnNumScansAsLong,lpBitsAsLong,lpBIAsBITMAPINFO,ByValwUsageAsLong)AsLong
このコースの前半で学んだ知識により、プロトタイプの GetDIBits 関数または変更された GetDIBitsLong 関数が実際に Alias で指定された元の GetDIBits 関数を呼び出すかどうかはすでにわかります。ただし、この 2 つの違いは、変更された関数で lpBits パラメーターが強制的に Long になることであることがわかります。これにより、関数呼び出しでエラーが発生する可能性が最小限に抑えられます。このアプローチは「安全な型」宣言と呼ばれます。
API 関数でよく見られるデータ型は、Long、String、Byte、Any.... (それだけです) です。
絶え間ない
API 定数については特別なことは何もありません。 VB での次のコードを見てください。
Msg=MsgBox("こんにちは",vbOKCancel)
定数 vbOKCancel の値が 1 に等しいことがわかります。コードの機能に影響を与えることなく、上記のコードを次のように書くことができます。
Msg=MsgBox("こんにちは",1)
ただし、コードを理解するのが難しくなるため、後者のオプションを選択したくないかもしれません。このアプローチは API でも採用されています。 API 定数はイベントの前に初期化して宣言する必要があるだけですが、VB 自体はそれを理解できません。そのコンテンツは引き続き API から取得されます
テキストブラウザ。具体的な形式は以下の通りです。
PublicConstABM_ACTIVATE=&H6
PublicConstRIGHT_CTRL_PRESSED=&H4
PublicConstRPC_E_SERVER_DIED=&H80010007
PrivateConstRPC_S_CALL_FAILED_DNE=1727&
定数の初期化では、GlobalConstABM_ACTIVATE=&H6 など、Global を使用するプログラムもありますが、Public で完全に置き換えることができると思います。以前は Global を使用していましたが、今はあまり使用していません。今はこれを使用し、今はあれを使用すると、プログラム間の一貫性を維持できなくなるか、少なくとも見た目がぎこちなくなります。
構造[戻る]
構造体は C および C++ の言語です。 VB では一般にカスタム データ型と呼ばれます。おそらく多くの友人はすでにそれを知っているでしょう。 API フィールドでは、API のさまざまな構造タイプが私によってまったく定義されていないため、これを構造と呼ぶことを好みます (
カスタマイズされました)。
VB では、API 構造は TYPE....ENDTYPE ステートメントによっても定義されます。たとえば、API では、ポイント構造は次のように定義されます。
PublicTypePOINTAPI
XAsLong' X 座標上の点の座標値 (横軸)
YAsLong'Y座標上の点の座標値(縦軸)
終了タイプ
別の例として、API での長方形 (Rect) 構造の定義は次のとおりです。
PublicTypeRECT
LeftAsLong' 長方形の左上隅の X 座標
TopAsLong' 長方形の左上隅の Y 座標
RightAsLong' 長方形の右下隅の X 座標
BottomAsLong' 長方形の右下隅の Y 座標
終了タイプ
このコンテンツは、API テキスト ブラウザからコピーすることもできます。これらの構造内の変数名は、構造自体に影響を与えることなく、自由に変更できます。つまり、これらのメンバー変数はすべて仮想変数です。たとえば、POINTAPI 構造は次のように変更できます。
PublicTypePOINTAPI
MyXAsLong'X座標上の点の座標値(横軸)
MyYAsLong'Y座標上の点の座標値(縦軸)
終了タイプ
ただし、一般的には、これは必要ありません。構造体自体はデータ型であるため、それを使用する場合は、実際にプログラムで構造体を使用する前に、特定の変数を構造体型として宣言する必要があります。構造体の宣言方法は、他のデータの宣言方法と同じです。たとえば、次のステートメントは、変数 MyPoint を POINTAPI 構造体タイプとして宣言します。
MyPointAsPOINTAPI
構造体のメンバ変数の参照も、構造体の名前の後に「.」を付けて参照するメンバ変数を記述するだけで簡単に行えます。これは、VB でオブジェクトのプロパティを参照するのとよく似ています。たとえば、上で宣言した MyPoint 構造体の X 変数の値を変数 Temp& に代入するとします。
コードは次のとおりです。
Temp&=MyPoint.X
ただし、上記の例の MyPoint を値であると考えてはいけないことに注意することが重要です。値ではなくアドレスです(
ポインタ)。値とアドレスはまったく異なる概念です。構造要件は、WINDOWS 関数、つまりすべての API への参照によって渡されます。
関数では、構造体は ByRef によって渡されます (ByRef は Declare ステートメントのデフォルトの型です)。構造体を渡す場合は、ByVal を使用しないでください。何も得られません。構造体名は実際には構造体へのポインタ (構造体の最初のアドレス) であるため、特定の構造体名を転送するだけで済みます (概要を参照してください。この転送方法を強調するために赤いフォントを使用しました)。
構造体はポインタを転送するため、関数は構造体を直接読み書きします。この機能は、関数の実行結果を構造体にロードするのに非常に適しています。
概要[戻る]
このレッスンで学んだことを要約するために、次の手順を示します。 VB を起動し、新しいプロジェクトを作成し、コマンド ボタンを追加し、次のコードをコード セグメントにコピーして実行します。
PrivateDeclareFunctionGetCursorPosLib"user32"(lpPointAsPOINTAPI)AsLong
PrivateTypePOINTAPI ポイント構造を定義する
XAsLong' X 座標上の点の座標値 (横軸)
YAsLong'Y座標上の点の座標値(縦軸)
終了タイプ
SubPrintCursorPos()
DimdlASLong
DimMyPointAsPOINTAPI
dl&=GetCursorPos(MyPoint)'画面マウスの座標を取得する関数を呼び出します。
Debug.Print"X="&Str(MyPoint.X)&"および"&"Y="&Str(MyPoint.Y)
EndSub
PrivateSubCommand1_Click()
PrintCursorPos
EndSub
出力結果は次のとおりです (実行ごとに異なる結果が得られる場合があります。これは、関数が呼び出されたときの画面上のマウス ポインターの位置によって決まります)。
X=240およびY=151
プログラムでは、GetCursorPos 関数を使用して、画面上のマウス ポインターの位置を取得します。
上記の例では、パラメーターとして渡された MyPpint 構造体の内容が関数呼び出し後に大幅に変更されていることがわかります。これは、構造体が ByRef によって渡されるためです。
一部の API 関数セット [return]
WindowsAPI
1. コントロールとメッセージ機能
AdjustWindowRect ウィンドウ スタイルを指定して、ターゲットのクライアント領域の四角形を取得するために必要なウィンドウ サイズを計算します。
AnyPopup は、画面上にポップアップがあるかどうかを決定します。
ArrangeIconicWindows は、親ウィンドウの最小化された子ウィンドウを配置します。
AttachThreadInput 接続スレッド入力関数
BeginDeferWindowPos は、一連の新しいウィンドウ位置を構築するプロセスを開始します
BringWindowToTop は、指定されたウィンドウをウィンドウ リストの先頭に移動します。
CascadeWindows はウィンドウをカスケード方式で配置します
ChildWindowFromPoint は、指定されたポイントを含む親ウィンドウ内の最初の子ウィンドウのハンドルを返します。
ClientToScreen は、クライアント領域の座標で表されるウィンドウ内の点の画面座標を決定します。
CloseWindow は指定されたウィンドウを最小化します
CopyRect の四角形コンテンツのコピー
DeferWindowPos この関数は、特定のウィンドウの新しいウィンドウ位置を指定します。
DestroyWindow は、指定されたウィンドウとそのすべての子ウィンドウをクリアします
DrawAnimatedRects は一連の動的な四角形を描画します
EnableWindow は、指定されたウィンドウ内のすべてのマウスおよびキーボード入力を許可または無効にします。
EndDeferWindowPos は、DeferWindowPos が呼び出されたときに指定されたすべてのウィンドウの位置とステータスを同時に更新します。
EnumChildWindows は、指定された親ウィンドウの子ウィンドウを列挙します。
EnumThreadWindows は、指定されたタスクに関連するウィンドウを列挙します。
EnumWindows は、ウィンドウ リスト内のすべての親ウィンドウを列挙します。
EqualRect は 2 つの長方形構造が同じかどうかを判断します
FindWindow は、指定された基準を満たすウィンドウ リスト内の最初のトップレベル ウィンドウを検索します。
FindWindowEx は、指定された条件に一致するウィンドウ リスト内の最初のサブウィンドウを検索します。
FlashWindow は指定されたウィンドウをフラッシュします
GetActiveWindow はアクティブなウィンドウのハンドルを取得します
GetCapture は、現在の入力スレッド上にあり、マウス キャプチャが含まれるウィンドウのハンドルを取得します (マウス アクティビティはウィンドウによって受信されます)。
GetClassInfo は、指定されたクラスに関連する情報を含む WNDCLASS 構造体 (または WNDCLASSEX 構造体) のコピーを取得します。
GetClassLong は、ウィンドウ クラスの Long 変数エントリを取得します。
GetClassName は、指定されたウィンドウのクラス名を取得します。
GetClassWord はウィンドウ クラスの整数変数を取得します
GetClientRect は、指定されたウィンドウのクライアント領域内の四角形のサイズを返します
GetDesktopWindow は、画面全体を表すウィンドウ (デスクトップ ウィンドウ) ハンドルを取得します。
GetFocus は入力フォーカスのあるウィンドウのハンドルを取得します。
GetForegroundWindow はフロント ウィンドウのハンドルを取得します
GetLastActivePopup 指定された親ウィンドウ内で最後にアクティブ化されたポップアップ ウィンドウのハンドルを取得します。
GetLastError は、以前に呼び出された API 関数をターゲットとしており、この関数を使用して拡張エラー情報を取得します。
GetParent は、指定されたウィンドウの親ウィンドウを決定します。
GetTopWindow は、内部ウィンドウ リストを検索して、指定されたウィンドウに属する最初のウィンドウのハンドルを見つけます。
GetUpdateRect は、指定されたウィンドウの更新が必要な部分を表す四角形を取得します。
GetWindow は、ソース ウィンドウと特定の関係を持つウィンドウのハンドルを取得します。
GetWindowContextHelpId は、ウィンドウに関連付けられたヘルプ シーン ID を取得します。
GetWindowLong は、指定されたウィンドウの構造から情報を取得します。
GetWindowPlacement は、指定されたウィンドウのステータスと位置情報を取得します。
GetWindowRect は、ウィンドウ全体の範囲四角形を取得します。ウィンドウの境界線、タイトル バー、スクロール バー、メニューなどはすべてこの四角形内にあります。
GetWindowText は、フォームのタイトル テキストまたはコントロールのコンテンツを取得します。
GetWindowTextLength は、ウィンドウのタイトル テキストまたはコントロールのコンテンツの長さを調べます。
GetWindowWord は、指定されたウィンドウ構造に関する情報を取得します。
InflateRect は、長方形のサイズを増減します。
IntersectRect 関数は、2 つの四角形 lpSrc1Rect と lpSrc2Rect の交差部分である四角形を lpDestRect にロードします。
InvalidateRect はウィンドウのクライアント領域のすべてまたは一部をブロックします
IsChild は、ウィンドウが別のウィンドウの子ウィンドウであるか従属ウィンドウであるかを決定します。
IsIconic はウィンドウが最小化されているかどうかを判断します
IsRectEmpty は四角形が空かどうかを判断します
IsWindow はウィンドウ ハンドルが有効かどうかを判断します
IsWindowEnabled はウィンドウがアクティブかどうかを決定します
IsWindowUnicode は、ウィンドウが Unicode ウィンドウであるかどうかを判断します。これは、ウィンドウがすべてのテキストベースのメッセージの Unicode リテラルを受け取ることを意味します。
IsWindowVisible はウィンドウが表示されるかどうかを決定します
IsZoomed はウィンドウが最大化されているかどうかを決定します
LockWindowUpdate は、指定されたウィンドウをロックし、更新できないようにします。
MapWindowPoints は、あるウィンドウのクライアント領域座標内の点を別のウィンドウのクライアント領域座標系に変換します。
MoveWindow は、指定されたウィンドウの位置とサイズを変更します。
OffsetRect は、指定されたオフセットを適用して四角形を移動します。
OpenIcon は最小化されたプログラムを復元し、アクティブ化します
PtInRect は、指定された点が四角形の内側にあるかどうかを判断します。
RedrawWindow はウィンドウの全体または一部を再描画します
ReleaseCapture は、現在のアプリケーションのマウス キャプチャを解放します。
ScreenToClient は、画面上の指定された点のクライアント領域座標を決定します。
ScrollWindow スクロール ウィンドウのクライアント領域の全部または一部
ScrollWindowEx は、追加のオプションに応じて、ウィンドウのクライアント領域のすべてまたは一部をスクロールします。
SetActiveWindow は指定されたウィンドウをアクティブにします
SetCapture は、指定されたウィンドウにマウス キャプチャを設定します。
SetClassLong は、ウィンドウ クラスの Long 変数エントリを設定します。
SetClassWord はウィンドウ クラスのエントリを設定します
SetFocusAPI は、入力フォーカスを指定されたウィンドウに設定します。必要に応じてウィンドウがアクティブになります
SetForegroundWindow は、ウィンドウをシステムのフロント ウィンドウとして設定します。
SetParent はウィンドウの新しい親を指定します
SetRect は、指定された四角形の内容を設定します。
SetRectEmpty は、四角形を空の四角形に設定します。
SetWindowContextHelpId は、指定されたウィンドウのヘルプ シーン (コンテキスト) ID を設定します。
SetWindowLong は、ウィンドウ構造内の指定されたウィンドウの情報を設定します。
SetWindowPlacement はウィンドウのステータスと位置情報を設定します
SetWindowPos はウィンドウの新しい位置と状態を指定します
SetWindowText は、ウィンドウのタイトル テキストまたはコントロールのコンテンツを設定します。
SetWindowWord は、ウィンドウ構造内の指定されたウィンドウの情報を設定します。
ShowOwnedPopups 指定されたウィンドウが所有するすべてのポップアップ ウィンドウを表示または非表示にします
ShowWindow はウィンドウの可視性を制御します
ShowWindowAsync は ShowWindow に似ています
SubtractRect は、長方形 lprcSrc1 から lprcSrc2 を減算した結果である長方形 lprcDst をロードします。
TileWindows はウィンドウをタイル順に配置します
UnionRect は、lpSrc1Rect と lpSrc2Rect の結合の結果である lpDestRect ターゲット四角形をロードします。
UpdateWindow はウィンドウの即時更新を強制します
ValidateRect はウィンドウのクライアント領域のすべてまたは一部を検証します
WindowFromPoint は、指定されたポイントを含むウィンドウのハンドルを返します。マスクされたウィンドウ、非表示のウィンドウ、透明なウィンドウを無視する
2.ハードウェアおよびシステム機能
ActivateKeyboardLayout は、新しいキーボード レイアウトをアクティブにします。キーボード レイアウトは、物理キーボード上のキーの位置と意味を定義します。
ビープ音は単純な音を生成するために使用されます
CharToOem は、文字列を ANSI 文字セットから OEM 文字セットに変換します。
ClipCursor はポインタを指定された領域に制限します
ConvertDefaultLocale は、特別なローカル識別子を実際のローカル ID に変換します。
CreateCaret は、指定された情報に基づいてキャレット (カーソル) を作成し、それを指定されたウィンドウのデフォルト キャレットとして選択します。
DestroyCaret はキャレットをクリア (破壊) します。
EnumCalendarInfo は、指定された「ローカル」環境で利用可能なカレンダー情報を列挙します。
EnumDateFormats は、指定された「ローカル」設定で使用できる長い日付形式と短い日付形式を列挙します。
EnumSystemCodePages は、システムにインストールされている、またはサポートされているコード ページを列挙します。
EnumSystemLocales は、システムがインストールした、またはサポートを提供する「ローカル」設定を列挙します。
EnumTimeFormats は、指定された場所に適用できる時間形式を列挙します。
ExitWindowsEx は Windows を終了し、特定のオプションで再起動します
ExpandEnvironmentStrings は環境文字列を展開します。
FreeEnvironmentStrings は、指定された環境文字列ブロックを変換します。
GetACP は現在有効な ANSI コード ページを決定します
GetAsyncKeyState は、関数が呼び出されたときに指定された仮想キーの状態を判断します。
GetCaretBlinkTime はキャレット カーソルの点滅頻度を決定します
GetCaretPos はキャレットの現在位置を決定します
GetClipCursor 現在マウス ポインターに指定されているクリッピング領域を表す四角形を取得します。
GetCommandLine は、現在のコマンド ライン バッファへのポインタを取得します。
GetComputerName はこのコンピュータの名前を取得します
GetCPInfo は、指定されたコード ページに関連する情報を取得します。
GetCurrencyFormat は、指定された「ローカル」設定の通貨形式に従って数値をフォーマットします。
GetCursor 現在選択されているマウス ポインターのハンドルを取得します。
GetCursorPos はマウス ポインターの現在位置を取得します。
GetDateFormat は、システム日付を指定された「ローカル」形式でフォーマットします。
GetDoubleClickTime は、ダブルクリック イベントとして処理される 2 つの連続したマウス クリック間の時間間隔を決定します。
GetEnvironmentStrings は、現在の環境文字列設定を含むメモリ ブロックへのハンドルを割り当てて返します。
GetEnvironmentVariable は環境変数の値を取得します
GetInputState は、保留中の (処理を待っている) マウス イベントまたはキーボード イベントがあるかどうかを判断します。
GetKBCodePage は GetOEMCP に置き換えられ、両方の関数はまったく同じです
GetKeyboardLayout は、指定されたアプリケーションのキーボード レイアウトを記述するハンドルを取得します。
GetKeyboardLayoutList は、システムに適用可能なすべてのキーボード レイアウトのリストを取得します。
GetKeyboardLayoutName は、現在アクティブなキーボード レイアウトの名前を取得します。
GetKeyboardState は、キーボード上の各仮想キーの現在の状態を取得します。
GetKeyboardType は、使用されているキーボードに関する情報を取得します
GetKeyNameText は、スキャン コードを指定してキー名を決定します。
GetKeyState は、情報が最後に入力されたときに処理されたキーについて、指定された仮想キーのステータスを判断します。
GetLastError は、以前に呼び出された API 関数をターゲットとしており、この関数を使用して拡張エラー情報を取得します。
GetLocaleInfoは、指定した「場所」に関する情報を取得します。
GetLocalTime はローカルの日付と時刻を取得します
GetNumberFormat は、指定された「場所」の数値を特定の形式でフォーマットします。
GetOEMCP は、OEM 文字セットと ANSI 文字セットの間で変換する Windows コード ページを決定します。
GetQueueStatus は、アプリケーション メッセージ キュー内で保留中の (処理を待っている) メッセージ タイプを判断します。
GetSysColor は、指定された Windows 表示オブジェクトの色を決定します。
GetSystemDefaultLangID はシステムのデフォルトの言語 ID を取得します
GetSystemDefaultLCID は、現在のデフォルト システムの「場所」を取得します。
GetSystemInfo は、基盤となるハードウェア プラットフォームに関連する情報を取得します。
GetSystemMetrics は Windows 環境に関連する情報を返します
GetSystemPowerStatus は、現在のシステム電源ステータスに関連する情報を取得します。
GetSystemTime は、現在のシステム時刻を取得します。この時刻は、「協定世界時」(つまり、GMT とも呼ばれる) 形式を使用します。
GetSystemTimeAdjustment は、内部システム クロックを外部クロック ソースと同期します。
GetThreadLocale は現在のスレッドのローカル ID を取得します
GetTickCount は、Windows が起動してからの経過時間 (ミリ秒) を取得するために使用されます。
GetTimeFormat は、現在指定されている「場所」の特定の形式でシステム時間をフォーマットします。
GetTimeZoneInformation は、システムのタイムゾーン設定に関連する情報を取得します。
GetUserDefaultLangID は、現在のユーザーのデフォルトの言語 ID を取得します。
GetUserDefaultLCID 現在のユーザーのデフォルトの「ローカル」設定を取得します
GetUserName は現在のユーザーの名前を取得します
GetVersion は、現在実行されている Windows および DOS のバージョンを確認します。
GetVersionEx は、プラットフォームとオペレーティング システムに関連するバージョン情報を取得します。
HideCaret は、指定されたウィンドウ内のキャレット (カーソル) を非表示にします。
IsValidCodePage コード ページが有効かどうかを判断します
IsValidLocale はローカル識別子が有効かどうかを判断します
keybd_even 関数はキーボード操作をシミュレートします。
LoadKeyboardLayout はキーボード レイアウトを読み込みます
MapVirtualKey は、指定されたマッピング タイプに基づいて、さまざまなスキャン コードと文字変換を実行します。
MapVirtualKeyEx は、指定されたマッピング タイプに基づいて、さまざまなスキャン コードと文字変換を実行します。
MessageBeep はシステム サウンドを再生します。システム音の分配プランはコントロールパネルで決定
Mouse_even はマウスイベントをシミュレートします
OemKeyScan は、OEM 文字セットの ASCII 文字のスキャン コードと Shift キーのステータスを決定します。
OemToChar は、文字列を OEM 文字セットから ANSI 文字セットに変換します。
SetCaretBlinkTime はキャレット (カーソル) の点滅頻度を指定します。
SetCaretPos はキャレットの位置を指定します
SetComputerName は新しいコンピュータ名を設定します
SetCursor は、指定されたマウス ポインターを現在のポインターに設定します。
SetCursorPos はポインタの位置を設定します
SetDoubleClickTime は、システムがダブルクリック イベントとみなす、2 回の連続したマウス クリック間の時間間隔を設定します。
SetEnvironmentVariable は、環境変数を指定された値に設定します
SetKeyboardState は、キーボード上の各仮想キーの現在の状態を設定します。
SetLocaleInfo はユーザーの「ローカル」設定情報を変更します
SetLocalTime は現在の現地時間を設定します
SetSysColors は、指定されたウィンドウに表示されるオブジェクトの色を設定します。
SetSystemCursor は標準システム ポインターを変更します
SetSystemTime は現在のシステム時間を設定します
SetSystemTimeAdjustment は、内部システム クロックを外部クロック信号ソースと同期させるために、キャリブレーション値を定期的に追加します。
SetThreadLocale は現在のスレッドのロケールを設定します
SetTimeZoneInformation はシステムのタイムゾーン情報を設定します
ShowCaret は、指定されたウィンドウにキャレット (カーソル) を表示します。
ShowCursor はマウス ポインタの可視性を制御します
SwapMouseButton は、マウスの左ボタンと右ボタンの機能を交換するかどうかを決定します。
SystemParametersInfo は、多数の Windows システム パラメータを取得および設定します
SystemTimeToTzSpecificLocalTime はシステム時間を現地時間に変換します
ToAscii は、現在のスキャン コードとキーボード情報に基づいて、仮想キーを ASCII 文字に変換します。
ToUnicode は、現在のスキャン コードとキーボード情報に基づいて仮想キーを Unicode 文字に変換します。
UnloadKeyboardLayout は、指定されたキーボード レイアウトをアンロードします。
VkKeyScan は、Windows 文字セットの ASCII 文字に基づいて仮想キー コードと Shift キーのステータスを決定します。
以上
3.メニュー機能
AppendMenu は、指定されたメニューにメニュー項目を追加します
CheckMenuItem は、指定されたメニュー項目をチェックまたはチェック解除します。
CheckMenuRadioItem は、メニュー項目が「ラジオ」項目としてチェックされることを指定します
CreateMenu は新しいメニューを作成します
CreatePopupMenu は空のポップアップ メニューを作成します
DeleteMenu は、指定されたメニュー エントリを削除します
DestroyMenu は指定されたメニューを削除します
DrawMenuBar は、指定されたウィンドウのメニューを再描画します
EnableMenuitemは、指定されたメニュー項目を許可または無効にします
getmenuはウィンドウ内のメニューのハンドルを取得します
getMenucheckMarkDimensionsメニューチェックマークのサイズを返します
getMenucontExthelpidメニューのヘルプシーンIDを取得します
getMenudeFaultItemメニューのどのアイテムがデフォルトのアイテムであるかを決定します
getMenuitemCountメニューのアイテムの数(メニュー項目)を返します
getMenuitemidメニューの指定された位置にあるアイテムのメニューIDを返します
getMenuiteminfoメニュー項目に関連する特定の情報を取得(受信)
getMenuiteMRECT指定されたメニュー項目の画面座標情報を長方形にロードする
getMenustate指定されたメニュー項目の状態に関連する情報を取得します
GetMenustringは、指定されたメニュー項目の文字列を取得します
GetSubmenuは、メニューの指定された位置にあるポップアップメニューのハンドルを取得します
getsystemmenu指定されたウィンドウのシステムメニューのハンドルを取得します
Hilitemenuitemは、トップレベルのメニュー項目の強調表示状態を制御します
INSERTMENUメニューの指定された位置にメニューエントリを挿入し、必要に応じて他のエントリを下に移動します
InsertMenuitemは、新しいメニュー項目を挿入します
Ismenu指定されたハンドルがメニューハンドルであるかどうかを決定します
LoadMenu指定されたモジュールまたはアプリケーションインスタンスからメニューをロードします
loadmenuindirectはメニューを読み込みます
menuitemfrompoint画面に指定されたポイントが含まれているメニュー項目が決定されます
ModifyMenuメニューエントリを変更します
Removemenuは、指定されたメニューエントリを削除します
SetMenuはウィンドウメニューを設定します
setMenucontexThelpidメニューのヘルプシーンIDを設定します
setMenudeFaultItemメニュー項目をデフォルトのアイテムとして設定します
setMenuitembitmaps標準チェックシンボル(√)の代わりに、指定されたメニュー項目で使用する特定のビットマップを設定します
setMenuiteminfoメニュー項目の指定された情報を設定します
TrackPopupMenu画面上のどこにでもポップアップメニューが表示されます
TrackPopupMenuexは、追加の機能を提供することを除いて、TrackPopupMenuに似ています
以上
以下は、メニュー関数に関するいくつかのタイプ定義です
menuiteminfoこの構造には、メニュー項目に関する情報が含まれています
TPMPARAMSこの構造は、TrackPopupMenuex関数によって追加の機能をサポートするために使用されます
4。描画関数
AbortPathは、指定されたデバイスシーンに選択されたすべてのパスを破棄します。また、現在進行中のパス作成をキャンセルします
Anglearcは、接続アークで線を引きます
arcdraw an arc
BeginPathはパスブランチを開始します
CancelDCは、別のスレッドで長い描画操作をキャンセルします
コードはコードを描きます
CloseNhmetafileは、指定された拡張されたメタファイルデバイスシーンを閉じ、ハンドルを新しく作成したメタファイルに戻します
CloseFigureパスを描くときは、現在開いている数字を閉じます。
CloseMetafileは、指定されたメタファイルデバイスシーンを閉じて、ハンドルを新しく作成したメタファイルに返します
CopyEnhmetafileは、指定された拡張メタファイルのコピー(コピー)を作成します
Copymetafileは、指定された(標準)メタファイルのコピーを作成します
CreateBrushIndirectは、ログブラシデータ構造に基づいてブラシを作成します
createdibpatternbrushは、デバイスに依存しないビットマップを使用してブラシを作成してブラシスタイルを指定します(パターン)
CreateenHmetafileは、強化されたメタファイルデバイスシーンを作成します
CreateHatchBrushは、影のパターンを持つブラシを作成します
CreateMetaFileは、メタファイルデバイスシーンを作成します
createpatternbrushは、ブラシパターンを指定するビットマップを使用してブラシを作成します
指定されたスタイル、幅、色でブラシを作成する
createpenindirect指定されたlogpen構造に基づいてペンを作成します
CreateSolidBrushは、固体のブラシを作成します
DeleteenHmetafileは、指定された拡張されたメタファイルを削除します
Deletemetafileは、指定されたメタファイルを削除します
DeleteObject GDIオブジェクトを削除し、オブジェクトで使用されるすべてのシステムリソースがリリースされます。
DrawEdgeは、指定されたスタイルを使用して長方形の境界を描きます
Drawescape Escape関数は、データをディスプレイデバイスドライバーに直接送信します
DrawFocusRectはフォーカス長方形を描画します
Drawframecontrolは標準制御を描画します
DrawStateは、画像または描画操作にさまざまな効果を適用します
楕円は、指定された長方形に囲まれた楕円を描きます
Endpathはパスの定義を停止します
Enumenhmetafileは、強化されたメタファイルの個々のメタファイル記録をリストしています。
Enummetafileは、標準のWindowsメタファイルの個々のメタファイルレコードを列挙しています
EnumObjectsは、指定されたデバイスシーンで使用できるブラシとブラシを列挙します
extcreatepenは、拡張ブラシ(装飾または幾何学)を作成します
ExtfloodFillは、指定されたデバイスシーンで現在選択されているブラシを領域に埋めます。
FillPathはパスの開いた形を閉じて、現在のブラシでそれらを埋めます
FillRectは、指定されたブラシで長方形を埋めます
FlattenPathはパス内のすべての曲線を線セグメントに変換します
Floodfillは、指定されたデバイスシーンの領域に現在選択されているブラシを埋めます
framerectは、指定されたブラシを使用して長方形の周りに境界線を描きます
gdicomment指定された拡張メタファイルデバイスシーンにコメントメッセージを追加します
Gdiflushは、保留中の図面操作を実行します
gdigetbatchlimitは、キューにあるGDI描画コマンドの数を決定します
gdisetbatchlimitは
GetArcDirectionアークを描画するときに、現在の描画方向を決定します。
getBKColor指定されたデバイスシーンの現在の背景色を取得します
getBKMode指定されたデバイスシーンの現在のバックグラウンドフィルモードを取得します。
getBrushorgeXは、指定されたデバイスシーンで現在選択されているブラシの開始点を決定します
getCurrentObject指定されたタイプの現在選択されているオブジェクトを取得します
getCurrentPositionExは、指定されたデバイスシーンで現在のペン位置を取得します
getEnhmetafileディスクファイルに含まれる拡張されたメタファイルのメタファイルハンドルを取得します
getEnhmetaFilebits指定された拡張されたメタファイルをメモリバッファーにコピーします
getenhmetafiledesscription拡張されたメタファイルの説明を返します
getenhmetafileheaderは、拡張されたメタファイルのメタファイルヘッダーを取得します
getenhmetafilepaletteentriesは、強化されたメタファイルパレットのすべてまたは一部を取得します
GetMetaFileは、ディスクファイルに含まれるメタファイルのメタファイルハンドルを取得します
GetMetaFileBitsexは、指定されたメタファイルをメモリバッファーにコピーします
GetMiterLimitは、デバイスシーンの勾配制限(MITRE)設定を取得します
GetNearestColorデバイスの表示機能に基づいて、指定された色に最も近い固体色を取得します。
getobjectapi指定されたオブジェクトを記述する構造を取得します
getObjectType指定されたハンドルによって参照されるGDIオブジェクトのタイプを決定します
GetPath現在のパスを定義する一連のデータを取得します
getPixel指定されたデバイスシーンでピクセルのRGB値を取得します
getPolyFillMode指定されたデバイスシーンのポリゴン充填モードを取得します
getrop2は、指定されたデバイスシーンの現在の描画モードを取得します
GetStockObjectは固有のオブジェクト(ストック)を取得します
GetSysColorBrushは、標準システムの色のブラシを取得します
getWinmetAfilebitsは、標準メタファイルのデータをバッファーに埋めることにより、強化されたメタファイルを標準のWindowsメタファイルに変換します
InverTrectは、各ピクセルの値を反転させることにより、デバイスシーンで指定された長方形を反転させます。
LinedDaは、指定されたラインセグメントのすべてのポイントを列挙します
Linetoは、現在のペンを使用して、現在の位置から指定されたポイントにラインを引きます。