Bagikan melalui


Membuat makro CreateWindowW (winuser.h)

Membuat jendela tumpang tindih, pop-up, atau anak. Ini menentukan kelas jendela, judul jendela, gaya jendela, dan (opsional) posisi awal dan ukuran jendela. Fungsi ini juga menentukan induk atau pemilik jendela, jika ada, dan menu jendela.

Untuk menggunakan gaya jendela yang diperluas selain gaya yang didukung oleh CreateWindow, gunakan fungsi CreateWindowEx.

Sintaksis

HWND CreateWindowW(
  [in, optional] LPCWSTR   lpClassName,
  [in, optional] LPCWSTR   lpWindowName,
  [in]           DWORD     dwStyle,
  [in]           int       x,
  [in]           int       y,
  [in]           int       nWidth,
  [in]           int       nHeight,
  [in, optional] HWND      hWndParent,
  [in, optional] HMENU     hMenu,
  [in, optional] HINSTANCE hInstance,
  [in, optional] LPVOID    lpParam
);

Parameter

[in, optional] lpClassName

Jenis: LPCWSTR

Stringnull atau atom kelas yang dibuat oleh panggilan sebelumnya ke fungsi RegisterClass atau RegisterClassEx. Atom harus dalam kata urutan rendah lpClassName; kata urutan tinggi harus nol. Jika lpClassName adalah string, itu menentukan nama kelas jendela. Nama kelas dapat berupa nama apa pun yang terdaftar di RegisterClass atau RegisterClassEx, asalkan modul yang mendaftarkan kelas juga merupakan modul yang membuat jendela. Nama kelas juga dapat berupa salah satu nama kelas sistem yang telah ditentukan sebelumnya. Untuk daftar nama kelas sistem, lihat bagian Keterangan.

[in, optional] lpWindowName

Jenis: LPCWSTR

Nama jendela. Jika gaya jendela menentukan bilah judul, judul jendela yang ditunjukkan oleh lpWindowName ditampilkan di bilah judul. Saat menggunakan CreateWindow untuk membuat kontrol, seperti tombol, kotak centang, dan kontrol statis, gunakan lpWindowName untuk menentukan teks kontrol. Saat membuat kontrol statis dengan gaya SS_ICON, gunakan lpWindowName untuk menentukan nama ikon atau pengidentifikasi. Untuk menentukan pengidentifikasi, gunakan sintaks "#num".

[in] dwStyle

Jenis: DWORD

Gaya jendela yang sedang dibuat. Parameter ini dapat berupa kombinasi nilai gaya jendela , ditambah gaya kontrol yang ditunjukkan di bagian Keterangan.

[in] x

Jenis: int

Posisi horizontal awal jendela. Untuk jendela pop-up yang tumpang tindih atau tumpang tindih, parameter x adalah koordinat x awal sudut kiri atas jendela, dalam koordinat layar. Untuk jendela anak, x adalah koordinat x sudut kiri atas jendela relatif terhadap sudut kiri atas area klien jendela induk. Jika parameter ini diatur ke CW_USEDEFAULT, sistem memilih posisi default untuk sudut kiri atas jendela dan mengabaikan parameter y. CW_USEDEFAULT hanya berlaku untuk jendela yang tumpang tindih; jika ditentukan untuk jendela pop-up atau anak, parameter x dan y diatur ke nol.

[in] y

Jenis: int

Posisi vertikal awal jendela. Untuk jendela pop-up yang tumpang tindih atau tumpang tindih, parameter y adalah koordinat y awal sudut kiri atas jendela, dalam koordinat layar. Untuk jendela anak, y adalah koordinat y awal sudut kiri atas jendela anak relatif terhadap sudut kiri atas area klien jendela induk. Untuk kotak daftar, y adalah koordinat y awal dari sudut kiri atas area klien kotak daftar relatif terhadap sudut kiri atas area klien jendela induk.

Jika jendela yang tumpang tindih dibuat dengan set bit gaya WS_VISIBLE dan parameter x diatur ke CW_USEDEFAULT, parameter y menentukan bagaimana jendela ditampilkan. Jika parameter y CW_USEDEFAULT, maka manajer jendela memanggil ShowWindow dengan bendera SW_SHOW setelah jendela dibuat. Jika parameter y adalah beberapa nilai lain, maka manajer jendela memanggil ShowWindow dengan nilai tersebut sebagai parameter nCmdShow.

[in] nWidth

Jenis: int

Lebar, dalam unit perangkat, dari jendela. Untuk jendela yang tumpang tindih, nWidth adalah lebar jendela, dalam koordinat layar, atau CW_USEDEFAULT. Jika nWidthCW_USEDEFAULT, sistem memilih lebar dan tinggi default untuk jendela; lebar default meluas dari koordinat x awal ke tepi kanan layar, dan tinggi default meluas dari koordinat y awal ke bagian atas area ikon. CW_USEDEFAULT hanya berlaku untuk jendela yang tumpang tindih; jika CW_USEDEFAULT ditentukan untuk jendela pop-up atau turunan, nWidth dan nHeight diatur ke nol.

