限制程序只运行一次,再隐藏后重新唤出的方法。两个开发环境下实现

需求分析:
1。工作需要,程序要求运行后隐藏。需要的时候再通过调用EXE叫出
2。隐藏后按照原始状态继续工作,除非关机断电依然继续工作//
实现:
1。EVC4.0 + 标准wince5.0SDK。
2。VC2005 + 自己订制的SDK。类似标准SDK
==========================华丽分界线=============================================
1。先分析EVC下的设计思想。这里只提供思想和部分代码。
1.1 建立一个工程,对话框模式,动态库,去掉标题头名字。
1.2 点击资源标签框中根目录,右键打开属性,去掉Enable MFC features
1.3 选中住对话框-〉属性-〉有一个填写CLASS NAME的地方。写上去例如:“mercury”,记住。
1.4剩下的就是制作了。
1.5 在程序初始化的地方注册一下类具体方法是在CXXXApp::InitInstance()中添加如下代码:
WNDCLASS  wc  =  {0};  //注册类名为PLAY
    ::GetClassInfo(AfxGetInstanceHandle(),L"Dialog",&wc); 
    wc.lpszClassName=L"刚才那个类名"; 
    AfxRegisterClass(&wc); 
1.6 去试验一下吧。。
1.7 如果你要使用MFC的功能记得吧Enable MFC features钩回去。要不然用不了了。。。。。
==========================更为华丽的分界线========================================
2。现在分析下VS2005的设计思想。稍微有些啰嗦。。。。要自己试验一下。
2.1 VS2005下没有直接修改CLASS NAME的地方。只能通过修改RC文件来折腾了。。具体改的也不多。
只需要在
/ 
// // Dialog
//
IDD_OPENFILE DIALOG DISCARDABLE 0, 0, 287, 180
STYLE WS_POPUP
CLASS "XXXX类名"//加上这句话 FONT 10, "System"
//
2.2参考1.5 注册一下类名。

2.3 自己去试验一下吧。
==================================分了=============================================
以上方法我都试验过了。如果不出很大的意外都可以实现的。努力吧。
有问题欢迎交流。
PS。隐藏界面的方法就是SHOWWINDOWS(SW_HIDE) ,这个应该都是知道的。具体在什么情况下实现看个人了。
当然show的时候也自己订咯。用::sendmessage
参考如下:放在初始化里面
    HWND hWnd;
        hWnd = ::FindWindow(TEXT("xxxx你的类名"),NULL);
        if(hWnd != NULL)
        {
            //显示窗口。
            ::SendMessage (hWnd,ShowWindow(hWnd,SW_SHOW),0,0);//显示窗口
            ::SendMessage(hWnd,SHOWxxxWINDOW,0,0);//向窗口发消息。
            ::SetWindowPos(hWnd, HWND_TOP,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);//顶层
            ::SendMessage(hWnd,xxxx,0,0);//发送控制,得到当前xx

            return true;
        }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值