3767|7

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何去掉EVC属性表单的OK按钮? [复制链接]

请教一下,我在EVC下做了个属性表单,创建过程如下

CPropSheet propSheet(_T("属性表单"));


        CWABOODlg dlg;
       
        int nResponse = dlg.DoModal();                                //        打开登录界面
        if (nResponse == IDOK)
        {
                m_pMainWnd = &propSheet;
                propSheet.DoModal();                           //  打开属性表单                          
        }
        else if (nResponse == IDCANCEL)
        {
                // TODO: Place code here to handle when the dialog is
                //  dismissed with Cancel
        }

但是打开表单页面后,顶部右上角有个有个OK按钮,一点整个表单就关闭了。 还有按回车和ESC也退出整个表单,现在我想让表单有条件退出,比如输入密码才能退出。

回车和ESC我已经屏蔽掉了,但是顶上的那个OK 我找不到对应的响应函数,它的ID号也不是IDOK , 请问怎么样能去掉整个OK按钮或者让它失效。

最新回复

试下这个函数 ModifyStyleEx(WS_EX_CAPTIONOKBTN,WS_EX_TOPMOST,SWP_NOMOVE);  详情 回复 发表于 2008-5-9 10:05
点赞 关注

回复
举报

64

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
把自己最大化 放在最前面
        CWnd *pTopDlg = FindWindow(_T("MS_SIPBUTTON"),NULL);        //隐藏背景
//         if (pTopDlg != NULL)
//         {
//                 pTopDlg->ShowWindow(SW_HIDE);
//         }

//         pTopDlg = FindWindow(_T("MS_HHTaskBar"),NULL);        //隐藏背景
//         if (pTopDlg != NULL)
//         {
//                 pTopDlg->ShowWindow(SW_HIDE);
//         }

//         pTopDlg = FindWindow(_T("SipWndClass"),NULL);        //隐藏背景
//         if (pTopDlg != NULL)
//         {
//                 pTopDlg->ShowWindow(SW_HIDE);
//         }

        pTopDlg = FindWindow(_T("menu_worker"),NULL);        //隐藏背景
        if (pTopDlg != NULL)
        {
                pTopDlg->ShowWindow(SW_HIDE);
        }

        SipShowIM(SIPF_OFF);  

        HIMC hIMC = ImmGetContext(m_hWnd); //hWnd为当前窗口句柄
        ImmSetOpenStatus(hIMC, FALSE); //关闭中文输入法
        ImmReleaseContext(m_hWnd, hIMC);

        MoveWindow(0,0,240,320);
        SetWindowPos(&this->wndTopMost,0,0,0,0,SWP_NOSIZE);
 
 

回复

60

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
1楼说的我不是很明白啊, 这个能取消掉OK按钮么?
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

4
 
看看资源文件(用记事本之类打开)如果有0X0800000之类的在你的对话框中,就把它删掉,OK就没有了
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

5
 
这个OK按钮不是你软件的上的,好像系统的.所以只有你的程序界面在系统之前 且最大化就行了
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
我说个办法你试下:查看“*.rc2”代码,将NEMU的代码看一下。或者仿照原来的写一个自己的。将原来的替换,或者把那个1,换成2。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

7
 
三楼说的方法还是比较有用,不过这种方法只对于对话框属性的页面有效,我在里面去掉了0x80000000L ,就没有那个OK了 。
但是我的创建的是properysheet页面 ,看不到对话框,在.RC 文件里也没有对应的内容,这样还是去不掉。
我在我的 PropSheet.CPP 的OnInitDialog() 函数里 添加代码

long style =GetWindowLong(m_hWnd,GWL_STYLE);   
  style &= ~(0x80000000L);   
  SetWindowLong(m_hWnd,GWL_STYLE,style);  
这样也没有效果啊,真的不知道怎么搞了。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

8
 
试下这个函数
ModifyStyleEx(WS_EX_CAPTIONOKBTN,WS_EX_TOPMOST,SWP_NOMOVE);
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表