全局变量被清空的问题
程序允许用户选择一个excel文件和一个exe文件
分别用szExlFile和szExeFile保存,跟踪后发现,已经正确赋值.
但是当OK被按下后,却发现被清空了,没有其他的赋值语句.难道是被SetWindowText清空了?
HINSTANCE hInst;
TCHAR * szExlFile = TEXT("\0");
TCHAR * szExeFile= TEXT("\0");
BOOL CALLBACK DlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
static TCHAR *SelectFolder(HWND hWnd, int nParam);
int APIENTRY _tWinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), 0, DlgProc);
return 0;
}
BOOL CALLBACK DlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_INITDIALOG:
return TRUE;
case WM_CLOSE:
PostQuitMessage(0);
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
if (szExlFile != TEXT("\0") && szExeFile != TEXT("\0")) //发现是空的
Generate(szExlFile, szExeFile);
EndDialog(hwnd, IDOK);
break;
case IDCANCEL:
EndDialog(hwnd, IDCANCEL);
break;
case IDC_BUTTON_FILE_XLS:
szExlFile = SelectFolder(hwnd, 1); //用户选择文件
if (szExlFile != TEXT("\0"))
SetWindowText(GetDlgItem(hwnd,IDC_EDIT_xls), szExlFile); //显示
break;
case IDC_BUTTON_FILE_Exe:
szExeFile = SelectFolder(hwnd, 2); //用户选择文件
if (szExeFile != TEXT("\0"))
SetWindowText(GetDlgItem(hwnd,IDC_EDIT_Exe), szExeFile); //显示
break;
}
}
return FALSE;
}