วิธีสร้างหน้าต่าง Windows

สารบัญ:

วิธีสร้างหน้าต่าง Windows
วิธีสร้างหน้าต่าง Windows

วีดีโอ: วิธีสร้างหน้าต่าง Windows

วีดีโอ: วิธีสร้างหน้าต่าง Windows
วีดีโอ: KNOWHOWSKILL_Door - Openu0026Close Windows(การสร้างหน้าต่างที่สามารถเปิดปิดได้ตามองศา) 2024, อาจ
Anonim

หลักการทำงานของส่วนต่อประสานผู้ใช้ของระบบปฏิบัติการตระกูล Windows นั้นขึ้นอยู่กับแนวคิดของหน้าต่าง เดสก์ท็อป แถบงาน รายการ กล่องโต้ตอบ ปุ่ม เมนู เป็นหน้าต่างทั้งหมด ดังนั้น ที่จริงแล้ว ในการแสดงองค์ประกอบอินเทอร์เฟซใด ๆ คุณต้องสร้างหน้าต่าง windows

วิธีสร้างหน้าต่าง Windows
วิธีสร้างหน้าต่าง Windows

จำเป็น

  • - คอมไพเลอร์;
  • - SDK แพลตฟอร์ม Windows

คำแนะนำ

ขั้นตอนที่ 1

ลงทะเบียนคลาสของหน้าต่างที่จะสร้าง ถ้าจำเป็น เรียกใช้ฟังก์ชัน API RegisterClass, RegisterClassEx หรือใช้ฟังก์ชันที่เหมาะสมของเฟรมเวิร์กที่ใช้

ฟังก์ชัน RegisterClass และ RegisterClassEx ยอมรับพอยน์เตอร์ไปยังโครงสร้างประเภท WNDCLASS และ WNDCLASSEX ตามลำดับ เป็นพารามิเตอร์เดียว ค่าส่งคืนของประเภท ATOM สามารถใช้แทนชื่อคลาสเมื่อสร้างหน้าต่าง หากการเรียกใช้ฟังก์ชันล้มเหลว ค่าส่งกลับเป็น 0

สร้างอินสแตนซ์โครงสร้างประเภท WNDCLASS หรือ WNDCLASSEX กรอกข้อมูลที่จำเป็นทั้งหมด โดยเฉพาะค่าที่ถูกต้องจะต้องอยู่ใน:

- cbSize - ขนาดโครงสร้างเป็นไบต์

- สไตล์ - ชุดสไตล์สำหรับคลาสหน้าต่าง

- lpfnWndProc - ตัวชี้ไปยังขั้นตอนหน้าต่าง

- hInstance คือหมายเลขอ้างอิงของโมดูลที่ลงทะเบียนคลาสหน้าต่าง

- lpszClassName เป็นชื่อเชิงสัญลักษณ์ของคลาส

ฟิลด์ที่เหลือสามารถเขียนด้วยค่า NULL เรียกใช้ฟังก์ชันเพื่อลงทะเบียนคลาสหน้าต่าง ตรวจสอบผลลัพธ์ที่ส่งคืน

ขั้นตอนที่ 2

เลือกคลาสหน้าต่างที่มีอยู่หากจำเป็น คุณต้องทราบชื่อคลาสสัญลักษณ์ (ชื่อที่ส่งผ่านตัวชี้ lpszClassName เมื่อลงทะเบียน) หรือค่า ATOM ที่สอดคล้องกัน คลาสสามารถเป็นแบบโลคัลที่ระดับแอปพลิเคชัน โกลบอลที่ระดับแอปพลิเคชัน (ลงทะเบียนด้วยแฟล็ก CS_GLOBALCLASS) หรือคลาสของระบบ ประเภทสุดท้ายรวมถึงคลาสของ windows ที่มีชื่อ: ปุ่ม, ComboBox, Edit, ListBox, MDIClient, ScrollBar, Static คลาส เช่น RichEdit20W หรือ SysListView32 ได้รับการลงทะเบียนเมื่อโหลดไลบรารีที่เกี่ยวข้อง

ขั้นตอนที่ 3

สร้างหน้าต่าง Windows ใช้ฟังก์ชัน API CreateWindow, CreateWindowEx หรือเมธอด wrapper ที่เหมาะสมสำหรับอ็อบเจ็กต์คลาสของเฟรมเวิร์กหรือไลบรารีที่คุณใช้ ต้นแบบสำหรับฟังก์ชัน CreateWindowEx มีลักษณะดังนี้:

HWND CreateWindowEx (DWORD dwExสไตล์, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwสไตล์, อินท์ x, อินท์ y, int nWidth, int nความสูง, HWND hWndผู้ปกครอง, HMENU hเมนู, คำแนะนำ hInstance, LPVOID lpParam);

ฟังก์ชัน CreateWindow แตกต่างจาก CreateWindowEx เฉพาะในกรณีที่ไม่มีพารามิเตอร์ dwExStyle

โทร CreateWindow หรือ CreateWindowEx ส่งผ่านพารามิเตอร์lpClassNameชื่อหรือค่า ATOM ของคลาสหน้าต่างที่คุณกำหนดไว้ในขั้นตอนแรกหรือขั้นตอนที่สอง พารามิเตอร์ x, y, nWidth, nHeight สามารถเป็นพิกัดและขนาดของหน้าต่างที่ถูกสร้างขึ้น หมายเลขอ้างอิงหน้าต่างหลัก (ถ้ามี) ถูกส่งผ่าน hWndParent

บันทึกและแยกวิเคราะห์ค่าที่ส่งกลับโดย CreateWindow หรือ CreateWindowEx เมื่อสำเร็จ พวกเขาจะคืนค่าแฮนเดิลไปที่หน้าต่างใหม่ หากล้มเหลว จะเป็น NULL

แนะนำ: