遇到一个怪问题,create一个对话框,
ptrTestDlg = new TestDlg(this);
ptrTestDlg ->Create(IDD_TESTDLG,this);
ptrTestDlg ->UpdateData(TRUE);
ptrTestDlg ->RedrawWindow();
ptrTestDlg ->CenterWindow(this);
ptrTestDlg ->ShowWindow(SW_SHOW);
点击ok按钮后hide掉然后show主窗口,但现在奇怪的是hide掉以后好像主窗口失去了焦点,点击鼠标没有任何反映,然后点击其他\程序,或者点击任务栏,这是点击主窗口,就可以用了,不知道什么原因,也没做什么其他处理啊。
ptrTestDlg = new TestDlg(this);
ptrTestDlg ->Create(IDD_TESTDLG,this);
ptrTestDlg ->UpdateData(TRUE);
ptrTestDlg ->RedrawWindow();
ptrTestDlg ->CenterWindow(this);
ptrTestDlg ->ShowWindow(SW_SHOW);
点击ok按钮后hide掉然后show主窗口,但现在奇怪的是hide掉以后好像主窗口失去了焦点,点击鼠标没有任何反映,然后点击其他\程序,或者点击任务栏,这是点击主窗口,就可以用了,不知道什么原因,也没做什么其他处理啊。
解决方案 »
- 今天头疼胃疼,散粉
- 串口通信时怎么设置DCB才可以接收到不是以0x00结束的数据串
- 我编的ocx在ie5中打不开,但在同样的机子装了ie6就能成功,可能是啥原因呢?
- 我不想让别人知道我的计算机名(即别人用nbtstat -a 我的地址),要屏蔽哪项服务?
- 还是FindWindEx()问题,不解啊!
- 如何防止头文件被重复引用?
- 关于CArray<type, tyep>类的一点不懂之处....
- 用GlobalAlloc分配的内存返回的是虚拟地址or线性地址 ?
- 秒杀! 一个很简单的问题! 请各位大虾帮忙!
- 请教:我用Delphi做的ActiveX中声明的方法和函数,怎么在别的开发工具中不能调用?绝对给分!!!
- 晕,可用分5000了,散!
- 是不是有的sql命令在vc里边不能用啊?例如Order By和Min
BOOL CWnd::IsTopParentActive() const
{
ASSERT(m_hWnd != NULL);
ASSERT_VALID(this); return CWnd::GetForegroundWindow() ==
GetTopLevelParent()->GetLastActivePopup();
}用VC在你的VC目录(...\MICROSOFT VISUAL STUDIO\VC98\MFC)下搜索IsTopParentActive就能找到源码
有两种方法可以获得焦点:
1.打开资源编辑器中的对话框模板,在Layout菜单中选择TabOrder选项。按对话框中的控制来重新排列这些控制的tab顺序。
2.用文本编辑器(比如:记事本等)直接打开*.rc文件,会看到各个控件资源以文本的方式按加入时的顺序排列如下:
BEGIN
EDITTEXT IDC_EDIT 1,20,19,86,21,ES_ AUTOHSCROLL
COMBOBOX IDC_COMBO 1,15,57,92, 18,CBS_DROPDOWN|CBS_SORT|WS_ VSCROLL|WS_TABSTOP
END
排在前面的(比如本例的EDITTEXT)就是首先获得焦点的空间,只要改变其排列顺序即可。
把ptrTestDlg = new TestDlg(this);中的this 去掉,然后试