1、给你的窗口加上最下化按钮,方法:设置窗口的Minimize Box属性为true
2、若你的窗口不需要改变大小,方法:设置窗口的Border属性为Dialog Frame
3、若你的窗口为主窗口,考虑过滤掉回车和ESC操作
方法:实现虚函数PreTranslateMessage
BOOL XXXXDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if(pMsg->message == WM_KEYDOWN)
{
if(int(pMsg->wParam) == VK_ESCAPE || int(pMsg->wParam) == VK_RETURN)
{
return TRUE;
}
}
return CDialogEx::PreTranslateMessage(pMsg);
}
4、若你的窗口为主窗口,考虑在窗口退出时要弹出提示
方法:给窗口加上这个消息的实现(WM_CLOSE)
5、如果有配置文件,考虑配置文件名字跟你的模块同名,如xx模块xx.ini,xxxx模块xxxx.ini
6、如果用到配置数据,将配置数据单独写到一个单例类中
7、给你的单例加上destroy函数,以便在不用的时候可以干掉它
方法:
声明:
public:
static void destroy();
实现:
void XXXConfig::destroy()
{
if (NULL != pInstance)
{
delete pInstance;
pInstance = NULL;
}
}
调用:
XXXConfig::destroy();
8、同类型的控件考虑让他们大小一致,对齐,调整控件的tab顺序(从用户的角度考虑)
9、浏览获取文件名
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, NULL, NULL);
if (IDOK == dlg.DoModal())
{
XXX = dlg.GetPathName();
}
10、浏览获取文件夹名
CString ReturnPath;
CHAR szPath[_MAX_PATH];
BROWSEINFO bi;
bi.hwndOwner = NULL;
bi.pidlRoot = NULL;
bi.lpszTitle = _T("请选择文件夹");
bi.pszDisplayName = szPath;
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.lParam = NULL;
LPITEMIDLIST pItemIDList = SHBrowseForFolder(&bi);
if (pItemIDList)
{
if(SHGetPathFromIDList(pItemIDList,szPath))
{
ReturnPath = szPath;
XXX= ReturnPath;
}
}