เหตุใดหน้าต่างนี้จึงมีมุมเป็นสี่เหลี่ยม


24

ใน Windows 7 ที่มีธีม Aero หน้าต่างการตั้งค่าของ Notepad ++ จะมีมุมเป็นรูปสี่เหลี่ยมไม่มีไอคอนเมนูระบบปุ่มปิดและ1pxขอบที่เข้มกว่า หน้าต่างนี้ยังมีAlwaysOnTopแอตทริบิวต์

Notepad ++
(ฉันปรับขนาดหน้าต่างให้พอดีกับความกว้าง640px)

ที่น่าสนใจพอคุณสามารถคัดลอกรูปแบบนี้ไปยังหน้าต่างอื่น ๆ ที่ใช้AutoHotkey ดังนั้นดูเหมือนว่าจะไม่มีกลอุบายที่เกี่ยวข้อง อย่างไรก็ตามฉันไม่คิดว่าฉันจะได้เห็นสไตล์หน้าต่างนี้จากที่อื่น

ใช้รูปแบบนี้โดย Microsoft หรือไม่ หน้าต่างประเภทนี้มีชื่อหรือไม่?


สำหรับสิ่งที่อยากรู้: Normal vs "Square"

ปกติ   เครื่องคิดเลข


ฉันคิดว่า (แต่ไม่แน่ใจ) ว่ากรอบงาน. NET จะให้เฟรมที่มีมุมโค้งมนตามค่าเริ่มต้นและไม่มีใครรู้สึกอยากเปลี่ยนเลย
soandos

เพราะ Apple มีสิทธิบัตรในมุมมน
Chloe

คำตอบ:


37

มันเรียกว่าเครื่องมือ (บาร์) หน้าต่าง หน้าต่างใด ๆ ที่มีWS_EX_TOOLWINDOWสไตล์เพิ่มเติมจะแสดงผลโดยไม่ต้องมีเมนูระบบหรือย่อเล็กสุด / ขยายกล่องและแถบหัวเรื่องเล็ก ๆ ใน Windows XP และสูงกว่า (รองรับธีม) หน้าต่างเครื่องมือมักจะแสดงผลโดยไม่มีมุมโค้งมน (อย่างน้อยกับธีมเริ่มต้น)

สไตล์นี้มักจะใช้สำหรับแถบเครื่องมือ (รูปที่ 1) คุณสามารถดูได้โดยการลากแถบเครื่องมือออกจากโปรแกรมที่ให้คุณจัดเรียงแถบเครื่องมือใหม่ ขอให้สังเกตว่ามันกลายเป็นหน้าต่างที่ดูเหมือนหนึ่งในคำถาม Windows Explorer ยังใช้สำหรับเดสก์ท็อปบอร์ด (รูปที่ 2) ซึ่งโดยทั่วไปแล้วเป็นสิ่งเดียวกัน คุณสามารถเห็นสิ่งเหล่านี้ได้โดยการลากโฟลเดอร์ไปที่ขอบหน้าจออันใดอันหนึ่งจากนั้นลากแถบเครื่องมือ / เดสก์ท็อปที่เป็นผลลัพธ์ออกไปที่เดสก์ท็อป

เห็นได้ชัดว่าบางโปรแกรมใช้สไตล์เพื่อจุดประสงค์อื่น ๆ ซึ่งมักจะเป็นวิธีในการสร้างบทสนทนาชั่วคราวที่เป็นกิริยาช่วยซึ่งเป็นลูกของโปรแกรมหลัก

หมายเหตุ: สิ่งนี้มีเอฟเฟ็กต์สองสามอย่าง (โดยทั่วไปสองอย่างแรกเป็นสาเหตุของการใช้งานที่ไม่ได้มาตรฐาน):

  • หน้าต่าง / กล่องโต้ตอบที่มีสไตล์นี้ไม่ได้รับปุ่มบนทาสก์บาร์
  • มันป้องกันAlt+ Tabbing ไปยังกล่องโต้ตอบ
  • นอกจากนี้ยังป้องกันไม่ให้Alt+ PrtScrจับภาพเพียงโต้ตอบ หน้าต่างโปรแกรมหลักทั้งหมดจะถูกดักจับ

