首先我创建一个Win32的空工程
创建一个窗口
hMenu=LoadMenu(hInstance,MAKEINTRESOURCE(MYMENU));hAccele=LoadAccelerators(hInstance,MAKEINTRESOURCE(MYACCELE));hwnd=CreateWindow(strName,"虚拟桌面",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,hMenu,
hInstance,hAccele);这个窗口有菜单hMenu和快捷键hAccele,快捷键为RegisterHotKey(hwnd,0x0001,0,VK_F1);调用
ShowWindow(hwnd,nShowCmd);
UpdateWindow(hwnd);
窗口显示出来了然后在WinMain函数中
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
hDesk=CreateDesktop("Virtual","NULL",NULL,DF_ALLOWOTHERACCOUNTHOOK,GENERIC_ALL,NULL);
//创建一个新的桌面 hCurrent=GetThreadDesktop(GetCurrentThreadId());
//得到当前桌面句柄
//并定义一个全局变量 HDESK buf;
buf=hCurrent;最后在回调函数中LRESULT CALLBACK WndProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
case WM_HOTKEY:
if(0x0001==LOWORD(wParam))
if(buf==hCurrent)
{
SwitchDesktop(hDesk); //切换到新建的桌面
ShowWindow(hwnd,SW_SHOW);//显示“虚拟桌面” 这个应用程序
buf=hDesk;
}
else
{
SwitchDesktop(hCurrent);//切换到原来桌面
ShowWindow(hwnd,SW_SHOW);//显示"虚拟桌面",这个应用程序
buf=hCurrent;
}
break;
}注意:问题来了 我按下F1切换到新的桌面hDesk,但是ShowWindow(hwnd,SW_SHOW);却没有显示出我想要的应用程序窗口····
这个是怎么个情况····
创建一个窗口
hMenu=LoadMenu(hInstance,MAKEINTRESOURCE(MYMENU));hAccele=LoadAccelerators(hInstance,MAKEINTRESOURCE(MYACCELE));hwnd=CreateWindow(strName,"虚拟桌面",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,hMenu,
hInstance,hAccele);这个窗口有菜单hMenu和快捷键hAccele,快捷键为RegisterHotKey(hwnd,0x0001,0,VK_F1);调用
ShowWindow(hwnd,nShowCmd);
UpdateWindow(hwnd);
窗口显示出来了然后在WinMain函数中
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
hDesk=CreateDesktop("Virtual","NULL",NULL,DF_ALLOWOTHERACCOUNTHOOK,GENERIC_ALL,NULL);
//创建一个新的桌面 hCurrent=GetThreadDesktop(GetCurrentThreadId());
//得到当前桌面句柄
//并定义一个全局变量 HDESK buf;
buf=hCurrent;最后在回调函数中LRESULT CALLBACK WndProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
case WM_HOTKEY:
if(0x0001==LOWORD(wParam))
if(buf==hCurrent)
{
SwitchDesktop(hDesk); //切换到新建的桌面
ShowWindow(hwnd,SW_SHOW);//显示“虚拟桌面” 这个应用程序
buf=hDesk;
}
else
{
SwitchDesktop(hCurrent);//切换到原来桌面
ShowWindow(hwnd,SW_SHOW);//显示"虚拟桌面",这个应用程序
buf=hCurrent;
}
break;
}注意:问题来了 我按下F1切换到新的桌面hDesk,但是ShowWindow(hwnd,SW_SHOW);却没有显示出我想要的应用程序窗口····
这个是怎么个情况····
解决方案 »
- 能不能得到另一进程在任务栏里窗口的具体位置?
- List Control 自绘行高问题
- CreateRemoteThread 插入dll失败不知道什么原因,搞了几天了
- VC有问题,files can only be opened as one type at a time...
- 绘图的问题, 各位高人请指点!!!
- 加载一个动态生成的位图,如何建立ID_BITMAP2和result.bmp的映射关系?
- 客户端怎样调用COM组件????????????????
- 谁有建立索引文件这方面的例子吗?
- DLL的作用?
- 如何用一个图像,代替按钮(button)里的文字???急!
- 如何将文本内容(html格式)写入IHTMLDocument中?
- 内存泄露
HWND hWnd, // handle to window
UINT Msg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
例子的做法是把应用程序隐藏起来而不是新建一个桌面····
ShowWindow(hwnd,SW_HIDE)`````
我先Set了还是不显示····郁闷,就算我先set 然后再CreateWindow,新建的窗口也会显示在缺省桌面,也就是原桌面····