在我正在使用的一個程序中(僅使用Win32 API),我試圖使用打開的文件對話框來選擇一個文件,其路徑將出現在編輯框或列表框中該程序。我有打開的文件對話框工作(使用OpenFileName),但我不知道如何將選定的文件路徑顯示到編輯框中。如何將文件的路徑(或任何文本)顯示/追加到編輯框中? (C++ Win32 API)
我嘗試使用SendMessage函數來做到這一點,但沒有提出什麼。
這裏是我使用的打開文件對話框的代碼(在那裏我會的路徑發送到編輯框):
int OpenDialog(HWND hWnd)
{
OPENFILENAME ofn;
TCHAR szFile[MAX_PATH];
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = '\0';
ofn.hwndOwner = hWnd;
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = TEXT("txt Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0");
ofn.nFilterIndex = 1;
ofn.lpstrInitialDir = NULL;
ofn.lpstrFileTitle = NULL;
ofn.lpstrDefExt = "txt";
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
if(GetOpenFileName(&ofn))
{
// the function to send the path name to the edit box would be here
}
}
這裏是我用於編輯框代碼:
CreateWindow(TEXT("Edit"), TEXT(""),
WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE,
20, 20, 380, 20, hWnd, NULL, hInstance, NULL);
有沒有關於如何做到這一點的功能或技巧?有什麼方法需要編輯編輯框,所以這是可能的嗎?
(我使用的碼塊13.12上視窗8)事先
感謝(實施例的代碼,將不勝感激:))。
是win32 API您需要使用還是學習?我會說,不要讓自己簡單地嘗試使用這個系統,只是因爲它看起來像「哦,這就是方式」。因爲它不是。在現代的時代(1999年後我們說),Win32 API(甚至更多的MFC)正在儲藏在酒窖中,爲了人類的更好的利益,爲了Qt,Gtk和其他許多人的利益。做接口也很好,但在C#中它更好,我建議你嘗試C#,並使用C++作爲無窗口代碼。 –
@ v.oddou 9%的Windows開發人員仍在編寫本機Windows應用程序(Windows API,MFC,WTL)。這9%仍然產生大部分收入。瞭解Windows API既不神祕也不無用處的知識。它被廣泛使用,即使你發現自己編寫Qt代碼,知道Windows API將使你成爲一個更好的開發人員。 – IInspectable
@IInspectable:這是你所做的絕對值得讚美的評論。我不會說相反的。但是,我的第一個評論仍然是真實的。現在關於我自己,我從來沒有用Qt編碼,我只做了一點Gtk,而且我在工作中使用Devexpress。當我還年輕時,我也經歷了與sg185相同的事情,花了我幾年的時間才真正掌握了我正在做的事情的全部深度,也許你從中獲得了更好的工程師;但肯定「因爲企業正在這樣做」是一個超級錯誤的藉口腐蝕到這個領域。相反,該行業需要新鮮血液...... –