本帖最后由 雨夹血 于 2020-5-18 11:52 编辑
窗口函数设定为 WM_DROPFILES 编辑框获取不到内容 需要另外添加一个WNDPROC 函数
在初始化函数里面添加,函数外面添加 static WNDPROC DlgEdit;
- BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
- {
- // Set app icons
- HICON hIcon = LoadIcon((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE) ,MAKEINTRESOURCE(IDI_ICONAPP));
- SendMessage(hwnd, WM_SETICON, TRUE, (LPARAM)hIcon);
- SendMessage(hwnd, WM_SETICON, FALSE, (LPARAM)hIcon);
-
- //
- // Add initializing code here
- //
- HWND hEdit = GetDlgItem(hwnd,IDC_EDIT1);
- // DragAcceptFiles(hEdit,TRUE);
- DlgEdit = (WNDPROC)SetWindowLong(hEdit,GWL_WNDPROC,(LONG)EditProc);
-
- return TRUE;
- }
复制代码
添加函数 LRESULT CALLBACK EditProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
- LRESULT CALLBACK EditProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
- {
- TCHAR szFilePath[MAX_PATH];
- switch(uMsg)
- {
-
- case WM_DROPFILES:
- memset(szFilePath,0,sizeof(szFilePath));
-
- DragQueryFile((HDROP)wParam,0,szFilePath,_countof(szFilePath));
-
- if( SetWindowText(hWnd,szFilePath) == 0){
- MessageBox(hWnd,TEXT("设置编辑框内容失败"),TEXT(""),MB_OK);
- }
- DragFinish((HDROP)wParam);
- break;
-
- }
- return CallWindowProc(DlgEdit,hWnd,uMsg,wParam,lParam);
- }
复制代码
|