18252776113 发表于 2012-11-13 23:00:52

菜鸟的纠结! 如何去掉属性表中系统自带的按钮?

本帖最后由 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:17

自己做按键啊

18252776113 发表于 2012-11-13 23:07:15

我有5亿 发表于 2012-11-13 23:02 static/image/common/back.gif
自己做按键啊

这三个按键是系统自带的,我想去掉,和我自己的重复了,
直接用这三个按键的话,位置不协调,而且那个帮助的按钮的函数体,又没找到

我有5亿 发表于 2012-11-13 23:20:32

18252776113 发表于 2012-11-13 23:07 static/image/common/back.gif
这三个按键是系统自带的,我想去掉,和我自己的重复了,
直接用这三个按键的话,位置不协调,而且那个帮 ...

新建的窗体怎么会自带系统按钮?对话框界面把自带按钮控件删掉不就行了

18252776113 发表于 2012-11-13 23:25:01

我有5亿 发表于 2012-11-13 23:20 static/image/common/back.gif
新建的窗体怎么会自带系统按钮?对话框界面把自带按钮控件删掉不就行了 ...

这三个按键是我在加载 属性表对话框时候,系统自带的,如果是自定义的,我就不用纠结了{:dizzy:}

tiancaigao7 发表于 2012-11-14 07:30:47

你建立的不是空窗体,空窗体本身是不带任何的控件的。

gongxd 发表于 2012-11-14 07:41:42

继承一下,再改,和自定义保存对话框差不多原理

18252776113 发表于 2012-11-14 19:48:30

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
}

jpchen 发表于 2012-11-14 20:29:21

传统上这种情况不应该用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:}

18252776113 发表于 2012-11-15 00:04:36

jpchen 发表于 2012-11-14 20:29 static/image/common/back.gif
传统上这种情况不应该用CPropertySheet和CPropertyPage,因为CPropertySheet一般是设置参数用的。

一般应 ...

{:3_59:}
谢谢啦,其实我就是想要这种的,我试试看,谢谢!
页: [1]
查看完整版本: 菜鸟的纠结! 如何去掉属性表中系统自带的按钮?