1. 显示和隐藏标题栏
方法一:使用API实现
//隐藏TitleBar
LONG lStyle = ::GetWindowLong(this-m_hWnd, GWL_STYLE);
::SetWindowLong(this-m_hWnd, GWL_STYLE, lStyle & ~WS_CAPTION);
::SetWindowPos(this-m_hWnd, NULL, 0, 0, 0, 0,
SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED);
// 显示TitleBar
::SetWindowLong(this-m_hWnd, GWL_STYLE, lStyle | WS_CAPTION);
::SetWindowPos(this-m_hWnd, NULL, 0, 0, 0, 0,??SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED);
方法二:使用CWnd成员函数ModifyStyle实现
// 隐藏TitleBar
ModifyStyle(WS_CAPTION, 0, SWP_FRAMECHANGED);
// 显示TitleBar
ModifyStyle(0, WS_CAPTION, SWP_FRAMECHANGED);
2 . 怎么用SendMessage()来发送消息来清空它的内容??
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)HWND hEditWnd=GetDlgItem(IDC_EDIT1)-GetSafeHwnd();
::SendMessage(hEditWnd,WM_SETTEXT,(WPARAM)0,(LPARAM)"");
3. 弹出文件的属性窗口
SHELLEXECUTEINFO ShExecInfo ={0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_INVOKEIDLIST ;
ShExecInfo.hwnd = NULL;
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)ShExecInfo.lpVerb = "properties";
ShExecInfo.lpFile = "c:"; //也可以是文件
ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
4. 删除一个目录下的所有文件
方法一:
BOOL DeleteDirectory(LPCTSTR DirName)
{
CFileFind tempFind; //声明一个CFileFind类变量,以用来搜索
char tempFileFind[200]; //用于定义搜索格式
sprintf(tempFileFind,"%s*.*",DirName);
//匹配格式为*.*,即该目录下的所有文件
BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);
//查找第一个文件
while(IsFinded)
{
IsFinded=(BOOL)tempFind.FindNextFile(); //递归搜索其他的文件
if(!tempFind.IsDots()) //如果不是"."目录
{
char foundFileName[200];
strcpy(foundFileName,tempFind.GetFileName().GetBuffer(200));
if(tempFind.IsDirectory()) //如果是目录,则递归地调用
{
//DeleteDirectory
char tempDir[200];
sprintf(tempDir,"%s%s",DirName,foundFileName);
DeleteDirectory(tempDir);
}
else
{
//如果是文件则直接删除之
char tempFileName[200];
sprintf(tempFileName,"%s%s",DirName,foundFileName);
DeleteFile(tempFileName);
}
}
}
tempFind.Close();
if(!RemoveDirectory(DirName)) //删除目录
{
AfxMessageBox("删除目录失败!",MB_OK);
return FALSE;
}
return TRUE;
}
方法二:(不使用MFC,在WTL/ATL中)
#ifdef INVALID_HANDLE_VALUE
#undef INVALID_HANDLE_VALUE
#define INVALID_HANDLE_VALUE ((HANDLE)((LONG_PTR)-1))
#endif
#define FILE_ATTRIBUTE_DIRECTORY 0x00000010
int DeleteDirectory(wchar_t* RemovePath)
{
if(RemovePath == NULL)
return 0;
if(wcslen(RemovePath) (MAX_PATH - 5))
return 0;
wchar_t pcRoot[MAX_PATH+1]; //this dir
wchar_t pcTemp[MAX_PATH+1]; //this dir with "*.*" appended
_tcscpy(pcRoot,RemovePath);
int n;
n = wcslen(pcRoot);
if(pcRoot[n-1]!='')
{
pcRoot[n] = '';
n++;
pcRoot[n] = '