我们平时做的程序如果在任务栏中隐藏,并且在状态栏中不显示~~
在托管图标中加入你的程序图标和处理消息~~~
当程序不可见时,ctrl+alt+del中的应用程序没有你的程序~~
当程序可见时,ctrl+alt+del中有你的程序,但此时状态栏中却有了你的程序~~~有种做法是~~让你的程序(窗体)成为一个扩展风格为WS_EX_TOOLWIDOW的不可见的窗口的子窗口~~并且你的窗口扩展风格要为
WS_EX_APPWINDOW~~。。
这样做我没试过~~或许可以达到QQ那种效果~~~就是隐藏时,只有托管图标~~ctrl+alt+del中没有你的程序~~
当程序可见时,任务栏还是没有你的程序,但ctrl+alt+del中有了你的程序~~~~!
或许这样很绕~~~
QQ的程序确实有一个不可见的父窗口~~在(0,0)-(6,6)的位置~~~但是这个父类却没有WS_EX_TOOLWIDOW这个属性~~
所以我现在很困惑~~
QQ到底是如何实现的呢?
哦对。。还想起来了~~WINAPI提供了一个IToolbar的COM接口~~我还没用过~~
不晓得这个接口会不会达到QQ那种效果~~
在托管图标中加入你的程序图标和处理消息~~~
当程序不可见时,ctrl+alt+del中的应用程序没有你的程序~~
当程序可见时,ctrl+alt+del中有你的程序,但此时状态栏中却有了你的程序~~~有种做法是~~让你的程序(窗体)成为一个扩展风格为WS_EX_TOOLWIDOW的不可见的窗口的子窗口~~并且你的窗口扩展风格要为
WS_EX_APPWINDOW~~。。
这样做我没试过~~或许可以达到QQ那种效果~~~就是隐藏时,只有托管图标~~ctrl+alt+del中没有你的程序~~
当程序可见时,任务栏还是没有你的程序,但ctrl+alt+del中有了你的程序~~~~!
或许这样很绕~~~
QQ的程序确实有一个不可见的父窗口~~在(0,0)-(6,6)的位置~~~但是这个父类却没有WS_EX_TOOLWIDOW这个属性~~
所以我现在很困惑~~
QQ到底是如何实现的呢?
哦对。。还想起来了~~WINAPI提供了一个IToolbar的COM接口~~我还没用过~~
不晓得这个接口会不会达到QQ那种效果~~
解决方案 »
- 怎么取出记录集的数据呢?怎么保存???
- 控件里的空闲更新状态问题
- 大家用的VC是6.0还是.net?
- 今天在www.vczx.com网上看到了一篇文章,觉得很受用,就把它转贴过来了,希望对大家有所帮助!!!
- 200分在线急求用在按钮上的各种图标!
- 登上某网页后自动抓取该网页上最新的更新的链接,并保存为TXT文档,小弟刚学MFC,各位大虾给点编程的思路,感激不尽
- 关于现在程序员工资的一个调查,来者有分。
- 如何获得wordWord宏命令及获得窗口工具栏下并排比较功能的宏
- 如何利用函数依赖集确定关系模式的码?这个一直搞不清楚,求指导!!!
- 能帮我解释以下下面的宏定义吗?尤其是有符号:"/"
- 求教 一个对话框的不同按钮实现的功能由不同的人开发
- OnNMCustomdraw下,怎么用内存dc绘制所有项并输出到显示dc上。
我们平时做的程序如果在任务栏中隐藏,并且在状态栏中显示~~
在托管图标(状态栏)中加入你的程序图标和处理消息~~~
当程序不可见时,ctrl+alt+del中的应用程序没有你的程序,alt+tab也没有~~
当程序可见时,ctrl+alt+del中有你的程序,alt+tab也有,但此时任务栏中却显示了你的程序~~~如果直接将程序设置成在任务栏不可见,改扩展风格为WS_EX_TOOLWIDOW~~那样。。无论可见与否~~alt+tab都没有你的程序有种做法是~~让你的程序(窗体)成为一个扩展风格为WS_EX_TOOLWIDOW的不可见的窗口的子窗口~~并且你的窗口扩展风格要为
WS_EX_APPWINDOW~~。。
这样做我没试过~~或许可以达到QQ那种效果~~~就是隐藏时,只有托管图标~~ctrl+alt+del和alt+tab中没有你的程序~~
当程序可见时,任务栏还是没有你的程序,但ctrl+alt+del和alt+tab中有你的程序~~~~!
或许这样很绕~~~
QQ的程序确实有一个不可见的父窗口~~在(0,0)-(6,6)的位置~~~但是这个父类却没有WS_EX_TOOLWIDOW这个属性~~
所以我现在很困惑~~
QQ到底是如何实现的呢?
哦对。。还想起来了~~WINDOWS提供了一个IToolbar的COM接口~~我还没用过~~
不晓得这个接口会不会达到QQ那种效果~~
会有bug的,就是窗口会被置为非激活状态导致,可能就是因为WS_EX_TOOLWIDOW的缘故吧
VC知识库上面有个文章就是讲的这个
在WM_CREATE中设置成为我的窗口~~但是问题是~~~我对我的子窗口的自定义消息~~就是自定义任务栏处的消息~~子窗口根本无法接受~~
我如何让我子窗口的消息和父窗口的消息独立开来呢??
如果父窗口和子窗口是两个进程~~~
现在问题是如何让我子窗口的消息和父窗口的消息独立开呢~~~
否则我子窗口的消息根本无法响应~
ITaskbarList* plist=NULL;
HRESULT hr=CoCreateInstance (CLSID_TaskbarList,NULL,CLSCTX_ALL,IID_ITaskbarList,(PVOID*)&plist);
hr=plist->HrInit();
hr=plist->DeleteTab(this->GetSafeHwnd());
plist->Release();
CoUninitialize();
abc->Create(0,0,WS_OVERLAPPEDWINDOW);
CNoTaskBarIconDlg dlg(abc);
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
}
else if (nResponse == IDCANCEL)
{
}
delete abc;
在 OnInitDialog中修改显示风格 WS_EX_APPWINDOW.BOOL CNoTaskBarIconDlg::OnInitDialog()
{
CDialog::OnInitDialog();
ModifyStyleEx(WS_EX_APPWINDOW,0); SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}本人测试过!! 效果跟QQ一样儿, 只是按Alt + Tab键时出现的窗口中没有正常显示程序本身的图标, 你可以试试!!!
#20楼的兄弟方法我试过了~~
是可以达到QQ的效果~~~
我用API也是这样做的~~~
在winmain里注册两个窗口类~~
第一个做为父窗口~~第二个做为子窗口~~
父窗口的样式是不可用~~~但是可见只有(0,0)-(6,6)的大小~~~并且他的父窗口是桌面,且一直在Z序底层~~
当创建好了~~我再创建我的子窗口~~用我刚建立的窗口作为父窗口~~~前提,两个窗口有不同的窗口过程~~~
达到了同样的效果~~
但是大家可以用SPY++看下QQ的~~~QQ的父窗口的进程和子窗口进程是两个不同的进程~~~
所以我就纳闷了~~
如果不是同一个进程~~~那应该是在创建父窗口的时候~~子窗口是作为子进程创建的~~
但是如果是这样~~那子窗口的消息该如何响应???他要先传给父窗口~~父窗口再传给子窗口~~
怎么样可以让他们俩独立开呢???
我看错了~~~
VS2005翻译的把window procedure翻译成窗口进程了~~
我就以为是两个进程了~~
是窗口过程~~
呵呵问题OK了。结贴了~~!!