对话框显示问题 我的一个应用程序是基于对话框的(只有一个对话框,没有其他子对话框),该对话框(主窗口)显示后,用户就不能操作桌面上的其他程序,如何实现???? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对话框设置为TOP,让鼠标移动不出对话框区域,屏蔽一些组合键,ALT+TAB,WIN+D,ALT+CTRL+DEL 这个没试过 我到是有个笨方法。 写个hook,判断鼠标位置,如果是对话框以外屏蔽掉键盘 鼠标单击 1、建立链表,把所有顶层窗口的hWnd保存起来2、遍历这个链表,向所有的这些窗口::EnableWindow(hWnd,FALSE);3、当退出时,再遍历整个链表,::EnableWindow(hWnd,TRUE); 我已经试过我的方法了,可行!而且360还报警了!OnButton1禁用所有其它窗口OnButton2启用其它所有窗口void CTstDisableDlg::OnButton1() { // TODO: Add your control notification handler code here HWND hWnd = ::GetDesktopWindow(); HWND hWndDesktop = hWnd; for (hWnd = ::GetWindow(hWnd,GW_CHILD);hWnd;hWnd=::GetWindow(hWnd,GW_HWNDNEXT)) { if (hWnd!=m_hWnd && hWnd!=hWndDesktop) { m_cListWnd.AddTail((CObject*)hWnd); } } POSITION pos; for( pos = m_cListWnd.GetHeadPosition(); pos != NULL; ) { hWnd = (HWND)m_cListWnd.GetNext( pos ); ::EnableWindow(hWnd,FALSE); }}void CTstDisableDlg::OnButton2() { // TODO: Add your control notification handler code here HWND hWnd; POSITION pos; for( pos = m_cListWnd.GetHeadPosition(); pos != NULL; ) { hWnd = (HWND)m_cListWnd.GetNext( pos ); ::EnableWindow(hWnd,TRUE); }} 将对话框定义成模态对话框就可以了CDialogproty dlg; dlg.DoModal(); VC++中一个关于创建非模态对话框的问题 为什么我的程序总是出现一个奇怪的错误?~~~~~~ 怎么与QQ服务器通信? 请问如何将 INT 转化为 CSTRING AfxWnd42 帮我把这段vbscript翻译成vc++吧,我感激不尽 动态连接库编译找不到的问题 请教一个简单的问题。 用什么函数可以得到一个从摄像头传来的帧 请问怎样做一个发送邮件的程序? 串口调试助手发送ASCII码字符,请各位指点!! 如何保持两个窗口在Z轴上的资序不变?
2、遍历这个链表,向所有的这些窗口::EnableWindow(hWnd,FALSE);
3、当退出时,再遍历整个链表,::EnableWindow(hWnd,TRUE);
OnButton1禁用所有其它窗口
OnButton2启用其它所有窗口void CTstDisableDlg::OnButton1()
{
// TODO: Add your control notification handler code here
HWND hWnd = ::GetDesktopWindow();
HWND hWndDesktop = hWnd;
for (hWnd = ::GetWindow(hWnd,GW_CHILD);hWnd;hWnd=::GetWindow(hWnd,GW_HWNDNEXT))
{
if (hWnd!=m_hWnd && hWnd!=hWndDesktop)
{
m_cListWnd.AddTail((CObject*)hWnd);
}
} POSITION pos;
for( pos = m_cListWnd.GetHeadPosition(); pos != NULL; )
{
hWnd = (HWND)m_cListWnd.GetNext( pos );
::EnableWindow(hWnd,FALSE);
}}void CTstDisableDlg::OnButton2()
{
// TODO: Add your control notification handler code here
HWND hWnd;
POSITION pos;
for( pos = m_cListWnd.GetHeadPosition(); pos != NULL; )
{
hWnd = (HWND)m_cListWnd.GetNext( pos );
::EnableWindow(hWnd,TRUE);
}
}
CDialogproty dlg; dlg.DoModal();