Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 21 kết quả

Đề tài: Bạn nào có thể cho mình biết làm sao để tạo một form không tiêu đề và di chuyển được bằng C++ không?? (Không dùng .NET)

  1. #1
    Ngày gia nhập
    10 2018
    Bài viết
    6

    Talking Bạn nào có thể cho mình biết làm sao để tạo một form không tiêu đề và di chuyển được bằng C++ không?? (Không dùng .NET)

    Như ở trên. Mình chỉ thích những cái có sẵn trong máy để làm ra sản phẩm chứ không muốn dùng những cái phải tải về. Mà trước đây toàn phụ thuộc vào .NET nên ức chế lắm.
    Hình như là include windows.h

  2. #2
    Ngày gia nhập
    07 2011
    Nơi ở
    Moscow-Russia
    Bài viết
    140

    Không hiểu ý của bạn. Rõ hơn được không nhỉ? Đâu là cái có sẵn, đâu là cái tải về, đâu là cái của bạn?
    A good beginning and a good ending !

  3. #3
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    868

    Mặc định Cách di chuyển một cửa sổ Win32 không có thanh tiêu đề

    1. Chặn thông điệp WM_NCHITTEST
    2. Gọi và lấy kết quả trả về từ hàm xử lý thông điệp mặc định
    3. Nếu kết quả trả về từ hàm xử lý thông điệp mặc định là HTCLIENT thì trả về HTCAPTION, khác đi trả về kết quả từ bước 2

    Visual C++ Code:
    1. #include<Windows.h>
    2.  
    3. LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
    4. {
    5.     switch (message)
    6.     {
    7.     case WM_NCHITTEST:
    8.         // Gọi thủ tục mặc định trước, xem và trả về với giá trị thích hợp
    9.         LRESULT lr;
    10.         lr = DefWindowProc(hwnd, message, wparam, lparam);
    11.         return (lr == HTCLIENT) ? HTCAPTION : lr;
    12.     case WM_CHAR:
    13.         // Dùng tạm phím 'Z' để đóng cửa sổ
    14.         if (wparam == 'z' || wparam == 'Z')
    15.         {
    16.             DestroyWindow(hwnd);
    17.             return 0;
    18.         }
    19.         break;
    20.     case WM_DESTROY:
    21.         PostQuitMessage(0);
    22.         return 0;
    23.     }
    24.     return DefWindowProc(hwnd, message, wparam, lparam);
    25. }
    26.  
    27. int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow)
    28. {
    29.     WNDCLASS    w;
    30.     w.cbClsExtra = 0;
    31.     w.cbWndExtra = 0;
    32.     w.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH);
    33.     w.hCursor = LoadCursor(NULL, IDC_ARROW);
    34.     w.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    35.     w.hInstance = hInst;
    36.     w.lpfnWndProc = WndProc;
    37.     w.lpszClassName = TEXT("NoTitle");
    38.     w.lpszMenuName = NULL;
    39.     w.style = CS_HREDRAW | CS_VREDRAW;
    40.     if (!RegisterClass(&w))
    41.         return 0;
    42.  
    43.     // Tạo cửa sổ không kiểu và thiết lập WindowLong trước khi hiển thị nó
    44.     HWND    hwnd = CreateWindow(w.lpszClassName, NULL, NULL, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInst, NULL);
    45.     SetWindowLongPtr(hwnd, GWL_STYLE, 0);
    46.     ShowWindow(hwnd, nShow);
    47.     UpdateWindow(hwnd);
    48.  
    49.     MSG     message;
    50.     while (GetMessage(&message, NULL, 0, 0))
    51.     {
    52.         TranslateMessage(&message);
    53.         DispatchMessage(&message);
    54.     }
    55.     return message.wParam;
    56. }

  4. #4
    Ngày gia nhập
    08 2017
    Bài viết
    1,955

    dùng .NET thì làm như thế nào ?

    Với Win > 7 chưa biết làm sao gỡ bò .NET đây, nó có sẵn (4.0)

  5. #5
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    868

    Không hiểu sao bạn hiền cứ muốn lạc đề. Dừng lại thôi !!!

  6. #6
    Ngày gia nhập
    08 2017
    Bài viết
    1,955

    Mặc định Bạn nào có thể cho mình biết làm sao để tạo một form không tiêu đề và di chuyển được bằng C++ không?? (Không dùng .NET)

    Trích dẫn Nguyên bản được gửi bởi VnMine001 Xem bài viết
    Như ở trên. Mình chỉ thích những cái có sẵn trong máy để làm ra sản phẩm chứ không muốn dùng những cái phải tải về. Mà trước đây toàn phụ thuộc vào .NET nên ức chế lắm.
    Hình như là include windows.h
    Lạc chỗ nào ?
    windows.h có sẵn từ lúc nào !

  7. #7
    Ngày gia nhập
    07 2011
    Nơi ở
    Moscow-Russia
    Bài viết
    140

    Trích dẫn Nguyên bản được gửi bởi Monre Xem bài viết
    Lạc chỗ nào ?
    windows.h có sẵn từ lúc nào !
    Chuẩn !

    Thực tế, bạn đó dùng trình biên dịch C++ thì mình hỏi lại: thế trình biên dịch này có phải bạn tải về rồi cài ra hay là nó là cái sẵn có khi bạn cài xong hệ điều hành Winodows? Hơn nữa, bạn phụ thuộc vào .NET như thế nào mà bảo là ức chế? Càng đọc càng chẳng hiểu.

    Còn hướng dẫn của bạn MHoang thì đúng là dùng để tạo một cửa sổ không Title và có thể di chuyển được, và để an toàn về việc không có nút close kết thúc ứng dụng thì tác giả cũng đề xuất dùng phím z (hoặc Z). Tuy nhiên, mình không rõ có thỏa mãn được yêu cầu về tính sử dụng những cái có sẵn (như là header Windows.h hay đơn giản nhất là cái IDE đang dùng, nó là cái mà bạn cần phải tải về chứ nó cũng không phải là cái sẵn có????).

    Hơn nữa, nếu làm bằng C# (cái mà bạn nói trên nền .NET bạn rất ức chế) thì cũng giải quyết bài toán rất đơn giản, chẳng hề ức chế tí nào. Nếu bạn đưa ra được những ức chế của bạn thì mình sẽ đề xuất cho bạn cách xử lý, đơn giản hơn rất nhiều so với những gì code trên của bạn MHoang đề xuất. Và mình nói lại rằng, .NET cũng là một cái có sẵn đó bạn nhé (còn tùy phiên bản, nhưng khi cài hệ điều hành, bạn đã có sẵn .NET rồi).
    Đã được chỉnh sửa lần cuối bởi Moscow : 13-10-2018 lúc 07:24 PM.
    A good beginning and a good ending !

  8. #8
    Ngày gia nhập
    10 2018
    Bài viết
    6

    Trích dẫn Nguyên bản được gửi bởi Monre Xem bài viết
    Lạc chỗ nào ?
    windows.h có sẵn từ lúc nào !
    Chứ ví dụ bạn làm form bằng windows.h đi sau đó thì gửi qua máy khác vẫn chạy tốt.
    Còn cái .NET phải tải về bằng cả hai máy nên không tiện.

  9. #9
    Ngày gia nhập
    07 2011
    Nơi ở
    Moscow-Russia
    Bài viết
    140

    [QUOTE=VnMine001;941712]Chứ ví dụ bạn làm form bằng windows.h đi sau đó thì gửi qua máy khác vẫn chạy tốt.
    Còn cái .NET phải tải về bằng cả hai máy nên không tiện.[/QUOT]

    Vậy thì C#.NET nên vứt bỏ bạn nhỉ?
    A good beginning and a good ending !

  10. #10
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    868

    Phải nói rõ là chủ đề tài diễn đạt không thoát ý nên tạo vài hiểu lầm không đáng có (nạp và không nạp), tôi hiều bạn ấy nói điều gì nên tôi tham gia điều đó. Còn cái .NET bạn ấy không muốn bàn tới là quyền của bạn đó, và đã đóng mở ngoặc để nhấn mạnh. Vậy mà monre cứ cố tình gán ghép cái người ta không muốn bàn thì có khác gì lạc đề. !!!

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn