使用win32 api開啟 瀏覽檔案視窗,使用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 )
delete szfile;
delete szfiletitle;
其中,有個地方需要注意一下,要是不使用以下的處理話,會出現無法彈出瀏覽視窗介面的問題:
wchar* szfile = new wchar[512];
wchar* szfiletitle = new wchar[512];
關於這兩個變數,最好就需要先分配空間,如果直接定義為陣列的話,就會導致瀏覽檔案的視窗彈不出來。原因在於,這兩個變數是區域性變數,定義為陣列的話,空間占用太大了,無法自動分配出來,需要專門分配記憶體才行。
上述**在debug和release版中都測試過,可以正常的彈出開啟的視窗。
win32使用拖放檔案
於win32規劃,使用拖放檔案操作,非經常見 不否認有些人喜歡用button開啟 中使用拖拽,非常easy,僅僅須要在建立窗體的時候使用ws ex acceptfiles識別符號,然後使用乙個訊息函式去處理 當然,這是屬於窗體的擴充套件風格。所以須要使用createwindowex來建立 cw us...
Win32程式設計
win32 malloc函式的底層實現是win32api utf 16編碼以16位無符號整數為單位,注意是16位為乙個單位,不是乙個字元就只有16位,這個要看字元的unicode編碼處於什麼範圍而定,有可能是2個位元組,也可能是4個位元組現在機器上的unicode編碼一般就是指utf 16 以兩個位...
win32彙編使用win32 api實現字串拷貝
字串拷貝,呼叫win32的lstrcpy函式 拷貝了以後用訊息框顯示一下 386 model flat,stdcall option casemap none include s masm32 include windows.inc include s masm32 include user32.i...