阴魂不散的“拼”,总是去不掉

bluestar 2009-07-22 05:59:14
下面菜单栏上的“拼”

我已经取得句柄

这段代码
if (m_hSipWnd)
::ShowWindow( m_hSipWnd, SW_HIDE );

放OnInitDialog里无效,放OnPaint里才能隐藏,我就没明白这个道理,有谁能指点一下,谢谢。

...全文
215 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
biosli 2009-07-27
  • 打赏
  • 举报
回复
SHFullScreen是王道!!
其他的都不保证好用。
bluestar 2009-07-27
  • 打赏
  • 举报
回复
谢谢各位热心人

我在OnInitDialog里获得句柄,没有创建菜单,Dialog1有父窗口,本身是模式对话框对话框。

把这段
DWORD dwState = ( SHFS_HIDETASKBAR | SHFS_HIDESTARTICON | SHFS_HIDESIPBUTTON );
SHFullScreen( m_hWnd, dwState );
if (m_hSipWnd)
::ShowWindow( m_hSipWnd, SW_HIDE );

放OnActive里也无用
zytkwlh 2009-07-26
  • 打赏
  • 举报
回复
你什么时候获得得小键盘窗体句柄呀 贴出来看看 应该是这里出的问题
sevenzhy 2009-07-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bluestar 的回复:]
4-5楼的,放OnActive里也无效,我当然不想放OnPaint里做了,但是不放进去又不知道放哪里
[/Quote]

你隐藏操作的代码贴出来。

我就是OnActive里隐藏的,WM5,WM6,模拟器,真机(3款)上测试都OK。
不可能无效。
bluestar 2009-07-23
  • 打赏
  • 举报
回复
4-5楼的,放OnActive里也无效,我当然不想放OnPaint里做了,但是不放进去又不知道放哪里
载舟之水 2009-07-23
  • 打赏
  • 举报
回复
回复快不表示好用,这方法不是任何时候都管用的。
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jinlingzwp 的回复:]
你是指隐藏输入法按钮吧,::ShowWindow(::FindWindow( _T("MS_SIPBUTTON"), 0 ),SW_HIDE)
[/Quote]
简洁明快的回复
xmanlin 2009-07-23
  • 打赏
  • 举报
回复
回帖拿分
sevenzhy 2009-07-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 bluestar 的回复:]
void CDialog1::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
CDialog1::OnActivate(nState, pWndOther, bMinimized);

// TODO: 在此处添加消息处理程序代码
if (m_hSipWnd)
::ShowWindow( m_hSipWnd, SW_HIDE );
}

就这么简单阿,难道还要什么特殊处理
[/Quote]

不需要特殊处理。

你这个Dialog1是程序的主窗口么?它创建菜单没有?菜单用ShCreateMenuBar建的?
风格设置HIDESIPBUTTON没?
大饼哥- 2009-07-23
  • 打赏
  • 举报
回复
SHFullScreen(hWnd,SHFS_HIDESIPBUTTON);

这样就可以了,直接的方法。
bluestar 2009-07-23
  • 打赏
  • 举报
回复
void CDialog1::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
CDialog1::OnActivate(nState, pWndOther, bMinimized);

// TODO: 在此处添加消息处理程序代码
if (m_hSipWnd)
::ShowWindow( m_hSipWnd, SW_HIDE );
}

就这么简单阿,难道还要什么特殊处理
sevenzhy 2009-07-22
  • 打赏
  • 举报
回复
还有。尽量不要在OnPaint()中做除了绘图之外其他的任何操作。

sevenzhy 2009-07-22
  • 打赏
  • 举报
回复
他说的是隐藏时机不对。不是说不知道如何藏。

你既然获得了那个Button窗口的句柄,那么你啥时候不想看见他就啥时候隐藏掉他。

很显然,当你的程序的主窗口被激活时,隐藏它是最好的。

在OnActive()(WM_ACTIVE消息处理器)中做隐藏的工作是最好的。
载舟之水 2009-07-22
  • 打赏
  • 举报
回复
输入法按钮是个独立的窗口
世外涛缘 2009-07-22
  • 打赏
  • 举报
回复
楼上正解了,帮顶下。
楼主是标题党啊,看了吓一跳。
jinlingzwp 2009-07-22
  • 打赏
  • 举报
回复
你是指隐藏输入法按钮吧,::ShowWindow(::FindWindow( _T("MS_SIPBUTTON"), 0 ),SW_HIDE)

7,660

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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