[in] nHeight

Jenis: int

Tinggi, di unit perangkat, dari jendela. Untuk jendela yang tumpang tindih, nHeight adalah tinggi jendela, dalam koordinat layar. Jika nWidth diatur ke CW_USEDEFAULT, sistem mengabaikan nHeight.

[in, optional] hWndParent

Jenis: HWND

Handel ke jendela induk atau pemilik jendela yang sedang dibuat. Untuk membuat jendela anak atau jendela yang dimiliki, berikan handel jendela yang valid. Parameter ini bersifat opsional untuk jendela pop-up.

Untuk membuat jendela khusus pesan , berikan HWND_MESSAGE atau handel ke jendela khusus pesan yang ada.

[in, optional] hMenu

Jenis: HMENU

Handel ke menu, atau menentukan pengidentifikasi jendela anak bergantung pada gaya jendela. Untuk jendela pop-up atau tumpang tindih, hMenu mengidentifikasi menu yang akan digunakan dengan jendela; dapat NULL jika menu kelas akan digunakan. Untuk jendela anak, hMenu menentukan pengidentifikasi jendela turunan, nilai bilangan bulat yang digunakan oleh kontrol kotak dialog untuk memberi tahu induknya tentang peristiwa. Aplikasi menentukan pengidentifikasi jendela anak; harus unik untuk semua jendela anak dengan jendela induk yang sama.

[in, optional] hInstance

Jenis: HINSTANCE

Handel ke instans modul yang akan dikaitkan dengan jendela.

[in, optional] lpParam

Jenis: LPVOID

Penunjuk ke nilai yang akan diteruskan ke jendela melalui struktur CREATESTRUCT (lpCreateParams anggota) yang ditunjukkan oleh lParam param pesan WM_CREATE. Pesan ini dikirim ke jendela yang dibuat oleh fungsi ini sebelum kembali.

Jika aplikasi memanggil CreateWindow untuk membuat jendela klien MDI, lpParam harus menunjuk ke struktur CLIENTCREATESTRUCT. Jika jendela klien MDI memanggil CreateWindow untuk membuat jendela anak MDI, lpParam harus menunjuk ke struktur MDICREATESTRUCT . lpParam mungkin NULL jika tidak diperlukan data tambahan.

Mengembalikan nilai

Jenis: HWND

Jika fungsi berhasil, nilai yang dikembalikan adalah handel ke jendela baru.

Jika fungsi gagal, nilai yang dikembalikan adalah NULL. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.

Komentar

Sebelum kembali, CreateWindow mengirim pesan WM_CREATE ke prosedur jendela. Untuk jendela yang tumpang tindih, pop-up, dan anak, CreateWindow mengirim pesan WM_CREATE, WM_GETMINMAXINFO, dan WM_NCCREATE ke jendela. Parameter lParam dari pesan WM_CREATE berisi pointer ke struktur CREATESTRUCT. Jika gaya WS_VISIBLE ditentukan, CreateWindow mengirim jendela semua pesan yang diperlukan untuk mengaktifkan dan menampilkan jendela.

Jika jendela yang dibuat adalah jendela anak, posisi defaultnya berada di bagian bawah urutan Z. Jika jendela yang dibuat adalah jendela tingkat atas, posisi defaultnya berada di bagian atas urutan Z (tetapi di bawah semua jendela paling atas kecuali jendela yang dibuat sendiri paling atas).

Untuk informasi tentang mengontrol apakah Bilah Tugas menampilkan tombol untuk jendela yang dibuat, lihat Mengelola Tombol Bilah Tugas.

Untuk informasi tentang menghapus jendela, lihat fungsi DestroyWindow.

Kelas sistem yang telah ditentukan sebelumnya berikut dapat ditentukan dalam parameter lpClassName. Perhatikan gaya kontrol terkait yang dapat Anda gunakan dalam parameter dwStyle.

Kelas sistem Arti
TOMBOL Menunjuk jendela anak persegi kecil yang mewakili tombol yang dapat diklik pengguna untuk mengaktifkan atau menonaktifkannya. Kontrol tombol dapat digunakan sendiri atau dalam grup, dan dapat diberi label atau muncul tanpa teks. Kontrol tombol biasanya mengubah tampilan saat pengguna mengkliknya. Untuk informasi selengkapnya, lihat tombol

Untuk tabel gaya tombol yang dapat Anda tentukan dalam parameter dwStyle, lihat Gaya Tombol.

COMBOBOX Menunjuk kontrol yang terdiri dari kotak daftar dan bidang pilihan yang mirip dengan kontrol edit. Saat menggunakan gaya ini, aplikasi harus menampilkan kotak daftar setiap saat atau mengaktifkan kotak daftar drop-down. Jika kotak daftar terlihat, mengetik karakter ke dalam bidang pilihan menyoroti entri kotak daftar pertama yang cocok dengan karakter yang dititik. Sebaliknya, memilih item dalam kotak daftar menampilkan teks yang dipilih di bidang pilihan.