รูปที่ 1:หน้าต่างแถบเครื่องมือ MSPaint

ป้อนคำอธิบายรูปภาพที่นี่

รูปที่ 2:เดสก์ท็อปของ Windows Explorer

ป้อนคำอธิบายรูปภาพที่นี่


Aha! นั่นทำให้รู้สึก :)
iglvzx

Alt+ PrintScreenจับภาพเฉพาะกล่องโต้ตอบใน Windows 7 ด้วยกล่องโต้ตอบการตั้งค่า Notepad ++
Bob

17

รายละเอียดนี้ชื่อของรูปแบบหน้าต่างนี้และตัวเลือกที่มีอยู่ใน. NET ดูคำตอบที่ยอดเยี่ยมของ @ Synetech สำหรับจุดประสงค์ดั้งเดิมของรูปแบบหน้าต่างนี้เหตุผลที่ใช้สำหรับกล่องโต้ตอบและการใช้งานในโปรแกรม Windows ที่ไม่มีการจัดการเช่น Notepad ++


หน้าต่างมีมุมสี่เหลี่ยมจัตุรัสและมีลักษณะเช่นนั้นเนื่องจากหนึ่งในผู้ออกแบบ / โปรแกรมเมอร์ของ Notepad ++ ตัดสินใจใช้รูปแบบหน้าต่างเฉพาะ Synetech ให้รายละเอียดเกี่ยวกับข้อดีของรูปแบบหน้าต่างนั้น

ใน. NET / Visual Studio นี้ตั้งอยู่ในFormBorderStyleคุณสมบัติของSystem.Windows.Forms.Formชั้นเรียน FixedToolWindowโดยเฉพาะมันเป็น ค่าที่เป็นไปได้อยู่ในการSystem.Windows.Forms.FormBorderStyleแจงนับ

ToolWindowใน .NET กับการทำงานทั้งหมดเป็นค่าเริ่มต้นเล็ก ๆ น้อย ๆ ที่แตกต่างจากธรรมดาWS_EX_TOOLWINDOWใน API ของ Windows แม้ว่าพวกเขาจะมีลักษณะเดียวกัน ด้วยการทดสอบผมตั้งใจว่าพวกเขาจะปรากฏบนแถบงานและพวกเขาจะปรากฏบนAlt+ Tabสลับงานเว้นแต่สถานที่ให้บริการในรูปแบบมีการตั้งค่าShowInTaskbar ส่งผลกระทบต่อการมองเห็นทั้งในทาสก์บาร์และ+ สำหรับs แต่เฉพาะทาสก์บาร์สำหรับผู้อื่นfalseShowInTaskbarAltTabToolWindow

ในขณะเดียวกันก็เป็นไปได้ที่จะลบไอคอน / ย่อเล็กสุด / คืนค่า / ขยายปุ่มออกจากรูปแบบหน้าต่างทั่วไปมากขึ้นแม้ว่าจะดูเหมือนจะไม่สามารถเพิ่มลงในToolWindows ได้ นอกจากนี้ยังเป็นไปได้ที่จะซ่อนหน้าต่างปกติจากแถบงาน

ทำงานเพียงประโยชน์WS_EX_TOOLWINDOWข้อเสนอเท่าที่ผมสามารถบอกได้ว่าเป็นหน้าต่างไม่ปรากฏใน+AltTab


ฉันได้รวมภาพหน้าจอบางส่วนเปรียบเทียบรูปแบบหน้าต่าง. เหล่านี้จะไม่ใช้โดยตรง Notepad ++ หรือโปรแกรมที่ไม่มีการจัดการอื่น ๆ แต่ได้รับการตั้งชื่อโดยไมโครซอฟท์เพื่อให้ ...

ค่าที่เป็นไปได้ของFormBorderStyle:

