• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

VC雕虫小技集(三)

发布: 2007-7-01 20:40 | 作者: admin | 来源: | 查看: 19次 | 进入软件测试论坛讨论

领测软件测试网  

VC雕虫小技集(三)

1,固定窗口大小,最大值为(600,400),最小值也为(600,400).

void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)

{

    lpMMI->ptMaxTrackSize.x = 600;

       lpMMI->ptMaxTrackSize.y = 400;

       lpMMI->ptMinTrackSize.x = 600;

       lpMMI->ptMinTrackSize.y = 400;

      

       CFrameWnd::OnGetMinMaxInfo(lpMMI);

}

 

2,关闭对话框和窗口:

其实,一般窗口的销毁可以用DestoryWindow(),对话框的销毁可以用EndDialiog().

EndDialog(IDOK);

DoModal()的返回值为IDOK,但不会执行用户定义的OnOK.

只要发送WM_CLOSE消息,就会有响应的函数处理的。

SendMessage(WM_CLOSE);

PostMessage(WM_CLOSE);

void CTestDialog::OnButton1()

{    

       GetParent()->DestroyWindow();

}

窗口和对话框一起关

PostMessage(WM_QUIT);

SendMessage(WM_QUIT);//不行

无模式对话框用DestroyWindow();

用EndDialog

你再打开原对话框就有问题

 

3,全局变量的使用:

C***App中定义一个CString

使用时

void CDlgDlg::OnButton2()

{

       ((CDlgApp*)AfxGetApp())->str = "test";

}

不要忘记了包含文件

 

4,如何让dos程序开机自动运行并且不显示

自动运行好解决,写注册表run值,

vc+windows2000

把main改为winmain

 

5,清除自动密码历史记录

浏览器中:

工具->Inte.net选项->内容->点"自动完成(U)"按钮->清除密码

http://tzsvc.xiloo.com/skill/sys/clear.htm

SHDeleteKey(HKEY_CURRENT_USER,

_T("Software\\Microsoft\\Internet Explorer\\IntelliForms"));

 

6,执行一个可执行程序

方法一:

 ShellExecute(this->GetSafeHwnd(),"Open","f:\\he.txt",NULL,NULL,SW_SHOWNORMAL );

方法二:

PROCESS_INFORMATION pi;

    STARTUPINFO si;

    si.cb = sizeof(STARTUPINFO);

    si.lpReserved = NULL;

    si.lpDesktop = NULL;

    si.lpTitle = NULL;

    si.dwFlags = 0;

    si.cbReserved2 = 0;

    si.lpReserved2 = NULL;

    BOOL bres = CreateProcess(NULL,"test a.txt b.txt",NULL,NULL,false,

                        NORMAL_PRIORITY_CLASS,

                        NULL,NULL,&si,&pi);

if(bres==false)

{

AfxMessageBox("CreateProcess failed");

}

else

{

CloseHandle(pi.hThread);

DWORD dwret=WaitForSingleObject(pi.hProcess, 1000*30);

switch(dwret)

{

case WAIT_OBJECT_0:

DWORD dwexitcode;

bres = GetExitCodeProcess(pi.hProcess,&dwexitcode);

TCHAR exitmsgbuf[1024];

if(bres)

{

wsprintf(exitmsgbuf,"exit code:%d",dwexitcode);

}

else

wsprintf(exitmsgbuf,"exit code failed to return");

 

AfxMessageBox(exitmsgbuf);

break;

default:

AfxMessageBox("exit for other reason");,


延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网