MFC编程改了窗口名字后,执行不显示窗口问题

 我来答
匿名用户
2013-04-01
展开全部
在VC编程中,有时候我们需要将我们的程序在任务栏上的显示隐藏起来,我试过几种方法,下面我介绍一下我知道的三种方法。 第一种方法是设置窗口WS_EX_TOOLWINDOW扩展样式,通过在OnInitDialog函数中添加如下代码: ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW); ModifyStyleEx函数原型如下: BOOL ModifyStyleEx( DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0 ); 第一个参数是要被去掉的扩展样式,如果设为0或NULL,则不去除任何样式;第二个参数类似,设置要添加的扩展样式;第三个参数默认为0,表示不调用SetWindowPos函数,如果设为true或非0,表示之后会调用SetWindowPos函数。上述代码为窗口添加了WS_EX_TOOLWINDOW样式,同时去掉了WS_EX_APPWINDOW样式,你可理解为这个窗口被设置成工具窗口,类似工具条。 通过这种方式隐藏程序在任务栏中的显示存在几个问题,第一个是程序的标题栏因为WS_EX_TOOLWINDOW样式的关系变窄了,和普通的程序标题有所区别;第二个问题是在按下alt+tab键进行程序切换时,在任务候选列表中找不到这个程序。 第二种方法比较复杂,各位看官可以参考VC知识库的这篇文章《如何隐藏显示在任务栏中的对话框程序》。这种方法提到几点:第一、创建对话框时必须将它作为某个不可见框架窗口的子窗口;第二、这个不可见窗口的扩展式样必须设置 WS_EX_TOOLWINDOW;第三、保证对话框的扩展式样没有设置 WS_EX_APPWINDOW;对比第一种方法,区别是这里用了两个具有父子关系的窗口来实现这种效果,应用这种方法隐藏了程序在任务栏中的显示,而且这里显示的窗口标题栏是正常的样式。但也发现一个问题,在按下alt+tab键进行程序切换时,在任务候选列表中显示的程序图标不是程序原来设置的图标,另发现打开QQ登录界面按下alt+tab键看到的也是这种情况,(注:新版本QQ2011已修正,另如果什么都不做,只去掉WS_EX_APPWINDOW样式,也可以隐藏程序在任务栏中的显示,但按下alt+tab组合键后,切换程序列表中将找不到你的窗口程序). 第三种方法很简单,在资源里添加一个Dialog,添加一个对应的窗口类,在主对话框的OnInitDialog中添加这两句代码: CSkyLoginDlg m_SkyLoginDlg; m_SkyLoginDlg.DoModal(); // show login dialog 用这种方法达到隐藏任务栏图标的目标,而且按下alt+tab键在任务候选列表中显示正常。为使这个子窗口关闭整个程序跟着退出,可以在最后m_SkyLoginDlg.DoModal();后添上OnCancel()函数。 以上三种方法都是目前用过的,能隐藏任务栏图标的。
匿名用户
2013-04-01
展开全部
你是说要改变窗口标题吗?我给你个函数,很方便的:
SetTitle(“标题“);(引号内的内容为你自己想加入的标题)。这样就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-01
展开全部
找人啊体贴身
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cossbow
2013-03-31 · TA获得超过697个赞
知道小有建树答主
回答量:798
采纳率:100%
帮助的人:219万
展开全部
setwindowtext(L"")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jellycgl
2013-03-31 · TA获得超过417个赞
知道小有建树答主
回答量:1149
采纳率:66%
帮助的人:882万
展开全部
调用ShowWindow(SW_SHOW)函数试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式