我正在使用VS 2008並使用MFC應用程序。我有一個功能,請求用戶指定一個文件夾形式的對話框輸出圖像文件。當檢查複選框時,此功能會重複多次。僅當調用複選框時調用對話框函數
下面是一個使用框架生成我的主要功能的功能
void ClassABC::BrowseFolder(TCHAR path[MAX_PATH]) { .... }
這裏是保存功能
void ClassABC::FileSave(IppImage<Ipp8u,1> const &im)
{
TCHAR path[MAX_PATH];
TCHAR filename[256];
BrowseFolder(path);
_stprintf(filename, "%s\\raw.bmp", path);
ippiSaveBMP(filename, im);
}
和具有if語句,這樣
if (im != NULL)
{
if (MESSAGE_EXISTS(p,XYZCheck)){
FileSave(im); }
}
一旦我選中複選框,會打開一個對話框詢問文件夾位置以保存輸出圖像e文件。只要文件保存在文件夾中,對話框就會再次打開,因爲它是由Save函數內部調用的BrowseFolder()函數調用的。我想知道一種可能的方法,只需調用BrowseFolder()一次來使用對話框來請求文件夾位置,而不是重複它自己。我不確定如何單擊時調用該函數一次。我知道它很容易使用按鈕,但我只是用複選框測試它,並希望看到相同的結果。任何方向都會有幫助。謝謝。
你用什麼框架來生成你的「主要功能」? [我無法在MSDN/MFC文檔中找到對'MESSAGE_EXISTS'的任何引用] –
我在工作中使用內部框架(機密)。它將複選框的控件綁定到MFC中的使用。這就是我希望某些不一定涉及複選框的原因,而是直接嘗試控制該功能。我在FileSave函數內做了這樣的事情。 static bool FirstTime = true; if(FirstTime){BrowseFolder(path); FirstTime = false; } 通過這樣做,我可以停止文件夾對話框多次出現,但是一旦取消選中該複選框並再次檢查它,它就不會出現。我知道我在這裏錯過了一些邏輯。 – Sharath