Kursus Dasar Pemrograman VB
Apa itu browser teks APIAPI
Tipe data deklarasi fungsi API dan "keamanan tipe"
struktur konstan
Ringkaslah beberapa rangkaian fungsi API: fungsi kontrol dan pesan, fungsi perangkat keras dan sistem, fungsi menu, fungsi gambar
Apa itu API
Pertama-tama, penting untuk memberi tahu semua orang apa itu API. Yang disebut API pada awalnya ditulis untuk pemrogram C dan C++. Sederhananya, API adalah sejenis fungsi. Mereka disertakan dalam file perpustakaan tautan dinamis tambahan yang disebut DLL. Menurut definisi standar, API adalah antarmuka pemrograman aplikasi 32-bit Windows. Ini adalah serangkaian fungsi, pesan, dan struktur yang sangat kompleks. Hal ini memungkinkan pemrogram untuk menggunakan berbagai jenis bahasa pemrograman untuk mengkompilasi program yang dijalankan pada aplikasi Windows 95 dan Windows NT pada sistem. Bisa dikatakan jika Anda pernah mempelajari VC, API tidak menjadi masalah bagi Anda. Namun jika Anda belum mempelajari VC, atau belum familiar dengan struktur Windows95, maka dapat dikatakan mempelajari API akan menjadi hal yang sangat sulit.
Jika Anda membuka folder SISTEM WINDOWS, Anda akan menemukan banyak file tambahan bernama DLL. DLL tidak hanya berisi satu fungsi API, tetapi puluhan atau bahkan ratusan. Bisakah kita semua menguasainya? Jawabannya adalah tidak: tidak mungkin menguasainya. Namun sebenarnya kita tidak perlu menguasai semuanya, kita hanya perlu fokus menguasai fungsi-fungsi API yang ada pada sistem Windos itu sendiri. Namun, fungsi yang menduplikasi fungsi VB sendiri juga harus dibuang. Misalnya saja VB
Perintah etAttr bisa mendapatkan atribut file, dan SetAttr bisa mengatur atribut file. Ada juga fungsi yang sesuai untuk API
GetFileAttributes dan SetFileAttributes memiliki kinerja serupa. Setelah dihitung-hitung, hanya tersisa 500 atau 600 saja. Ya, cukup banyak. Namun, saya berani memberi tahu Anda bahwa selama Anda menguasai 100 di antaranya dengan baik, level pemrograman Anda setidaknya akan dua kali lebih tinggi dari sekarang. Meskipun orang mengatakan bahwa VB dan WINDOWS memiliki hubungan dekat, menurut saya API lebih dekat
JENDELA. Jika Anda mempelajari API, keuntungan pertama adalah pemahaman Anda tentang arsitektur WINDOWS. Perolehan ini tidaklah mudah.
Apa yang akan terjadi jika Anda tidak mengandalkan API? Saya dapat memberitahu Anda bahwa kebanyakan dari mereka adalah buku pemrograman tingkat lanjut (tentu saja, ini bukan karena judul bukunya "lanjutan" tetapi "lanjutan" di "Isi dari Buku ini" di awal). Buku ini ditujukan untuk pembaca dengan dasar VB tertentu), dan pertanyaan pertama biasanya dimulai dengan API. Oleh karena itu, dapat dikatakan jika Anda tidak mempelajari API, kemungkinan besar Anda akan tetap berada di level junior dan tidak dapat naik ke atas. Satu-satunya cara adalah meminta bantuan orang lain: Saya sekarat, datang dan selamatkan saya, apa yang harus saya lakukan dengan ini, apa yang harus saya lakukan dengan itu? Tentu saja, ada terlalu banyak orang baik yang online sekarang (termasuk saya, hehe) , namun perlu anda pahami bahwa melalui cara ini anda tidak akan bisa menghasilkan karya yang baik di tangan anda. Ini karena tanpa pengetahuan ini Anda tidak dapat membentuk konsep desain secara keseluruhan dalam pikiran Anda.
Browser teks API[kembali]
Banyak fungsi API yang sangat panjang. Ingin melihat tampilannya? Berikut contoh fungsi APIDdeClientTransaction:
DeklarasikanFunctionDdeClientTransactionLib"user32"(pDataAsByte,ByValcbDataAsLong,ByValhConvAsLong,ByValhszItemAsLong,ByValwFmtAsLong,ByValwTypeAsLong,ByValdwTimeoutAsLong,pdwResultAsLong)AsLong
Wow! Lama sekali? Kalau belum pernah terpapar API, saya rasa pasti terintimidasi. Anda mungkin berpikir apakah Anda harus terus belajar. Tapi jangan khawatir, untungnya desainer Microsoft memberi kami alat yang berguna, inilah API
Penampil teks.
Melalui penampil teks API, kita dapat dengan mudah menemukan deklarasi fungsi, tipe struktur dan konstanta yang dibutuhkan oleh program, kemudian menyalinnya ke clipboard, dan terakhir menempelkannya ke segmen kode program VB. Dalam kebanyakan kasus, selama kita menentukan tiga aspek fungsi, struktur, dan konstanta yang diperlukan oleh program, kita dapat menambahkannya ke segmen program melalui operasi di atas pada browser teks API, sehingga dapat digunakan dalam program. . fungsi. Ini adalah pertanyaan akal sehat yang paling mendasar untuk mempelajari API, dan pertanyaan tersebut jauh lebih sedikit dibandingkan dengan konten sistem API yang sangat besar. Di mana kita akan membuang energi kita di masa depan (ini sama sekali tidak sia-sia)?
Kapan menggunakan fungsi yang mana, kapan menggunakan tipe struktur apa, kapan menggunakan konstanta apa.
Deklarasi fungsi API
Mari kita pikirkan kembali. Di VB, bagaimana cara mendeklarasikan suatu fungsi? Saya rasa jika Anda membaca artikel ini, Anda pasti bisa menjawab pertanyaan ini. Berikut adalah deklarasi fungsi yang mungkin sudah Anda kenal:
FunctionSetFocus(ByValhwndAsLong)AsLong
Artinya, baris kode ini mendefinisikan fungsi bernama SetFocus. Fungsi ini memiliki parameter tipe data Long dan diteruskan dengan nilai (ByVal).
Deklarasi fungsi API juga sangat mirip. Misalnya, fungsi SetFocus di API ditulis seperti ini:
DeklarasikanFunctionSetFocusLib"user32"Alias"SetFocus"(ByValhwndAsLong)AsLong
Ini sedikit lebih rumit. Ya, ini sedikit lebih rumit. Namun saya dapat memberitahu Anda bahwa kecuali bagian tambahan ini, bagian lainnya masih sama dengan yang Anda pelajari sebelumnya. Hal yang sama berlaku untuk pemanggilan fungsi dalam program. menyukai:
DimdlAsLong
dl&=SetFoucs(Form1.Hwnd)
Tapi, ada satu hal yang jelas. Ini tidak seperti program yang Anda tulis sendiri di mana Anda dapat melihat mekanisme operasinya, juga tidak seperti VB
Seperti fungsi bawaan, Anda dapat mengetahui penggunaannya dari bantuan online VB. Satu-satunya cara adalah mempelajari dan mencari informasi selain VB.
Pernyataan Declare digunakan untuk mendeklarasikan referensi ke prosedur eksternal di perpustakaan tautan dinamis (DLL) di tingkat modul. Untuk melakukan ini, Anda hanya perlu mengingat bahwa setiap deklarasi fungsi API harus menulis pernyataan ini.
Iib menunjukkan pustaka tautan dinamis atau sumber kode yang berisi prosedur atau fungsi yang dideklarasikan. Dengan kata lain, ini menjelaskan pertanyaan dari mana fungsi atau proses itu berasal.
Seperti pada contoh di atas, SetFocusLib "user32" menunjukkan bahwa fungsi SetFocus berasal dari file user32.dll. File perpustakaan tautan dinamis dll utama adalah:
user32.dllmanajemen Windows. Menghasilkan dan mengelola antarmuka pengguna aplikasi.
Antarmuka perangkat grafis GDI32.dll. Menghasilkan output grafis untuk perangkat Windows
Layanan sistem Kernel32.dll. Akses sumber daya komputer sistem operasi.
Perhatikan bahwa jika file DLL tidak ada di folder Windows atau Sistem, sumbernya harus disebutkan dalam fungsi (
jalur). Misalnya, SetFocusLib "c:/Mydll/user32"
Alias dalam deklarasi fungsi bersifat opsional. Menunjukkan bahwa prosedur yang akan dipanggil memiliki nama lain (alias) di perpustakaan tautan dinamis (DLL). Misalnya Alias "SetFocus" menunjukkan bahwa nama lain dari fungsi SetFocus di User32.dll adalah,
Atur Fokus. Mengapa kedua nama tersebut sama? Tentu saja bisa juga berbeda. Dalam banyak kasus, nama fungsi dijelaskan oleh Alias, yaitu karakter terakhir dari alias sering kali adalah karakter A. Misalnya, nama lain dari fungsi SetWindowsText adalah
SetWindowsTextA, dinyatakan sebagai Alias "SetWindowsTextA". A ini hanyalah konvensi penamaan yang digunakan oleh desainer, yang menunjukkan bahwa fungsi tersebut milik versi ANSI.
Jadi, apa sebenarnya kegunaan alias? Secara teori, alias menyediakan metode fungsional untuk memanggil API dengan nama lain. Jika Anda menentukan sebuah alias, meskipun kita memanggil fungsi sesuai dengan fungsi setelah pernyataan Declare, alias tersebut adalah pilihan pertama untuk pemanggilan fungsi yang sebenarnya. Misalnya, dua deklarasi fungsi (Fungsi, ABCD) berikut ini valid, dan memanggil fungsi SetFocus yang sama:
DeklarasikanFunctionSetFocusLib"user32""SetFocus"(ByValhwndAsLong)AsLong
DeklarasikanABCDSetFocusLib"user32"Alias"SetFocus"(ByValhwndAsLong)AsLong
Perlu dicatat bahwa ketika memilih Alias, Anda harus memperhatikan huruf besar/kecil alias; jika Anda tidak memilih Alias, nama fungsi harus memperhatikan huruf besar/kecil dan tidak dapat diubah. Tentu saja, dalam banyak kasus, karena deklarasi fungsi dilakukan langsung dari API
Itu disalin dari browser teks, jadi kemungkinan terjadinya kesalahan ini sangat kecil, tetapi Anda perlu mengetahuinya.
Satu pengingat terakhir, deklarasi API (termasuk struktur dan konstanta) harus ditempatkan di bagian "Deklarasi Umum" pada formulir atau modul.
Tipe data dan "keamanan tipe"
Tipe data yang digunakan dalam fungsi API pada dasarnya sama dengan yang ada di VB. Namun sebagai fungsi API WIN32, Integer tidak ada
Tipe data. Poin lainnya adalah tipe data Boolean tidak dapat dilihat di fungsi API. Tipe data Varian muncul dalam bentuk Any di fungsi API, seperti DataAsAny. Meskipun implikasinya adalah jenis parameter apa pun diperbolehkan untuk diteruskan sebagai parameter fungsi API ini, ada beberapa kelemahan dalam melakukannya. Alasannya adalah ini akan mematikan semua pemeriksaan tipe parameter target. Hal ini tentu saja menciptakan peluang terjadinya kesalahan dalam berbagai jenis pemanggilan parameter.
Untuk menerapkan pemeriksaan tipe yang ketat dan menghindari masalah yang disebutkan di atas, salah satu caranya adalah dengan menggunakan teknologi Alias yang disebutkan di atas dalam fungsinya. Misalnya, metode deklarasi lain dapat digunakan untuk fungsi API GetDIBits. Sebagai berikut:
Prototipe fungsi GetDIBits:
PublicDeclareFunctionGetDIBitsLib"gdi32"Alias"GetDIBits"(ByValaHDCAsLong,ByValhBitmapAsLong,ByValnStartScanAsLong,ByValnNumScansAsLong,lpBitsAsAny,lpBIAsBITMAPINFO,ByValwUsageAsLong)AsLong
Modifikasi fungsi GetDIBits:
PublicDeclareFunctionGetDIBitsLongLib"gdi32"Alias"GetDIBits"(ByValaHDCAsLong,ByValhBitmapAsLong,ByValnStartScanAsLong,ByValnNumScansAsLong,lpBitsAsLong,lpBIAsBITMAPINFO,ByValwUsageAsLong)AsLong
Melalui pengetahuan yang dipelajari sebelumnya dalam kursus ini, kita sudah dapat mengetahui apakah fungsi prototipe GetDIBits atau fungsi GetDIBitsLong yang dimodifikasi akan benar-benar memanggil fungsi GetDIBits asli yang ditentukan oleh Alias. Namun Anda akan melihat bahwa perbedaan antara keduanya adalah kami memaksa parameter lpBits menjadi Long dalam fungsi yang dimodifikasi. Ini akan meminimalkan kemungkinan terjadinya kesalahan dalam pemanggilan fungsi. Pendekatan ini disebut deklarasi "tipe aman".
Tipe data yang sering terlihat dalam fungsi API adalah: Long, String, Byte, Any.... (Itu saja.)
konstan
Tidak ada yang terlalu istimewa tentang konstanta API. Silakan lihat kode berikut di VB:
Pesan=MsgBox("Halo",vbOKBatal)
Kita tahu bahwa nilai konstanta vbOKCancel sama dengan 1. Kita dapat menulis kode di atas seperti ini tanpa mempengaruhi fungsi kodenya:
Pesan=MsgBox("Halo",1)
Namun Anda mungkin tidak bersedia memilih opsi terakhir, karena akan mempersulit pemahaman kodenya. Pendekatan ini juga diambil oleh API. Hanya saja konstanta API harus diinisialisasi dan dideklarasikan sebelum kejadian, yang mana VB sendiri tidak dapat memahaminya. Kontennya masih berasal dari API
Peramban teks. Bentuk spesifiknya adalah sebagai berikut:
PublikConstABM_ACTIVATE=&H6
PublikConstRIGHT_CTRL_PRESSED=&H4
PublicConstRPC_E_SERVER_DIED=&H80010007
PrivateConstRPC_S_CALL_FAILED_DNE=1727&
Dalam inisialisasi konstanta, beberapa program menggunakan Global, seperti GlobalConstABM_ACTIVATE=&H6, tapi menurut saya Public dapat menggantikannya sepenuhnya. Saya telah menggunakan Global di masa lalu, tapi sekarang tidak banyak. Jika Anda menggunakan yang ini sekarang dan yang itu sekarang, Anda tidak dapat menjaga konsistensi antar program, atau setidaknya terlihat janggal.
struktur[kembali]
Struktur adalah bahasa C dan C++. Umumnya disebut tipe data khusus di VB. Pastinya banyak teman-teman yang sudah mengetahuinya. Di bidang API, saya lebih suka menyebutnya struktur, karena berbagai jenis struktur API tidak saya definisikan sama sekali (
disesuaikan).
Di VB, struktur API juga ditentukan oleh pernyataan TYPE....ENDTYPE. Misalnya, di API, struktur titik didefinisikan sebagai berikut:
PublicTypePOINTAPI
Nilai koordinat XAsLong' titik pada koordinat X (absis)
YAsLong'Nilai koordinat titik pada koordinat Y (ordinat)
Tipe Akhir
Contoh lainnya, definisi struktur persegi panjang (Rect) pada API adalah sebagai berikut:
Tipe PublikRECT
Koordinat LeftAsLong'X dari sudut kiri atas persegi panjang
Koordinat TopAsLong' Y dari sudut kiri atas persegi panjang
Koordinat RightAsLong'X dari sudut kanan bawah persegi panjang
Koordinat BottomAsLong' Y dari sudut kanan bawah persegi panjang
Tipe Akhir
Konten ini juga dapat disalin dari browser teks API. Nama variabel dalam struktur ini dapat diubah sesuka hati tanpa mempengaruhi struktur itu sendiri. Dengan kata lain, semua variabel anggota ini bersifat virtual. Misalnya, struktur POINTAPI dapat diubah menjadi berikut:
PublicTypePOINTAPI
MyXAsLong'Nilai koordinat titik pada koordinat X (absis)
MyYAsLong'Nilai koordinat titik pada koordinat Y (ordinat)
Tipe Akhir
Namun, secara umum, hal ini tidak diperlukan. Struktur itu sendiri adalah tipe data. Oleh karena itu, ketika menggunakannya, Anda harus mendeklarasikan variabel tertentu sebagai tipe struktur sebelum Anda benar-benar dapat menggunakan struktur tersebut dalam program. Metode deklarasi struktur sama dengan metode deklarasi data lainnya. Misalnya, pernyataan berikut mendeklarasikan variabel MyPoint sebagai tipe struktur POINTAPI:
MyPointAsPOINTAPI
Referensi variabel anggota dalam struktur juga sangat mudah. Cukup tambahkan tanda "." setelah nama struktur, lalu tulis variabel anggota yang akan direferensikan. Ini seperti mereferensikan properti suatu objek di VB. Misalnya, jika kita menetapkan nilai variabel X dalam struktur MyPoint yang dideklarasikan di atas ke variabel Temp&
Kodenya adalah sebagai berikut:
Suhu&=MyPoint.X
Namun, penting untuk diingat bahwa Anda tidak boleh menganggap MyPoint dalam contoh di atas adalah sebuah nilai. Ini bukan nilai, tapi alamat (
penunjuk). Nilai dan alamat adalah konsep yang sangat berbeda. Persyaratan struktur diteruskan dengan mengacu pada fungsi WINDOWS, yaitu semua API
Dalam fungsi, struktur diteruskan oleh ByRef (ByRef adalah tipe default dalam pernyataan Declare). Untuk melewati struktur, jangan coba-coba menggunakan ByVal, Anda tidak akan mendapatkan apa pun. Karena nama struktur sebenarnya adalah penunjuk ke struktur (alamat pertama struktur), Anda cukup mentransfer nama struktur tertentu (lihat ringkasannya, saya menggunakan font merah untuk menyorot metode transfer ini).
Karena struktur mentransfer pointer, fungsi akan langsung membaca dan menulis struktur. Fitur ini sangat cocok untuk memuat hasil eksekusi fungsi ke dalam struktur.
Ringkasan[kembali]
Prosedur berikut diberikan untuk merangkum apa yang telah dipelajari dalam pelajaran ini. Mulai VB, buat proyek baru, tambahkan tombol perintah, salin kode berikut ke dalam segmen kode, dan jalankan.
PrivateDeclareFunctionGetCursorPosLib"user32"(lpPointAsPOINTAPI)AsLong
Struktur titik PrivateTypePOINTAPI'define
Nilai koordinat XAsLong' titik pada koordinat X (absis)
YAsLong'Nilai koordinat titik pada koordinat Y (ordinat)
Tipe Akhir
SubPrintCursorPos()
DimdlASPanjang
DimMyPointAsPOINTAPI
dl&=GetCursorPos(MyPoint)'Panggil fungsi untuk mendapatkan koordinat mouse layar
Debug.Print"X="&Str(MyPoint.X)&"dan"&"Y="&Str(MyPoint.Y)
Sub Akhir
PrivateSubCommand1_Klik()
CetakCursorPos
Sub Akhir
Hasil keluarannya adalah (setiap proses mungkin mendapatkan hasil yang berbeda, yang ditentukan oleh posisi penunjuk tetikus di layar saat fungsi dipanggil):
X=240danY=151
Dalam program tersebut, fungsi GetCursorPos digunakan untuk mendapatkan posisi penunjuk tetikus di layar.
Dalam contoh di atas, Anda dapat menemukan bahwa konten struktur MyPpint yang diteruskan sebagai parameter telah mengalami perubahan besar setelah pemanggilan fungsi. Hal ini disebabkan oleh fakta bahwa struktur tersebut dilewati oleh ByRef.
Beberapa set fungsi API [kembali]
WindowsAPI
1. Kontrol dan fungsi pesan
AdjustWindowRect Mengingat gaya jendela, hitung ukuran jendela yang diperlukan untuk mendapatkan persegi panjang area klien target
AnyPopup menentukan apakah ada pop-up di layar
ArrangeIconicWindows mengatur jendela anak yang diperkecil dari jendela induk
Fungsi input thread koneksi AttachThreadInput
BeginDeferWindowPos memulai proses pembuatan serangkaian posisi jendela baru
BringWindowToTop membawa jendela yang ditentukan ke bagian atas daftar jendela
CascadeWindows mengatur jendela secara cascading
ChildWindowFromPoint mengembalikan pegangan jendela anak pertama di jendela induk yang berisi titik tertentu.
ClientToScreen menentukan koordinat layar suatu titik di jendela yang diwakili oleh koordinat area klien
CloseWindow meminimalkan jendela yang ditentukan
Salinan konten persegi panjang CopyRect
DeferWindowPos Fungsi ini menentukan posisi jendela baru untuk jendela tertentu
DestroyWindow membersihkan jendela tertentu dan semua jendela turunannya
DrawAnimatedRects menggambarkan serangkaian persegi panjang dinamis
EnableWindow mengizinkan atau menonaktifkan semua input mouse dan keyboard di jendela yang ditentukan.
EndDeferWindowPos secara bersamaan memperbarui posisi dan status semua jendela yang ditentukan ketika DeferWindowPos dipanggil.
EnumChildWindows menghitung jendela anak untuk jendela induk yang ditentukan
EnumThreadWindows menghitung jendela yang terkait dengan tugas yang ditentukan
EnumWindows menghitung semua jendela induk dalam daftar jendela
EqualRect menentukan apakah dua struktur persegi panjang itu sama
FindWindow menemukan jendela tingkat atas pertama dalam daftar jendela yang memenuhi kriteria yang ditentukan
FindWindowEx mencari subjendela pertama dalam daftar jendela yang cocok dengan kondisi yang ditentukan
FlashWindow mem-flash jendela yang ditentukan
GetActiveWindow menangani jendela yang aktif
GetCapture menangani jendela yang terletak di thread input saat ini dan memiliki tangkapan mouse (aktivitas mouse diterima olehnya)
GetClassInfo memperoleh salinan struktur WNDCLASS (atau struktur WNDCLASSEX), yang berisi informasi terkait kelas tertentu.
GetClassLong memperoleh entri variabel Long dari kelas jendela
GetClassName mendapatkan nama kelas untuk jendela yang ditentukan
GetClassWord mendapatkan variabel integer untuk kelas window
GetClientRect mengembalikan ukuran persegi panjang di area klien dari jendela yang ditentukan
GetDesktopWindow mendapatkan pegangan jendela (jendela desktop) yang mewakili seluruh layar
GetFocus menangani jendela dengan fokus input
GetForegroundWindow menangani jendela depan
GetLastActivePopup Mendapatkan pegangan untuk jendela pop-up yang terakhir diaktifkan di jendela induk tertentu
GetLastError menargetkan fungsi api yang dipanggil sebelumnya. Gunakan fungsi ini untuk mendapatkan informasi kesalahan yang diperluas.
GetParent menentukan jendela induk dari jendela yang ditentukan
GetTopWindow mencari daftar jendela internal untuk pegangan jendela pertama milik jendela yang ditentukan
GetUpdateRect memperoleh persegi panjang yang menggambarkan bagian jendela tertentu yang perlu diperbarui
GetWindow memperoleh pegangan jendela yang memiliki hubungan spesifik dengan jendela sumber
GetWindowContextHelpId mendapatkan ID adegan bantuan yang terkait dengan jendela
GetWindowLong memperoleh informasi dari struktur jendela yang ditentukan
GetWindowPlacement memperoleh informasi status dan lokasi dari jendela yang ditentukan
GetWindowRect mendapatkan persegi panjang rentang seluruh jendela. Batas jendela, bilah judul, bilah gulir, menu, dll. semuanya berada dalam persegi panjang ini.
GetWindowText mendapatkan teks judul formulir atau konten kontrol
GetWindowTextLength menyelidiki panjang teks judul jendela atau konten kontrol
GetWindowWord memperoleh informasi tentang struktur jendela yang ditentukan
InflateRect menambah atau mengurangi ukuran persegi panjang
Fungsi IntersectRect memuat persegi panjang ke dalam lpDestRect, yang merupakan perpotongan dua persegi panjang, lpSrc1Rect dan lpSrc2Rect.
InvalidateRect memblokir seluruh atau sebagian area klien jendela
IsChild menentukan apakah suatu jendela merupakan jendela anak atau jendela bawahan dari jendela lain
IsIconic menentukan apakah jendela telah diminimalkan
IsRectEmpty menentukan apakah persegi panjang kosong
IsWindow menentukan apakah pegangan jendela valid
IsWindowEnabled menentukan apakah jendela aktif
IsWindowUnicode menentukan apakah suatu jendela adalah jendela Unicode. Ini berarti bahwa jendela menerima literal Unicode untuk semua pesan berbasis teks
IsWindowVisible menentukan apakah jendela terlihat
IsZoomed menentukan apakah jendela dimaksimalkan
LockWindowUpdate mengunci jendela yang ditentukan dan mencegahnya diperbarui
MapWindowPoints mengkonversi titik dalam koordinat area klien dari satu jendela ke sistem koordinat area klien dari jendela lain
MoveWindow mengubah posisi dan ukuran jendela yang ditentukan
OffsetRect membuat persegi panjang bergerak dengan menerapkan offset tertentu
OpenIcon memulihkan program yang diperkecil dan mengaktifkannya
PtInRect menentukan apakah titik yang ditentukan berada di dalam persegi panjang
RedrawWindow menggambar ulang seluruh atau sebagian jendela
ReleaseCapture merilis tangkapan mouse untuk aplikasi saat ini
ScreenToClient menentukan koordinat area klien dari titik tertentu di layar
ScrollWindow seluruh atau sebagian area klien dari jendela gulir
ScrollWindowEx menggulir seluruh atau sebagian area klien jendela, bergantung pada opsi tambahan.
SetActiveWindow mengaktifkan jendela yang ditentukan
SetCapture mengatur pengambilan mouse ke jendela yang ditentukan
SetClassLong menyetel entri variabel Panjang untuk kelas jendela
SetClassWord menetapkan entri untuk kelas jendela
SetFocusAPI menyetel fokus input ke jendela yang ditentukan. Jika perlu, jendela diaktifkan
SetForegroundWindow menetapkan jendela sebagai jendela depan sistem
SetParent menentukan induk baru dari sebuah jendela
SetRect mengatur isi persegi panjang yang ditentukan
SetRectEmpty menyetel persegi panjang menjadi persegi panjang kosong
SetWindowContextHelpId menyetel ID adegan bantuan (konteks) untuk jendela yang ditentukan
SetWindowLong menetapkan informasi untuk jendela tertentu dalam struktur jendela
SetWindowPlacement mengatur status jendela dan informasi posisi
SetWindowPos menentukan posisi dan status baru untuk jendela
SetWindowText menyetel teks judul jendela atau konten kontrol
SetWindowWord menetapkan informasi untuk jendela tertentu dalam struktur jendela
ShowOwnedPopups Menampilkan atau menyembunyikan semua jendela pop-up yang dimiliki oleh jendela tertentu
ShowWindow mengontrol visibilitas jendela
ShowWindowAsync mirip dengan ShowWindow
SubtractRect memuat persegi panjang lprcDst, yang merupakan hasil pengurangan lprcSrc2 dari persegi panjang lprcSrc1
TileWindows mengatur jendela dalam urutan ubin
UnionRect memuat persegi panjang target lpDestRect, yang merupakan hasil gabungan dari lpSrc1Rect dan lpSrc2Rect
UpdateWindow memaksa pembaruan jendela segera
ValidateRect memvalidasi seluruh atau sebagian area klien jendela
WindowFromPoint mengembalikan pegangan ke jendela yang berisi titik tertentu. Abaikan jendela bertopeng, tersembunyi, dan transparan
2. Fungsi perangkat keras dan sistem
ActivateKeyboardLayout mengaktifkan tata letak keyboard baru. Tata letak keyboard menentukan lokasi dan arti tombol pada keyboard fisik
Bip digunakan untuk menghasilkan suara sederhana
CharToOem mengonversi string dari kumpulan karakter ANSI ke kumpulan karakter OEM
ClipCursor membatasi penunjuk ke area tertentu
ConvertDefaultLocale mengubah pengenal lokal khusus menjadi ID lokal nyata
CreateCaret membuat tanda sisipan (kursor) berdasarkan informasi yang ditentukan dan memilihnya sebagai tanda sisipan default untuk jendela yang ditentukan
DestroyCaret membersihkan (menghancurkan) tanda sisipan
EnumCalendarInfo menghitung informasi kalender yang tersedia di lingkungan "lokal" yang ditentukan
EnumDateFormats menyebutkan format tanggal panjang dan pendek yang tersedia dalam pengaturan "lokal" yang ditentukan
EnumSystemCodePages menghitung halaman kode yang diinstal atau didukung pada sistem
EnumSystemLocales menyebutkan pengaturan "lokal" yang telah diinstal atau didukung oleh sistem
EnumTimeFormats menyebutkan format waktu yang berlaku untuk lokasi tertentu
ExitWindowsEx keluar dari jendela dan memulai ulang dengan opsi tertentu
ExpandEnvironmentStrings memperluas string lingkungan
FreeEnvironmentStrings menerjemahkan blok string lingkungan yang ditentukan
GetACP menentukan halaman kode ANSI yang sedang berlaku
GetAsyncKeyState menentukan status kunci virtual yang ditentukan saat fungsi dipanggil
GetCaretBlinkTime menentukan frekuensi kedipan kursor tanda sisipan
GetCaretPos menentukan posisi tanda sisipan saat ini
GetClipCursor Mendapatkan persegi panjang yang menjelaskan area kliping yang saat ini ditentukan untuk penunjuk tetikus
GetCommandLine mendapat penunjuk ke buffer baris perintah saat ini
GetComputerName mendapatkan nama komputer ini
GetCPInfo memperoleh informasi terkait halaman kode yang ditentukan
GetCurrencyFormat memformat angka sesuai dengan format mata uang untuk pengaturan "lokal" yang ditentukan
GetCursor Mendapatkan pegangan penunjuk tetikus yang dipilih saat ini
GetCursorPos mendapatkan posisi penunjuk tetikus saat ini
GetDateFormat memformat tanggal sistem dalam format "lokal" yang ditentukan
GetDoubleClickTime menentukan interval waktu antara dua klik mouse berturut-turut yang akan diproses sebagai peristiwa klik dua kali.
GetEnvironmentStrings mengalokasikan dan mengembalikan pegangan ke blok memori yang berisi pengaturan string lingkungan saat ini.
GetEnvironmentVariable mendapatkan nilai variabel lingkungan
GetInputState menentukan apakah ada kejadian mouse atau keyboard yang tertunda (menunggu diproses).
GetKBCodePage digantikan oleh GetOEMCP, kedua fungsinya sama persis
GetKeyboardLayout memperoleh pegangan yang menjelaskan tata letak keyboard aplikasi tertentu
GetKeyboardLayoutList mendapatkan daftar semua tata letak keyboard yang berlaku pada sistem
GetKeyboardLayoutName mendapatkan nama tata letak keyboard yang sedang aktif
GetKeyboardState mendapatkan status terkini dari setiap tombol virtual pada keyboard
GetKeyboardType mendapat informasi tentang keyboard yang digunakan
GetKeyNameText menentukan nama kunci yang diberikan kode pindaian.
GetKeyState menentukan status kunci virtual yang ditentukan untuk kunci yang telah diproses saat informasi terakhir dimasukkan.
GetLastError menargetkan fungsi api yang dipanggil sebelumnya. Gunakan fungsi ini untuk mendapatkan informasi kesalahan yang diperluas.
GetLocaleInfo memperoleh informasi terkait "tempat" yang ditentukan
GetLocalTime mendapatkan tanggal dan waktu lokal
GetNumberFormat memformat angka dalam format tertentu untuk "tempat" yang ditentukan
GetOEMCP menentukan halaman kode windows untuk mengkonversi antara kumpulan karakter OEM dan ANSI
GetQueueStatus menentukan jenis pesan yang tertunda (menunggu diproses) dalam antrian pesan aplikasi
GetSysColor menentukan warna objek tampilan windows yang ditentukan
GetSystemDefaultLangID mendapatkan ID bahasa default sistem
GetSystemDefaultLCID mendapatkan "tempat" sistem default saat ini
GetSystemInfo memperoleh informasi terkait platform perangkat keras yang mendasarinya
GetSystemMetrics mengembalikan informasi yang berkaitan dengan lingkungan windows
GetSystemPowerStatus memperoleh informasi terkait status daya sistem saat ini
GetSystemTime memperoleh waktu sistem saat ini. Kali ini menggunakan format "Waktu Dunia Terkoordinasi" (yaitu UTC, juga disebut GMT).
GetSystemTimeAdjustment menyinkronkan jam sistem internal dengan sumber jam eksternal
GetThreadLocale mendapatkan ID lokal dari thread saat ini
GetTickCount digunakan untuk mendapatkan durasi waktu (milidetik) yang telah berlalu sejak Windows dimulai
GetTimeFormat memformat waktu sistem dalam format tertentu untuk "tempat" yang ditentukan saat ini
GetTimeZoneInformation memperoleh informasi terkait pengaturan zona waktu sistem
GetUserDefaultLangID mendapatkan ID bahasa default untuk pengguna saat ini
GetUserDefaultLCID Mendapatkan pengaturan "lokal" default pengguna saat ini
GetUserName mendapatkan nama pengguna saat ini
GetVersion menentukan versi Windows dan DOS yang sedang berjalan
GetVersionEx memperoleh informasi versi yang terkait dengan platform dan sistem operasi
HideCaret menyembunyikan tanda sisipan (kursor) di jendela yang ditentukan
IsValidCodePage menentukan apakah halaman kode valid
IsValidLocale menentukan apakah pengenal lokal valid
Fungsi keybd_event menyimulasikan tindakan keyboard
LoadKeyboardLayout memuat tata letak keyboard
MapVirtualKey melakukan pemindaian kode dan konversi karakter yang berbeda berdasarkan jenis pemetaan yang ditentukan.
MapVirtualKeyEx melakukan pemindaian kode dan konversi karakter yang berbeda berdasarkan jenis pemetaan yang ditentukan.
MessageBeep memutar suara sistem. Rencana distribusi suara sistem ditentukan di panel kontrol
mouse_event menyimulasikan kejadian mouse
OemKeyScan menentukan kode pindaian dan status tombol Shift karakter ASCII dalam kumpulan karakter OEM
OemToChar mengonversi string dari kumpulan karakter OEM ke kumpulan karakter ANSI
SetCaretBlinkTime menentukan frekuensi kedipan tanda sisipan (kursor)
SetCaretPos menentukan posisi tanda sisipan
SetComputerName menetapkan nama komputer baru
SetCursor menyetel penunjuk tetikus yang ditentukan ke penunjuk saat ini
SetCursorPos mengatur posisi penunjuk
SetDoubleClickTime menetapkan interval waktu antara dua klik mouse berturut-turut yang dianggap oleh sistem sebagai peristiwa klik dua kali.
SetEnvironmentVariable menyetel variabel lingkungan ke nilai yang ditentukan
SetKeyboardState menyetel status saat ini dari setiap tombol virtual pada keyboard
SetLocaleInfo mengubah informasi pengaturan "lokal" pengguna
SetLocalTime menyetel waktu lokal saat ini
SetSysColors mengatur warna objek yang ditampilkan di jendela tertentu
SetSystemCursor mengubah penunjuk sistem standar apa pun
SetSystemTime mengatur waktu sistem saat ini
SetSystemTimeAdjustment secara berkala menambahkan nilai kalibrasi untuk menyinkronkan jam sistem internal dengan sumber sinyal jam eksternal.
SetThreadLocale menyetel lokal untuk thread saat ini
SetTimeZoneInformation menetapkan informasi zona waktu sistem
ShowCaret menampilkan tanda sisipan (kursor) di jendela yang ditentukan
ShowCursor mengontrol visibilitas penunjuk tetikus
SwapMouseButton menentukan apakah akan menukar fungsi tombol kiri dan kanan mouse
SystemParametersInfo mendapatkan dan menetapkan sejumlah besar parameter sistem windows
SystemTimeToTzSpecificLocalTime mengubah waktu sistem menjadi waktu lokal
ToAscii mengubah kunci virtual menjadi karakter ASCII berdasarkan kode pemindaian dan informasi keyboard saat ini.
ToUnicode mengubah kunci virtual menjadi karakter Unicode berdasarkan kode pemindaian dan informasi keyboard saat ini
UnloadKeyboardLayout membongkar tata letak keyboard yang ditentukan
VkKeyScan menentukan kode kunci virtual dan status tombol Shift berdasarkan karakter ASCII dalam kumpulan karakter Windows
lebih
3. Fungsi menu
AppendMenu menambahkan item menu ke menu yang ditentukan
CheckMenuItem memeriksa atau menghapus centang item menu yang ditentukan
CheckMenuRadioItem menetapkan bahwa item menu dicentang sebagai item "radio".
CreateMenu membuat menu baru
CreatePopupMenu membuat menu popup kosong
DeleteMenu menghapus entri menu yang ditentukan
DestroyMenu menghapus menu yang ditentukan
DrawMenuBar menggambar ulang menu untuk jendela yang ditentukan
EnableMenuitem memungkinkan atau menonaktifkan item menu yang ditentukan
GetMenu mendapatkan pegangan menu di jendela
Getmenucheckmarkdimensions mengembalikan ukuran tanda centang menu
GetMenucontExthelpid Mendapat Bantuan Adegan ID Menu
GetMenudefaultItem menentukan item mana di menu adalah item default
GetMenuitemCount Mengembalikan jumlah item (item menu) di menu
GetMenuitemid Mengembalikan ID menu item yang terletak di posisi yang ditentukan di menu
GetMenuitemInfo mendapatkan (menerima) informasi spesifik yang terkait dengan item menu
GetMenuitemrect memuat informasi koordinat layar dari item menu yang ditentukan dalam persegi panjang
GetMenustate memperoleh informasi yang terkait dengan keadaan item menu yang ditentukan
GetMenustring mendapatkan string dari item menu yang ditentukan
Gotubmenu mendapatkan pegangan menu pop-up, yang terletak di posisi yang ditentukan di menu
GetSystemMenu mendapatkan pegangan menu sistem dari jendela yang ditentukan
HILITEMENUITEM mengontrol keadaan penyorotan item menu tingkat atas
InsertMenu memasukkan entri menu pada posisi yang ditentukan di menu, memindahkan entri lain sesuai kebutuhan
InsertMenuitem menyisipkan item menu baru
Ismenu menentukan apakah pegangan yang ditentukan adalah pegangan menu
LoadMenu memuat menu dari modul atau contoh aplikasi yang ditentukan
LoadMenuIndirect memuat menu
MenuitemFrompoint menentukan item menu mana yang berisi titik tertentu di layar
ModifyMenu mengubah entri menu
Removemenu Menghapus entri menu yang ditentukan
SetMenu Mengatur menu jendela
SetMenucontExthelpid Mengatur ID Bantuan Adegan Menu
SetMenudefaultItem Mengatur item menu sebagai item default
SetMenuitEMBitMaps mengatur bitmap spesifik yang akan digunakan dalam item menu yang ditentukan alih -alih simbol cek standar (√)
SetMenuitemInfo Mengatur informasi yang ditentukan untuk item menu
Trackpopupmenu menampilkan menu sembulan di mana saja di layar
TrackPopupMenuex mirip dengan trackpopupmenu kecuali bahwa ia menyediakan fungsionalitas tambahan
lebih
Berikut ini adalah beberapa definisi jenis tentang fungsi menu
Menuiteminfo Struktur ini berisi informasi tentang item menu
TPMPARAMS Struktur ini digunakan oleh fungsi TrackPopupMenuex untuk mendukung fungsionalitas tambahan
4. Fungsi menggambar
Abortpath membuang semua jalur yang dipilih ke dalam adegan perangkat yang ditentukan. Juga membatalkan penciptaan jalur apa pun yang sedang berlangsung saat ini
Anglearc menggambar garis dengan busur yang menghubungkan
Arcdraw An Arc
Beginpath memulai cabang jalur
CancelDC membatalkan operasi menggambar panjang di utas lain
Chord menggambar akord
Closeenhmetafile menutup adegan perangkat metafile yang ditingkatkan dan mengembalikan pegangan ke metafile yang baru dibuat
CloseFigure Saat menggambar jalan setapak, tutup gambar yang saat ini terbuka.
ClosemetAfile menutup adegan perangkat metafile yang ditentukan dan mengembalikan pegangan ke metafile yang baru dibuat
Copyenhmetafile membuat salinan (salin) dari metafile yang ditingkatkan ditentukan
Copymetafile membuat salinan metafile (standar) yang ditentukan
CreateBrushIndirect membuat sikat berdasarkan struktur data logbrush
CreateBpatternBrush membuat kuas menggunakan bitmap yang tidak tergantung pada perangkat untuk menentukan gaya kuas (pola)
Createenhmetafile menciptakan adegan perangkat metafile yang disempurnakan
CreateThatchBrush membuat kuas dengan pola bayangan
CreateMetAfile membuat adegan perangkat metafile
CreatePatternBrush membuat kuas menggunakan bitmap yang menentukan pola sikat
CreatePencheates kuas dengan gaya, lebar dan warna yang ditentukan
CreatePenIndirect membuat pena berdasarkan struktur logpen yang ditentukan
CreateSolidBrush membuat kuas dengan warna solid
Deleteenhmetafile menghapus metafile yang ditingkatkan ditentukan
Deletemetafile menghapus metafile yang ditentukan
DeleteObject menghapus objek GDI dan semua sumber daya sistem yang digunakan oleh objek akan dirilis.
Drawedge menggambar perbatasan persegi panjang menggunakan gaya yang ditentukan
Fungsi Drawescape Escape mengirimkan data langsung ke driver perangkat tampilan
DrawFocusRect menarik fokus persegi panjang
Drawframecontrol menarik kontrol standar
Drawstate menerapkan berbagai efek pada operasi gambar atau menggambar
Ellipse menggambar elips yang dikelilingi oleh persegi panjang yang ditentukan
Endpath berhenti mendefinisikan jalan
EnumenhmetaFile mencantumkan catatan metafile individual untuk metafile yang ditingkatkan.
EnummetAfile menyebutkan catatan metafile individual untuk metafile windows standar
Enumobjects menyebutkan kuas dan kuas yang dapat digunakan dengan adegan perangkat yang ditentukan
ExtCreatePen membuat sikat yang diperluas (ornamen atau geometris)
ExtfloodFill mengisi area dengan sikat yang saat ini dipilih dalam adegan perangkat yang ditentukan.
Fillpath menutup bentuk terbuka di jalur dan mengisinya dengan sikat saat ini
Fillrect mengisi persegi panjang dengan sikat yang ditentukan
Flattenpath mengubah semua kurva di jalur menjadi segmen garis
Penyelenggara banjir mengisi area dalam adegan perangkat yang ditentukan dengan sikat yang saat ini dipilih
Framerect menggambar perbatasan di sekitar persegi panjang menggunakan sikat yang ditentukan
Gdicomment menambahkan pesan komentar ke adegan perangkat Metafile yang ditingkatkan yang ditentukan
Gdiflush melakukan operasi menggambar yang tertunda
GDIGETBATCHIMIT menentukan berapa banyak perintah menggambar GDI dalam antrian
GDISETBATCHLIMIT Menentukan berapa banyak perintah menggambar GDI yang dapat diantri
Getarcdirection menentukan arah gambar saat ini saat menggambar busur.
GetBkColor mendapatkan warna latar belakang saat ini dari adegan perangkat yang ditentukan
GetBkMode memperoleh mode pengisian latar belakang saat ini untuk adegan perangkat yang ditentukan.
GetBrushorgex menentukan titik awal sikat yang saat ini dipilih dalam adegan perangkat yang ditentukan
GetCurrentObject mendapatkan objek yang saat ini dipilih dari jenis yang ditentukan
GetCurrentPositionex mendapatkan posisi pena saat ini di adegan perangkat yang ditentukan
Getenhmetafile memperoleh pegangan metafile dari metafile yang disempurnakan yang terkandung dalam file disk
Getenhmetafilebits menyalin metafile ditingkatkan yang ditentukan ke buffer memori
GetenhmetAfileScription mengembalikan deskripsi metafile yang disempurnakan
Getenhmetafileader mendapatkan header metafile dari metafile yang disempurnakan
Getenhmetafilepaletteentries mendapatkan semua atau sebagian dari palet metafile yang disempurnakan
GetMetaFile mendapatkan pegangan metafile dari metafile yang terkandung dalam file disk
GetMetAfilebitSex menyalin Metafile yang ditentukan ke buffer memori
GetmiterLimit mendapatkan pengaturan batas lereng (mitter) dari adegan perangkat
GetNearestColor memperoleh warna solid yang paling dekat dengan warna yang ditentukan berdasarkan kemampuan tampilan perangkat.
GetObjectapi memperoleh struktur yang menggambarkan objek yang ditentukan
GetObjectType menentukan jenis objek GDI yang dirujuk oleh pegangan yang ditentukan
Getpath memperoleh serangkaian data yang mendefinisikan jalur saat ini
Getpixel memperoleh nilai RGB dari piksel di adegan perangkat yang ditentukan
GetPolyFillMode memperoleh mode pengisian poligon untuk adegan perangkat yang ditentukan
GetRop2 memperoleh mode gambar saat ini untuk adegan perangkat yang ditentukan
GetStockObject mendapatkan objek yang melekat (stok)
Getsyscolorbrush mendapat sikat untuk warna sistem standar apa pun
GetWinMetAfilebits Mengubah Metafile yang Ditingkatkan ke Metafile Windows Standar dengan Mengisi Buffer Dengan Data untuk Metafile Standar
Invertrect membalikkan persegi panjang yang ditentukan dalam adegan perangkat dengan membalikkan nilai setiap piksel.
Linedda menyebutkan semua titik di segmen garis yang ditentukan
Lineto menggunakan pena saat ini untuk menggambar garis dari posisi saat ini ke titik yang ditentukan.