得到一个VIEW类的句柄后,如何根据这个句柄的查看窗口的显示状态,比如说是隐藏中还是显示中。

tangbo6 2006-04-18 09:24:14
我在我程序中的VIEW类中的OnInitialUpdate()中:SetHook( this->GetParent()->GetSafeHwnd() );
这个SetHook的定义在我的DLL中,
请看下面的代码:

LRESULT CALLBACK KeyboardProc( int nCode, WPARAM wParam, LPARAM lParam )
{
KBDLLHOOKSTRUCT *pStruct = (KBDLLHOOKSTRUCT*)lParam;
if( nCode == HC_ACTION )
{
if( !(lParam & 0xA0000000) )
{
if( pStruct->vkCode == 0x53 && pStruct->flags & LLKHF_ALTDOWN )
{
AfxMessageBox( "OK" );
//SendMessage( myHwnd, WM_CLOSE, 0, 0 ); //这里的myHwnd的句柄的值是我在视图类中的OnInitialUpdate()中的SetHook( HWND hWnd )得到的;如果我把SetHook()的接口改成SetHook( CWnd *cWnd ),然后在视图类中OnInitialUpdate()得到程序的cWnd地址,但是运用cWnd->IsWindowsVisible()的话程序会出错,不知道是什么原因,所以我让我的SetHook接口保持得到一个HWND值,但是HWND没有IsWindowsVisible()功能,那么如何判断这个HWND的窗口是否可见,我主要的功能是想在程序中按下ALT+S窗口就会隐藏,再按一下窗口又会显示.另外还有1个问题就是为什么这个地方老是执行2次?我在按下ALT+S后为什么这个消息框会显示2个?if( !(lParam & 0xA0000000) )这个语句不是判断只一次吗?我哪里出错了?
}
}
}
return CallNextHookEx( hHook, nCode, wParam, lParam );
}
...全文
153 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangbo6 2006-04-18
  • 打赏
  • 举报
回复
LRESULT CALLBACK KeyboardProc( int nCode, WPARAM wParam, LPARAM lParam )
{
KBDLLHOOKSTRUCT *pStruct = (KBDLLHOOKSTRUCT*)lParam;
if( nCode == HC_ACTION )
{
if( pStruct->vkCode == 0x53 && pStruct->flags & LLKHF_ALTDOWN )
{
if( !(lParam & 0xA0000000) )
{
if( ::IsWindowVisible( myHwnd ) )
//AfxMessageBox( "OK" );
::ShowWindow( myHwnd, SW_HIDE );
else
::ShowWindow( myHwnd, SW_SHOW );
}
}
}
return CallNextHookEx( hHook, nCode, wParam, lParam );
}

我现在的代码一执行后窗口隐藏后又立刻显示了,好像执行了2次,如何让我的代码按一次键只执行一次?
lixiaosan 2006-04-18
  • 打赏
  • 举报
回复
::IsWindowVisiable(hwnd)
tangbo6 2006-04-18
  • 打赏
  • 举报
回复
句柄值没有IsWindowVisiable这个功能呀?而且我在DLL中使用CWnd类的IsWindowVisiable程序会出错,不知道为什么
lixiaosan 2006-04-18
  • 打赏
  • 举报
回复
IsWindowVisiable

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