社区
界面
帖子详情
老问题求新解,不在任务栏显示
Soyokaze
2009-05-02 09:22:09
传统的方法是为窗口设置WS_EX_TOOLWINDOW风格,不过这样也会带来一个问题:不能在Alt+Tab弹出的窗口里切换。
我试着给设置了这种属性的窗口硬加上WS_EX_CONTROLPARENT风格,还是不行。
所以想请教一下,有没有两全其美的解决方法。
曾经见过这样的窗口,其扩展风格只有WS_EX_CONTROLPARENT,然而却可以显示在Alt+Tab的窗口里。
...全文
117
13
打赏
收藏
老问题求新解,不在任务栏显示
传统的方法是为窗口设置WS_EX_TOOLWINDOW风格,不过这样也会带来一个问题:不能在Alt+Tab弹出的窗口里切换。 我试着给设置了这种属性的窗口硬加上WS_EX_CONTROLPARENT风格,还是不行。 所以想请教一下,有没有两全其美的解决方法。 曾经见过这样的窗口,其扩展风格只有WS_EX_CONTROLPARENT,然而却可以显示在Alt+Tab的窗口里。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
VR_Lab
2009-05-10
打赏
举报
回复
在OnInitDialog()中添加SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE<WS_EX<TOOLWINDOW);
tanwei1002
2009-05-08
打赏
举报
回复
4楼正解
vc6.0测试通过
Soyokaze
2009-05-06
打赏
举报
回复
谢谢以上个楼的回复。我去消化消化试试看。
-->#10,Shell_NotifyIcon()
ToCpp
2009-05-05
打赏
举报
回复
4楼正解
zmsun
2009-05-05
打赏
举报
回复
我想知道怎么最小化到右下角
biweilun
2009-05-05
打赏
举报
回复
重新注册窗口类,修改风格。代码如5#
Fireway2008
2009-05-05
打赏
举报
回复
[Quote=引用 5 楼 xuezhimeng 的回复:]
这个我弄过,如果你的程序不是基于对话框的,在框架类中修改父窗口句柄
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CFrameWnd::PreCreateWindow(cs))
return FALSE;
// 创建一个隐藏窗口
if (!::IsWindow(m_wndParent.m_hWnd))
{
LPCTSTR pstrOwnerClass = AfxRegisterWndClass(0);
if (!m_wndParent.CreateEx(0, pstrOwnerClass, "", WS_POPUP,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDE…
[/Quote]
同意此方案!
另外,补充一下, 如果是基于对话框的,并且这个对话框插入了背景,那么在设置的时候,红色的参数要和原对话框的风格相同,否则容易导致背景图片位置偏移。
SetWindowLong(this->m_hWnd, GWL_EXSTYLE,
WS_EX_CONTROLPARENT| WS_EX_WINDOWEDGE| WS_EX_DLGMODALFRAME) ;
::SetWindowLong(this->m_hWnd, GWL_HWNDPARENT, (LONG)m_wndParent.m_hWnd) ;
doudouHuY
2009-05-04
打赏
举报
回复
[Quote=引用 3 楼 Soyokaze 的回复:]
引用 2 楼 DavidHsing 的回复:
这个简单,我弄过。
你建议一个不可见的窗口,然后把你的新窗口的父窗口的句柄指向这个不可见的窗口就 ok 了。
这样做的话,我的窗口就随父窗口一起不可见了。
[/Quote]
在msdn搜一下owner window 和 owned window就知道为啥了
Soyokaze
2009-05-03
打赏
举报
回复
[Quote=引用 2 楼 DavidHsing 的回复:]
这个简单,我弄过。
你建议一个不可见的窗口,然后把你的新窗口的父窗口的句柄指向这个不可见的窗口就 ok 了。
[/Quote]
这样做的话,我的窗口就随父窗口一起不可见了。
DavidHsing
2009-05-03
打赏
举报
回复
这个简单,我弄过。
你建议一个不可见的窗口,然后把你的新窗口的父窗口的句柄指向这个不可见的窗口就 ok 了。
tian_yang_jian
2009-05-03
打赏
举报
回复
应该有两全齐美的办法,没有弄过,帮顶
Yeah
2009-05-03
打赏
举报
回复
这个我弄过,如果你的程序不是基于对话框的,在框架类中修改父窗口句柄
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CFrameWnd::PreCreateWindow(cs))
return FALSE;
// 创建一个隐藏窗口
if (!::IsWindow(m_wndParent.m_hWnd))
{
LPCTSTR pstrOwnerClass = AfxRegisterWndClass(0);
if (!m_wndParent.CreateEx(0, pstrOwnerClass, "", WS_POPUP,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, 0))
return FALSE;
}
cs.hwndParent = m_wndParent.m_hWnd;
return TRUE;
}
如果你的程序是基于对话框的,在OnInitDialog中
//类中添加CWnd m_wndParent ;成员
// 创建一个隐藏窗口
if (!::IsWindow(m_wndParent.m_hWnd))
{
LPCTSTR pstrOwnerClass = AfxRegisterWndClass(0);
if (!m_wndParent.CreateEx(0, pstrOwnerClass, "", WS_POPUP,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, 0))
return FALSE;
}
SetWindowLong(this->m_hWnd, GWL_EXSTYLE, WS_EX_CONTROLPARENT | WS_EX_WINDOWEDGE | WS_EX_DLGMODALFRAME) ; //这个必须有,没有就不行
::SetWindowLong(this->m_hWnd, GWL_HWNDPARENT, (LONG)m_wndParent.m_hWnd) ;
DavidHsing
2009-05-03
打赏
举报
回复
什么意思?没看明白
怎么叫随父窗口一起不可见了?
你的这个子窗口,在他的 PreCreateWindow 里面把它的父窗口句柄指向你新创建的一个不可见的窗口,
怎么会一起不可见??
Win10新版本下方
任务栏
经常卡死点不动
Win10新版本下方
任务栏
经常卡死点不动 如题,前几天遇到这个
问题
,困扰了我好久,百度上的答案基本上都无
解
,因为这个
问题
太新了,最后我自己找到了
问题
的所在! 原因就是win10最近更新后出现的这个玩意,
显示
天气...
Win11-
任务栏
图标
显示
空白
解
决方法
考研期间没用电脑,今天开机,刚弄好声音
问题
,使用Typora又发现过期了,需要激活,于是百度破
解
方法,新安装了Typora,换到新的路径,但是桌面快捷方式没有修改,导致桌面
任务栏
图标
显示
空白,借鉴大佬教程成功
解
决...
联想笔记本桌面计算机不见了,联想电脑
任务栏
不见了怎么还原
按windows健(位于ctrl和alt中间),
显示
出开始菜单, 在空白处单击右键,点击“属性,打开“
任务栏
和开始菜单属性”, 在
任务栏
中选中“自动隐藏
任务栏
”,应用后再取消选择。 同时选择“锁定
任务栏
”。还原电脑任务...
windows
任务栏
右下角图标空白
解
决办法
今天启动电脑后发现
任务栏
右下角的图标
显示
为空白(表现为占用了图标位置,却不能
显示
出来,也点击不了)。开始还以为重启电脑后会恢复正常,但重启电脑后
问题
依旧。直觉觉得这是电脑的图标缓存在作怪,可是试过...
再爆 Bug!Windows 11
任务栏
、菜单栏无故消失,怎么
解
?
今天,又有很多用户发现在 Windows 11 Beta Channel 版本(版本 22000.176)中,当对电脑开机时,没有开始菜单栏,也没有
任务栏
,光秃秃的电脑界面,鼠标实在不知点击哪里才是对的。 只能通过任务管理器来运行应用...
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章