菜鸟的纠结! 如何去掉属性表中系统自带的按钮?
本帖最后由 18252776113 于 2012-11-14 20:20 编辑就是上面属性表中的2个按键(框起来的),想去掉但毫无头绪,MSDN上有没查到,对底层API又不熟悉,纠结中。。。
是在CCondApp()应用程序类中定义的,代码如下
BOOL CCondApp::InitInstance()
{
AfxEnableControlContainer();
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
//CCondApp::InitInstance()
CCondSheet dlg("电导率控制变送器"); //CPropertySheet
CCond1Dlg dlg1; //CPropertyPage
CCond2Dlg dlg2;
dlg.AddPage(&dlg1);
dlg.AddPage(&dlg2);
dlg.m_psh.dwFlags |= PSH_NOAPPLYNOW; //去除应用键
dlg.m_psh.nStartPage=0;
//m_pMainWnd = &dlg; //屏蔽 IDOK IDCANCEL
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
if(dlg1.m_run_flag)
{
dlg1.Send_Receive(1,3);
dlg1.KillTimer(1);
dlg1.KillTimer(2);
}
//dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
if(dlg1.m_run_flag)
{
dlg1.Send_Receive(1,3);//发给下位机命令,下位机没反应
dlg1.KillTimer(1);
dlg1.KillTimer(2);
AfxMessageBox("111");//被执行了
}
//dismissed with Cancel
}
}
另外发现在消息响应里,添加的内容确实执行了,但下位机不能响应,这个问题正在找原因,主要是上面的问题 去除2个默认的按键
用的是VC6.0,学习中,求助高手!!!
自己做按键啊 我有5亿 发表于 2012-11-13 23:02 static/image/common/back.gif
自己做按键啊
这三个按键是系统自带的,我想去掉,和我自己的重复了,
直接用这三个按键的话,位置不协调,而且那个帮助的按钮的函数体,又没找到 18252776113 发表于 2012-11-13 23:07 static/image/common/back.gif
这三个按键是系统自带的,我想去掉,和我自己的重复了,
直接用这三个按键的话,位置不协调,而且那个帮 ...
新建的窗体怎么会自带系统按钮?对话框界面把自带按钮控件删掉不就行了 我有5亿 发表于 2012-11-13 23:20 static/image/common/back.gif
新建的窗体怎么会自带系统按钮?对话框界面把自带按钮控件删掉不就行了 ...
这三个按键是我在加载 属性表对话框时候,系统自带的,如果是自定义的,我就不用纠结了{:dizzy:} 你建立的不是空窗体,空窗体本身是不带任何的控件的。 继承一下,再改,和自定义保存对话框差不多原理 tiancaigao7 发表于 2012-11-14 07:30 static/image/common/back.gif
你建立的不是空窗体,空窗体本身是不带任何的控件的。
我是这样建的,然后运行就有了自带的按键,应用键 帮助键 可以去掉,确认键 取消键没有头绪
属性表如何建一个空窗体?
BOOL CCondApp::InitInstance()
{
AfxEnableControlContainer();
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
CCondSheet dlg("COND"); //CPropertySheet属性表
CCond1Dlg dlg1; //CPropertyPage属性页
CCond2Dlg dlg2;
dlg.AddPage(&dlg1);
dlg.AddPage(&dlg2);
dlg.m_psh.dwFlags |= PSH_NOAPPLYNOW; //去除应用键
dlg.m_psh.nStartPage=0;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
//dismissed with OK
}
传统上这种情况不应该用CPropertySheet和CPropertyPage,因为CPropertySheet一般是设置参数用的。
一般应该这样做:
1、用CDialog做为主窗口,在里面放一个CTabCtrl。
2、你的“电导率控制器1”和“电导率控制器2”也创建为对话框资源。
3、在主对话框的OnInitDialog函数中用CTabCtrl::InsertItem增加“电导率控制器1”和“电导率控制器2”两个标签。
4、在OnInitDialog里继续用CDialog::Create的方式创建“电导率控制器1”和“电导率控制器2”2个对话框,这样创建出来是非模态的对话框,也就是和窗口性质差不多。
5、用MoveWindow将这2个对话框放到正确的位置,到这里时窗口都创建好了。
6、对CTabCtrl控件映射一个消息处理函数,在它变化时调用的 OnSelchangeTab。在里面对点击的标签进行判断,用ShowWindow显示一个,隐藏一个。
这样就不会出现CPropertySheet中的那些按钮了。
注意“电导率控制器1”和“电导率控制器2”这2个对话框类需要将OnOK和OnCancel处理一下,将缺省的调用注释调,否则你一按Esc,一个对话框就消失了,2个标签页就剩下1个了,再按一下,就又消失1个。{:lol:} jpchen 发表于 2012-11-14 20:29 static/image/common/back.gif
传统上这种情况不应该用CPropertySheet和CPropertyPage,因为CPropertySheet一般是设置参数用的。
一般应 ...
{:3_59:}
谢谢啦,其实我就是想要这种的,我试试看,谢谢!
页:
[1]