2009-03-13 29 views

Trả lời

1

Nó được một lúc kể từ khi tôi đã sử dụng windows mobile — trở lại sau đó nó vẫn được gọi là pocketpc năm 2002, vì vậy đây có thể cách hết hạn — nhưng tại thời điểm đó đây là hành vi mặc định cho cách nhấn vào X trong phía trên bên phải của ứng dụng. Thay vì đóng, ứng dụng sẽ được gửi nền. Tôi lấy nó đã thay đổi?

+0

Tôi đồng ý. WinCE khác với máy khách hoặc máy chủ Windows. –

+0

Tôi biết về thuộc tính Form.MinimizeBox, thay đổi hành vi của nút "Ok" giữa "thu nhỏ" và "đóng". Những gì tôi đang tìm kiếm là một cách để giảm thiểu một biểu mẫu bằng mã. –

0

Gọi Ẩn() trên biểu mẫu đang hoạt động của bạn.

+0

Đó không phải là hành vi mà tôi đang tìm kiếm, vì biểu mẫu trở nên vô hình đối với Windows Mobile. Nó không thấy ứng dụng nữa. Tôi thực sự đang tìm cách chuyển về "quy trình trước" theo mã. –

+0

Vâng WinMo không có giảm thiểu trạng thái cho một cửa sổ. Những gì bạn có nghĩa là nó trở thành "vô hình"?Và khi bạn ẩn biểu mẫu của mình, Biểu mẫu cuối cùng được hiển thị sẽ ở trên cùng, trừ khi màn hình Hôm nay được đưa ra theo thứ tự Z hoặc quá trình khác đã bị chấm dứt. – ctacke

0

Tôi đang phát triển trên WinCE generic (4.2 và 5.0) vì vậy tôi không chắc chắn nếu giải pháp của tôi sẽ làm việc cho vấn đề Windows Mobile của bạn.

Trong trường hợp của chúng tôi, biểu mẫu cần thiết để chiếm toàn bộ màn hình (bao gồm ẩn thanh tác vụ), không có thanh tiêu đề, khả năng thu nhỏ thông qua mã và khi thu nhỏ nó sẽ hiển thị biểu tượng ứng dụng trên thanh tác vụ (để có thể được khôi phục) tập trung vào chương trình trước đó trên ngăn xếp ứng dụng. Nó không có vẻ quá tệ nhưng trong thực tế tôi không thể đáp ứng tất cả các yêu cầu cùng một lúc yêu cầu một số thủ đoạn.

Vì những người khác đã đăng không có Form.Minimize() trên khung nhỏ gọn.

  • Form.Hide() không cho tôi cách nào để khôi phục ứng dụng. P/Gọi ShowWindow(Form.Handle, 6), trong đó 6 = SW_MINIMIZE, sẽ thu nhỏ ứng dụng xuống thanh tác vụ nhưng chỉ khi Form.FormBorderStyle = Normal (thay vì Không) tuy nhiên điều này sẽ hiển thị thanh tiêu đề ứng dụng.
  • Tôi cần thiết để đặt Form.WindowState = Normal thay vì được tối đa hóa khi ứng dụng được thu nhỏ, nó sẽ khôi phục ngay lập tức.

Cuối cùng, tôi đã tập hợp những điều sau đây để có được những gì tôi muốn. Nó liên quan đến việc thiết lập kích thước ứng dụng bằng tay bằng cách điền vào màn hình VÀ với một số chiều cao thêm để tôi có thể nghiêng ứng dụng và di chuyển thanh tiêu đề khỏi màn hình có thể xem được.

public class MyForm 
{ 
    public MyForm() 
    { 
    InitializeComponent(); 

    NativeMethods.HideTaskbar(); 
    FormBorderStyle = FormBorderStyle.FixedSingle; 
    WindowState = FormWindowState.Normal; 
    Rectangle screenBounds = Screen.PrimaryScreen.Bounds; 
    int taskBarHeight = SystemInformation.MenuHeight; 
    NativeMethods.MoveWindow(Handle, 
           0, -taskBarHeight, 
           screenBounds.Width, screenBounds.Height + taskBarHeight); 
    } 

    public void HandleMinimize() 
    { 
    NativeMethods.ShowTaskBar(); 
    NativeMethods.ShowWindow(Handle, WindowShowStyle.Minimize); 
    } 

Chặn sự kiện khôi phục ứng dụng để ẩn thanh tác vụ phức tạp hơn và vì tác giả gốc không đề cập đến thanh tác vụ, tôi sẽ không tham gia.

Tất cả các phương thức lớp NativeMethods tĩnh là trình bao bọc cho các câu lệnh P/Invoke. Tham khảo phần coredll trong http://www.pinvoke.net để biết thêm thông tin về việc triển khai các mục này.

Các vấn đề liên quan