ภาพแรกเป็นภาพหน้าจอของโปรแกรมที่กำลังทำงานโดยเปิดใช้งาน Aero ภาพที่สองมาจากมุมมองผู้ออกแบบ Visual Studio (ไม่ใช่ Aero)
คลิกที่ภาพสำหรับรุ่นขนาดเต็ม
คำอธิบายจะนำมาจากบทความ MSDNในการFormBorderStyleแจงนับ

  • None

    ไม่มีพรมแดน

Screenshot_Aero Screenshot_NonAero

  • FixedSingle

    เส้นขอบคงที่บรรทัดเดียวคงที่

Screenshot_Aero Screenshot_NonAero

  • Fixed3D

    เส้นขอบคงที่สามมิติ

Screenshot_Aero Screenshot_NonAero

  • FixedDialog

    เส้นขอบสไตล์กล่องโต้ตอบคงที่หนา

Screenshot_Aero Screenshot_NonAero

  • Sizable (ค่าเริ่มต้น)

    เส้นขอบที่ปรับขนาดได้

Screenshot_Aero Screenshot_NonAero

  • FixedToolWindow

    เส้นขอบหน้าต่างเครื่องมือที่ไม่สามารถปรับขนาดได้ หน้าต่างเครื่องมือที่ไม่ปรากฏในแถบงานหรือในหน้าต่างที่ปรากฏขึ้นเมื่อกดผู้ใช้+ALT TABแม้ว่ารูปแบบที่ระบุว่าFixedToolWindowโดยทั่วไปแล้วจะไม่แสดงในแถบนี้คุณยังจะต้องให้แน่ใจว่าShowInTaskbarการตั้งค่าคุณสมบัติเนื่องจากค่าเริ่มต้นของมันคือfalsetrue

Screenshot_Aero Screenshot_NonAero

  • SizableToolWindow

    เส้นขอบหน้าต่างเครื่องมือที่ปรับขนาดได้ หน้าต่างเครื่องมือที่ไม่ปรากฏในแถบงานหรือในหน้าต่างที่ปรากฏขึ้นเมื่อกดผู้ใช้+ALTTAB

Screenshot_Aero Screenshot_NonAero


ใช่ สิ่งที่เรากำลังพูดถึง
avirk

มันไม่มีส่วนเกี่ยวข้องกับโค้ดที่มีการจัดการ / ไม่ได้จัดการหรือเนทีฟ /. NET มันเป็นเพียงเรื่องของการที่ Windows ใช้สไตล์กับWS_EX_TOOLWINDOWสไตล์ .NET เพียงนามแฝงFixedToolWindowไปWS_EX_TOOLWINDOWและจะSizableToolWindow WS_EX_TOOLWINDOW|WS_THICKFRAMEไม่มีความผิด แต่คำตอบนี้ไม่ได้ตอบคำถามหรืออธิบายพฤติกรรมที่ถามมันเป็นเพียงรายการ / ทรัพยากรของรูปแบบหน้าต่างที่แตกต่างกันที่ใช้ใน. NET
Synetech

@Synetech ฉันรู้ว่ามันไม่มีอะไรเกี่ยวข้องกับรหัสที่มีการจัดการหรือไม่ฉันแค่คิดว่าฉันจะให้ชื่อ. NET ใช้และตัวเลือกอื่น ๆ พร้อมกับภาพหน้าจอของความแตกต่าง Does this type of window have a name?มันตอบว่ามากอย่างน้อยจากมุมมองของโปรแกรมเมอร์ NET และคำอธิบาย? เพราะโปรแกรมเมอร์รู้สึกเหมือนใช้มัน คุณได้ระบุเอฟเฟกต์ที่ต้องการ เกี่ยวกับมัน. ไม่ว่าจะแนะนำหรือประณามโดย MS ฉันไม่มีความคิด โดยส่วนตัวแล้วฉันคิดว่าคุณอธิบายงานได้อย่างน่าชื่นชม
Bob

นั่นคือสิ่งที่แก้ไขสำหรับ
Synetech

@Synetech คืออะไร
Bob
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.