Untuk informasi selengkapnya, lihat Combo Boxes. Untuk tabel gaya kotak kombo yang bisa Anda tentukan dalam parameter dwStyle, lihat Gaya Kotak Kombo.

EDIT Menunjuk jendela anak persegi panjang tempat pengguna dapat mengetik teks dari keyboard. Pengguna memilih kontrol dan memberinya fokus keyboard dengan mengkliknya atau memindahkannya dengan menekan tombol TAB. Pengguna dapat mengetik teks saat kontrol edit menampilkan tanda sisipan yang berkedip; gunakan mouse untuk memindahkan kursor, memilih karakter yang akan diganti, atau memosisikan kursor untuk menyisipkan karakter; atau gunakan kunci BACKSPACE untuk menghapus karakter. Untuk informasi selengkapnya, lihat Edit Kontrol.

Untuk tabel gaya kontrol edit yang bisa Anda tentukan dalam parameter dwStyle, lihat Edit Gaya Kontrol.

LISTBOX Menunjuk daftar string karakter. Tentukan kontrol ini setiap kali aplikasi harus menyajikan daftar nama, seperti nama file, tempat pengguna dapat memilih. Pengguna dapat memilih string dengan mengkliknya. String yang dipilih disorot, dan pesan pemberitahuan diteruskan ke jendela induk. Untuk informasi selengkapnya, lihat Kotak Daftar.

Untuk tabel gaya kotak daftar yang bisa Anda tentukan dalam parameter dwStyle, lihat Gaya Kotak Daftar.

MDICLIENT Menunjuk jendela klien MDI. Jendela ini menerima pesan yang mengontrol jendela anak aplikasi MDI. Bit gaya yang direkomendasikan adalah WS_CLIPCHILDREN dan WS_CHILD. Tentukan gaya WS_HSCROLL dan WS_VSCROLL untuk membuat jendela klien MDI yang memungkinkan pengguna menggulir jendela anak MDI ke tampilan.

Untuk informasi selengkapnya, lihat Beberapa Antarmuka Dokumen.

RichEdit Menunjuk kontrol Microsoft Rich Edit 1.0. Jendela ini memungkinkan pengguna melihat dan mengedit teks dengan pemformatan karakter dan paragraf, dan dapat menyertakan objek Model Objek Komponen (COM) yang disematkan. Untuk informasi selengkapnya, lihat Kontrol Edit Kaya.

Untuk tabel gaya kontrol edit kaya yang bisa Anda tentukan dalam parameter dwStyle, lihat Gaya Kontrol Edit Kaya.

RICHEDIT_CLASS Menunjuk kontrol Microsoft Rich Edit 2.0. Kontrol ini memungkinkan pengguna melihat dan mengedit teks dengan pemformatan karakter dan paragraf, dan dapat menyertakan objek COM yang disematkan. Untuk informasi selengkapnya, lihat Kontrol Edit Kaya.

Untuk tabel gaya kontrol edit kaya yang bisa Anda tentukan dalam parameter dwStyle, lihat Gaya Kontrol Edit Kaya.

SCROLLBAR Menunjuk persegi panjang yang berisi kotak gulir dan memiliki panah arah di kedua ujungnya. Bilah gulir mengirim pesan pemberitahuan ke jendela induknya setiap kali pengguna mengklik kontrol. Jendela induk bertanggung jawab untuk memperbarui posisi kotak gulir, jika perlu. Untuk informasi selengkapnya, lihat bilah Gulir .

Untuk tabel gaya kontrol bilah gulir yang bisa Anda tentukan dalam parameter dwStyle, lihat Gaya Kontrol Bilah Gulir.

STATIS Menunjuk bidang teks, kotak, atau persegi panjang sederhana yang digunakan untuk memberi label, kotak, atau memisahkan kontrol lainnya. Kontrol statis tidak mengambil input dan tidak memberikan output. Untuk informasi selengkapnya, lihat Kontrol Statis.

Untuk tabel gaya kontrol statis yang dapat Anda tentukan dalam parameter dwStyle, lihat Gaya Kontrol Statis.

 

CreateWindow diimplementasikan sebagai panggilan ke fungsi CreateWindowEx, seperti yang ditunjukkan di bawah ini.

#define CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\
CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)

#define CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\
CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)

#ifdef UNICODE
#define CreateWindow  CreateWindowW
#else
#define CreateWindow  CreateWindowA
#endif

Contoh

Misalnya, lihat Menggunakan Kelas Jendela.

Nota

Header winuser.h mendefinisikan CreateWindow sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosedur UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Platform Target Windows
Header winuser.h (termasuk Windows.h)

Lihat juga

Tentang Antarmuka Beberapa Dokumen

Kelas Jendela Kontrol Umum

Konseptual

CreateWindowEx

DestroyWindow

EnableWindow

Sumber Daya Lain

Referensi

RegisterClass

RegisterClassEx

ShowWindow

WM_COMMAND

WM_CREATE

WM_GETMINMAXINFO

WM_NCCREATE

WM_PAINT

Windows