我的主窗口上有6个static控件,我新建了个基于CStatic的CMyStatic类用来重载左键双击和右键点击消息,由于无论哪个被点击了都会响应重载的消息,目前问题是我怎么确定左键双击或右键点击了哪个static控件呢?
根据控件坐标判断哪个被点击了的方法不要,请问有其他的解决方法吗?
在线等
根据控件坐标判断哪个被点击了的方法不要,请问有其他的解决方法吗?
在线等
解决方案 »
- 万能的CSDN请给我解决这世纪难题啊
- Win32 开发 怎样实现一个风格的滚动条
- 获取路径问题
- .net winxp 和金山词霸一起安装有冲突吗? 我的金山词吧 怎么不能用呢??
- 界面工具栏
- ADO编程中CursorType赋值问题
- 如何正确安全的传递DATE类型的数据?
- 变速齿轮研究.TXT,那天比较无聊,拿IDA把齿轮折了(估计又发错地方了,不过我从来好像只在网络版发呀)
- 我用vc.net创建了两个工程a和b,我现在想把a工程的对话框及代码移值到b工程,如何实现?
- 关于怎么用memcpy函数的问题
- VC,用ADO访问SQL数据库,如何获得数据库中表的字段的类型?在线等!!!谢谢
- 问一个程序执行的问题
比如说我选择了一个static控件,然后点了另外一个button键,这个button是对static控件进行操作的,我怎么判断在我点button之前是选择了哪个控件呢?
我是想双击后将这个static控件变大,类似全屏,这时候需要把其他控件隐藏起来
就这样出了问题,因为主界面是的控件用了CMyStatic类的,所以包了它,然后我双击响应是在CMyStatic执行文件里面的,所以就这样,我在CMyStatic里的双击响应消息中调用主窗口的函数(功能是其他的控件隐藏),就隐藏 GetDlgItem(IDC_VIDEO)->ShowWindow(nChoose); 这样的语句出错了,请问下是什么问题?
我的情况是这样的 主窗口的头文件包含了CMyStatic的头文件,CMyStatic的cpp文件又包含了主窗口的头文件,这样会出问题吗
然后void CMyStatic::OnLButtonDblClk(UINT nFlags, CPoint point) //双击消息响应的
{
OnFullscreen(); //这个是我的全屏函数
}
void CMyStatic::OnFullscreen()
{
// TODO: Add your command handler code here
CScrutinyDlg dlg;
dlg.OperAllControls(nFullFlag); //这个函数是隐藏文件的
//内容全是这样的,GetDlgItem(IDC_VIDEO)->ShowWindow(nChoose);
//nFullFlag 是全屏标志
if (nFullFlag == 0)
{
nFullFlag = 1;
this->ShowWindow(nFullFlag);
this->MoveWindow(CRect(0,0,1024,768), TRUE);
}
else
{
nFullFlag = 0;
this->ShowWindow(nFullFlag);
CRect rect;
this->GetClientRect(&rect);
this->MoveWindow(&rect, TRUE);
}
}然后就是dlg是空的,所以就出错了
光声明了一个dialog变量,还没有创建对话框
你需要用DoModal(), 或Create() ... ShowWindow等方式来创建,显示对话框
另外全屏的问题我换了个方法我是新建了一个对话框用来专门显示全屏后的结果,但是我想问怎么在外面就可以关闭掉对话框,里面的函数调用也行
CScrutinyDlg dlg只是构造了一个CScrutinyDlg类对象,并不是程序显示的窗口。如果CScrutinyDlg是static控件的父窗口,应该这样:
CScrutinyDlg* dlg = (CScrutinyDlg*)GetParent();
如果不是,可以这样:
CScrutinyDlg* dlg = (CScrutinyDlg*)AfxGetMainWnd();
最后是这个方法弄好了,恩主要是今天网络太差太慢,现在结贴