不是临时对象!
而是对话框里的实际Editbox,button,check
而是对话框里的实际Editbox,button,check
解决方案 »
- 请好心推荐下你的文档注释格式
- setup.dll该怎么删除或覆盖开始菜单快捷方式,setup.dll该怎么删除或覆盖开始菜单快捷方式,因为moblie6.0以下版本最多7个快捷方式,该怎么删
- 求助:如何对基于对话框的应用程序中对话框的标题栏进行操作?
- 关于大字体和小字体的问题,疑惑。
- 跪求: 如何在CSplitterWnd中切换View
- 怎么读取注册表中文件夹的名称,而不是值.
- 在控制台程序中使用MFC的问题
- SOS,谁有人事管理系统源代码??
- 关于DsoFramer,怎么使word的插件可用
- 用过Agent++的,怎么编译时文件缺失啊?
- 怎样选择合适的应用程序打开一个文件?
- 一个常见的问题?
CWnd::GetFocus
static CWnd* PASCAL GetFocus( );Return ValueA pointer to the window that has the current focus, or NULL if there is no focus window.
注意
The pointer may be temporary and should not be stored for later use.
所以你不能根据ClassName判断。
这个函数实际上调用了API版本的Windows函数,并且建立了一个临时的对象关联到Windows函数返回的句柄。
CWnd *pwnd=GetFocus()
WM_KEYDOWN针对不同类的对象作不同处理
(如BUTTON-> KEYDOWN
EDITBOX-> TAB跳过
等)
那么该怎么处理?
我只是想改进一下
想使用ClassName做得比较通用的!算了,只好先这样了!
BOOL CMyFormView::IsEdit( CWnd* pWnd )
{
ASSERT( pWnd != NULL );
HWND hWnd = pWnd->GetSafeHwnd();
if (hWnd == NULL)
return FALSE; TCHAR szClassName[6];
return ::GetClassName(hWnd, szClassName, 6) &&
_tcsicmp(szClassName, _T("Edit")) == 0;
}
BOOL CMyFormView::IsEdit( CWnd* pWnd )
{
ASSERT( pWnd != NULL );
HWND hWnd = pWnd->GetSafeHwnd();
if (hWnd == NULL)
return FALSE; TCHAR szClassName[6];
return ::GetClassName(hWnd, szClassName, 6) &&
_tcsicmp(szClassName, _T("Edit")) == 0;
}
BOOL CMyFormView::IsEdit( CWnd* pWnd )
{
ASSERT( pWnd != NULL );
HWND hWnd = pWnd->GetSafeHwnd();
if (hWnd == NULL)
return FALSE; TCHAR szClassName[6];
return ::GetClassName(hWnd, szClassName, 6) &&
_tcsicmp(szClassName, _T("Edit")) == 0;
}