Tôi đã có một ứng dụng MFC đơn giản hiện có mà người dùng chỉ định tệp đầu vào, tệp đầu ra và sau đó là nút "Quy trình". Tôi chỉ muốn thêm khả năng để các tập tin đầu vào/đầu ra là các tham số dòng lệnh. Nhưng, nếu chúng tồn tại, tôi không muốn GUI hiển thị. Tôi chỉ muốn "Quy trình" thực hiện. Tôi thấy nơi tôi có thể nhận được các tham số dòng lệnh (m_lpCmdLine) nhưng làm thế nào tôi có thể bỏ qua việc hiển thị GUI? Nếu tôi bước vào ứng dụng, nó sẽ chuyển trực tiếp đến winmain.cpp và hiển thị GUI mà không cần bước vào bất kỳ mã nào của tôi.Làm cách nào để bỏ qua GUI trong ứng dụng MFC nếu các tùy chọn dòng lệnh tồn tại?
5
A
Trả lời
3
MFC thiết lập một lớp sẽ được gọi là C [Tên ứng dụng của bạn] Ứng dụng (ví dụ: CExampleApp) lưu trữ trong [Tên ứng dụng của bạn] .h/.cpp (ví dụ: Example.h/.cpp) Tại đây bạn sẽ có một chức năng được gọi là "InitInstance" (một lần nữa được tạo tự động bởi MFC). Nếu bạn đã tạo ra một ứng dụng Dialog dựa sau đó bạn sẽ có một chút mã mà trông như thế này trong hàm:
CExampleDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
Cụ thể là "dlg.DoModal()" gọi sẽ gọi cửa sổ hộp thoại của bạn. Nếu bạn tránh điều đó thì GUI sẽ không bao giờ bắt đầu.
Nếu bạn đang sử dụng một ứng dụng MDI sau đó bạn sẽ có một số mã như thế này:
// create main MDI Frame window
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
Điều này tạo ra và thấy cửa sổ chính của bạn. Tránh điều này và không có cửa sổ nào được tạo. Tuy nhiên, bạn PHẢI trả về FALSE từ hàm InitInstance, mặc dù nó sẽ nhập vào máy bơm ứng dụng.
Các vấn đề liên quan
- 1. .NET C# GUI ứng dụng Dòng lệnh
- 2. Có thể nhận gcc để bỏ qua các tùy chọn dòng lệnh không xác định không?
- 3. Bỏ qua tải xuống nếu tệp tồn tại trong wget?
- 4. Làm cách nào để gọi Graphviz GUI từ dòng lệnh?
- 5. Tạo GUI với MFC
- 6. Cách được khuyến nghị để bỏ qua các ứng dụng GUI của Python là gì?
- 7. Làm thế nào để chuyển các tùy chọn liên kết tới msbuild thông qua dòng lệnh?
- 8. Làm thế nào để áp dụng phát triển Test Driven cho ứng dụng GUI (VC MFC)?
- 9. Tùy chọn dòng lệnh cho tập lệnh * * * * *?
- 10. Cách hủy bỏ APK thông qua dòng lệnh trong Windows
- 11. Làm cách nào để bạn xử lý các tùy chọn dòng lệnh và tệp cấu hình?
- 12. Tôi làm cách nào để có được OptionParser của optparse để bỏ qua các tùy chọn không hợp lệ?
- 13. Làm thế nào để biết nếu tùy chọn optparse được chuyển trong dòng lệnh hoặc là mặc định
- 14. Làm thế nào để chỉ định các tùy chọn dòng lệnh cho dịch vụ trong TopShelf
- 15. Làm cách nào để chọn tệp cấu hình ứng dụng .Net từ tham số dòng lệnh?
- 16. AWK để bỏ qua các dòng trống
- 17. Dòng lệnh Python: bỏ qua thụt đầu dòng
- 18. Làm cách nào để truyền chuỗi thô tới các lệnh thông qua dòng lệnh trong PowerShell?
- 19. xcodebuild dòng lệnh bỏ qua GCC_PREPROCESSOR_DEFINITIONS
- 20. Làm cách nào để sử dụng xcodebuild trong dòng lệnh?
- 21. Làm cách nào để nhúng firefox vào ứng dụng GUI?
- 22. Làm cách nào để hiển thị tùy chọn xây dựng dòng lệnh trong Visual C++ 2008?
- 23. Cách nào tốt nhất để cho phép các tùy chọn cấu hình được ghi đè tại dòng lệnh bằng Python?
- 24. Làm cách nào để sử dụng tùy chọn lệnh quản lý tùy chỉnh Django?
- 25. Có gói nào để xử lý các tùy chọn dòng lệnh trong R không?
- 26. Làm cách nào để kiểm tra tệp tồn tại và thực thi lệnh nếu không?
- 27. Làm cách nào để bỏ qua ngắt dòng?
- 28. Tôi làm cách nào để dịch các hộp thư MFC
- 29. Làm thế nào để so sánh hai thư mục bằng cách sử dụng khác nhau trong khi bỏ qua các tập tin không tồn tại?
- 30. Làm cách nào để chuyển đối số dòng lệnh tới ứng dụng ClickOnce?
Trong trường hợp của tôi, tôi cần 'LoadFrame()', nhưng mặc dù tôi không gọi 'ShowWindow()', khung sẽ nhấp nháy. Tôi thấy rằng bằng cách gọi 'CWinAppEx :: m_bLoadWindowPlacement = false;' ngay trước 'LoadFrame()' bạn sẽ không có cửa sổ và không nhấp nháy. – mateuscb