Nguồn: warped3.substack.com

Tóm tắt

Bài viết nhìn lại thời kỳ hoàng kim của lập trình Win32 API trực tiếp, khi các ứng dụng Windows có thể mang hình dạng bất thường — cửa sổ hình elip, hình cắt từ bitmap, hay nhân vật hoạt hình di chuyển trên desktop. Đây là kỹ thuật phổ biến trong thời Windows XP, khi Windows Media Player và nhiều app media player khác có giao diện giống phần cứng thực tế thay vì hộp chữ nhật đơn thuần.

Kỹ thuật cốt lõi là Win32 Region Object (HRGN): khi một region được gán vào window thông qua SetWindowRgn, chỉ phần nằm trong region đó mới hiển thị và nhận input. Ví dụ đơn giản nhất chỉ cần hai dòng — CreateEllipticRgnSetWindowRgn — để tạo cửa sổ hình oval thực sự, không phải oval vẽ bên trong khung chữ nhật. Phức tạp hơn là kỹ thuật dùng bitmap làm mask: từng pixel trên ảnh quyết định pixel nào thuộc window, cho phép tạo hình dạng tùy ý từ artwork.

Với hiệu ứng mềm mại và trong suốt, Win32 layered windows (WS_EX_LAYERED) với UpdateLayeredWindow cho phép upload ảnh 32-bit alpha, tạo ra desktop mascot với animation — window chính là những pixel đó, không cần cắt xén bằng region. Tuy nhiên, cái giá phải trả là khi bỏ default frame đi, toàn bộ behavior như dragging, resizing, hit testing, DPI handling đều phải tự xử lý.

Lý do window kỳ lạ biến mất không phải vì Windows không còn hỗ trợ, mà vì văn hóa desktop UI chuyển từ “nhìn xem app này trông độc lạ” sang “chạy ổn định và đừng cản trở tôi”. Phong cách đó dần bị liên kết với adware và bloatware, trong khi Electron/React chiếm lĩnh thị trường desktop với sự tiện lợi dù kém hiệu quả hơn nhiều.

👉 Đọc bài gốc