Tùy chỉnh GUI trong C++

Các bạn cho mình hỏi chút :

Để làm được cái GUI tùy chỉnh như cái máy tính trong hình thì nên dùng IDE, Framework, thư viện C++ nào nễ ăn nhất.

Cái này dùng cho Windows

1 Like

Mấy cái này các bạn không quan tâm lắm nhỉ ?

Bạn có thể dùng thư viện MFC của MS hoặc sử dụng winform trên visual nhé.
Đây là cách hướng dẫn sử dụng GUI winform :smile:
http://hoanganhblog.net/tao-mot-project-c-windows-form-danh-cho-vs2012-tro-len/

À ý mình là “Custom GUI

Tức là như hình mình đưa, tất cả đều tùy biến mạnh.

  • Các button sẽ không còn là hình chữ nhật mà có thể là hình khác . Ví dụ elip hay hình tròn.
  • Các control và Form sẽ dạng blur (mờ) và có thể có bóng đổ như bóng nắng.
  • Label hoặc TextBox có ảnh như phản chiếu qua gương… (Không dùng photoshop vì nội dung có thể thay đổi).

Thử tìm hiểu qua Devexpress

sao ko hỏi trực tiếp chủ nhân của cái máy tính củ chuối luôn :smile: Hay vô folder của nó xem các thư viện dll là gì, may ra có cơ sở nó viết bằng ngôn ngữ gì :sweat_smile:

trong window thi WPF nhe.

Theo kiến thức của mình thì Win Vista trở lên có thể làm thế này https://msdn.microsoft.com/en-gb/library/windows/desktop/bb688195(v=vs.85).aspx để được giao diện giống bộ Office, Windows Explorer.

Nhưng nếu muốn được như hình thì phải nghiên cứu cực sâu về Windows API, làm một cái borderless window, dùng 1 hoặc nhiều hình png để làm frame, dùng message để mô phỏng kéo thả cửa sổ… mình từng thử làm mà bỏ vì rắc rối quá :sweat:, một số link:
http://www.codeproject.com/Articles/573/CreateRegionFromFile
http://code5s.com/windows/visual-c-sharp/tao_form_co_hinh_dang_bat_ky.html (C# nhưng mình tin là có thể làm tương tự bên C++ nếu rành rọt WinAPI)
https://www.youtube.com/watch?v=DIWOi0S1tcA (Anh này chưa mô phỏng kéo thả)
http://www.vcskicks.com/custom_shape_form_region.php

Và: http://www.codeproject.com/Articles/1822/Per-Pixel-Alpha-Blend-in-C (Cũng lại là C#, nhưng thực ra là dùng WinAPI) <= Bạn nên đọc cái này, nhưng các tính năng còn lại vốn có của một cửa sổ thì bạn phải tự mô phỏng hết bằng WinAPI Message, hoặc bằng cách nào đó bên C#.

Mà đừng dùng DevExpress: chạy chậm thí mồ, nó vốn dùng để quản lý dữ liệu thôi.

1 Like

Devexpress là cho .NET mà bác.

Nó được làm từ WPF. Nhưng cái hình đó là để minh họa cái mong muốn của mình là làm nó với C++.

Mong muốn là Viết bằng C++

DevExpress là cho .Net, nhưng C++ trong VS cũng có thể dùng đầy đủ các công cụ làm giao diện của .Net bạn nhé.
Đó là Visual Studio, còn có một IDE và thư viện khác là Qt nhé, đây là một trình đồ họa mạnh và nổi tiếng.
Còn việc tạo ra được chương trình như hình bạn đưa, đương nhiên ko phải dễ ăn vào là làm được, mà bạn phải tạo ra các User Control rồi thêm vào các IDE trên tương ứng, và bạn có thể làm bằng flash hoặc photoshop để dễ dàng tạo ra các nút hay bất cứ component nào có hình dạng, màu sắc, độ trong suốt… theo ý bạn muốn.

À mình quên nhắc đến là không phải C++.NET. Vì mình còn muốn đa nền tảng và hiệu năng cao nữa.

Mình thiên về dùng các thư viện để tạo control chứ không dùng photoshop hay các trình sửa ảnh. Vì mình muốn tạo bóng 1 textbox hoặc label, cái mà nội dung sẽ thay đổi và bóng đổ cũng phải thay đổi theo :frowning:

Bổ sung luôn cho bạn cái này viết bằng C++ MFC:
http://www.codeproject.com/Articles/1036/Per-Pixel-Alpha-Blend
Và một cái Qt:
http://qt.developpez.com/tutoriels/braindeadbzh/customwindow/

Qt chắc dễ ăn nhất đó

chịu chơi thì xài thư viện game mà vẽ từng button rồi handle event các kiểu :sweat_smile: hay tự tạo hẳn 1 class Button nhỏ :joy: Còn chữ đổ bóng thì render ra 1 cái texture chính rồi flip vertical nó :joy:

1 Like

Nghe chừng khó ăn các bác nhỉ :smiley:
QT làm dài thế kia chắc dùng photoshop cho lẹ.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?