win32使用openfilename瀏覽文件窗口示例
代碼如下:
OPENFILENAME ofn;
WCHAR* szFile = new WCHAR[512];
WCHAR* szFileTitle = new WCHAR[512];
memset(&ofn, 0, sizeof(ofn));
memset(szFile, 0, sizeof(WCHAR)*512);
memset(szFileTitle, 0, sizeof(WCHAR)*512);
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = yMain->m_hWnd;
ofn.hInstance = yMain->m_hInst;
ofn.lpstrFilter = L"All File\0*.*\0";
ofn.nFilterIndex = 1;
ofn.lpstrFile = szFile;
ofn.nMaxFile = sizeof(WCHAR)*512;
ofn.lpstrFileTitle = szFileTitle;
ofn.nMaxFileTitle = sizeof(WCHAR)*512;
ofn.Flags = OFN_FILEMUSTEXIST | OFN_EXPLORER;
// 按下確定按鈕
BOOL ok = GetOpenFileName(&ofn);
if( ok ){
MessageBox(hWnd, L"23", L"44", MB_OK);
}
delete []szFile;
delete []szFileTitle;
其中,有個(gè)地方需要注意一下,要是不使用以下的處理話,會(huì)出現(xiàn)無(wú)法彈出瀏覽窗口界面的問(wèn)題:
WCHAR* szFile = new WCHAR[512];
WCHAR* szFileTitle = new WCHAR[512];
關(guān)于這兩個(gè)變量,最好就需要先分配空間,如果直接定義為數(shù)組的話,就會(huì)導(dǎo)致瀏覽文件的窗口彈不出來(lái)。原因在于,這兩個(gè)變量是局部變量,定義為數(shù)組的話,空間占用太大了,無(wú)法自動(dòng)分配出來(lái),需要專門分配內(nèi)存才行。
上述代碼在debug和release版中都測(cè)試過(guò),可以正常的彈出打開的窗口。
- WIN32程序獲取父進(jìn)程ID的方法
- Win32應(yīng)用程序(SDK)設(shè)計(jì)原理詳解
- 終于明白了tc編譯的dos程序和vc編譯的win32控制臺(tái)程序的區(qū)別
- tc編譯的dos程序和vc編譯的win32控制臺(tái)程序的異同
- win32下進(jìn)程間通信(共享內(nèi)存)實(shí)例分析
- win32 api實(shí)現(xiàn)2048游戲示例
- 一個(gè)win32窗口創(chuàng)建示例
- win32 api實(shí)現(xiàn)簡(jiǎn)單的消息窗口示例
- Win32 下病毒設(shè)計(jì)入門詳細(xì)說(shuō)明
- 實(shí)例分析一個(gè)簡(jiǎn)單的Win32程序
相關(guān)文章
C++ 實(shí)戰(zhàn)開發(fā)一個(gè)猜單詞的小游戲
眾所周知紙上得來(lái)終覺(jué)淺,我們要在實(shí)戰(zhàn)中才能真正的掌握技術(shù),小編為大家?guī)?lái)一份用C++編寫的猜單詞小游戲,給大家練練手,快來(lái)看看吧2021-11-11C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)進(jìn)階之棧和隊(duì)列的實(shí)現(xiàn)
棧和隊(duì)列,嚴(yán)格意義上來(lái)說(shuō),也屬于線性表,因?yàn)樗鼈円捕加糜诖鎯?chǔ)邏輯關(guān)系為 "一對(duì)一" 的數(shù)據(jù),但由于它們比較特殊,因此將其單獨(dú)作為一章,做重點(diǎn)講解2021-11-11C++深入探究類與對(duì)象之友元與運(yùn)算符重載
友元就是讓一個(gè)函數(shù)或者類,訪問(wèn)另一個(gè)類中的私有成員;打個(gè)比方,這相當(dāng)于是說(shuō):朋友是值得信任的,所以可以對(duì)他們公開一些自己的隱私,運(yùn)算符重載的實(shí)質(zhì)就是函數(shù)重載或函數(shù)多態(tài),運(yùn)算符重載是一種形式的C++多態(tài),目的在于讓人能夠用同名的函數(shù)來(lái)完成不同的基本操作2022-04-04C++實(shí)現(xiàn)的分布式游戲服務(wù)端引擎KBEngine詳解
這篇文章主要詳細(xì)介紹了C++實(shí)現(xiàn)的分布式游戲服務(wù)端引擎KBEngine的概念以及使用方法,非常的實(shí)用,有需要的小伙伴可以參考下2015-03-03C++利用靜態(tài)成員或類模板構(gòu)建鏈表的方法講解
這篇文章主要介紹了C++利用靜態(tài)成員或類模板構(gòu)建鏈表的方法講解,鏈表是基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),而在C++中構(gòu)件單鏈表還是稍顯復(fù)雜,需要的朋友可以參考下2016-04-04C語(yǔ)言實(shí)現(xiàn)經(jīng)典24點(diǎn)算法
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)經(jīng)典24點(diǎn)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10