- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《1. 如何获取应用程序的实例句柄?》.doc
1. 如何获取应用程序的实例句柄?应用程序的 实例句柄保存在CWinAppIm_hInstance 中,可以这么调用AfxGetInstancdHandle获得句柄.Example: HANDLE hInstance=AfxGetInstanceHandle();2. 如何通过代码获得应用程序主窗口的指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用 AfxGetMainWnd实现。AfxGetMainWnd() -ShowWindow(SW_SHOWMAXMIZED); //使程序最大化.3. 如何在程序中获得其他程序的 图标?两种方法:(1) SDK函数 SHGetFileInfo 或使用 ExtractIcon获得图标资源的 handle,(2) SDK函数 SHGetFileInfo获得有关文件的 很多信息,如大小图标,属性,类型等.Example(1): 在程序窗口左上角显示 NotePad图标.void CSampleView: OnDraw(CDC * pDC){if( :: SHGetFileInfo(_T(c:\\pwin95\\notepad.exe),0,stFileInfo,sizeof(stFileInfo),SHGFI_ICON)){pDC -DrawIcon(10,10,stFileInfo.hIcon);}}Example(2): 同样功能,Use ExtractIcon Functionvoid CSampleView:: OnDraw(CDC *pDC){HICON hIcon=:: ExtractIcon(AfxGetInstanceHandle(),_T(NotePad.exe),0);if (hIcon hIcon!=(HICON)-1)pDC-DrawIcon(10,10,hIcon);}说明: 获得notepad.exe 的路径正规上来说用GetWindowsDirectory 函数得到,如果是调用 win95下的画笔,应该用访问注册表的方法获得其路径,要作成一个比较考究的程序,考虑应该全面点.4. 如何编程结束应用程序?如何编程控制windows 的重新引导?这是个很简单又是编程中经常要遇到的问题.第一问,向窗口发送 WM_CLOSE消息,调用 CWnd::OnClose成员函数.允许对用户提示是否保存修改过的数据.Example: AfxGetMainWindow()-SendMessage(WM_CLOSE);还可以创建一个自定义的函数 Terminate Windowvoid Terminate Window(LPCSTR pCaption){CWnd *pWnd=Cwnd::FindWindow(NULL,pCaption);if (pWnd)pWnd -SendMessage(WM_CLOSE);}说明: FindWindow 函数不是提倡的做法,因为它无法处理标题栏自动改变,比如我们要检测 Notepad 是不是已运行而事先不知道Notepad 的标题栏,这时 FindWindow 就无能为力了,可以通过枚举 windows 任务列表的办法来实现。 在 机械出版社Windows 95API开发人员指南一书有比较详细的介绍,这里就不再多说乐。第二问,Use ExitWindowsEx Function 函数控制系统是重新引导,还是重启 windows.前面已经有人讲过乐,就不再提了。5. 怎样加栽其他的应用程序?我记得这好象是出场频度很高的问题。三个SDK函数 winexec, shellexecute,createprocess可以使用。WinExec 最简单,两个参数,前一个指定路径,后一个指定显示方式.后一个参数值得说一下,比如泥用 SW_SHOWMAXMIZED 方式去加栽一个无最大化按钮的 程序,呵呵就是Neterm,calc 等等,就不会出现正常的 窗体,但是已经被加到任务列表里了。ShellExecute较 WinExex灵活一点,可以指定工作目录,下面的 Example就是直接打开c:\temp\1.txt,而不用加栽与 txt 文件关联的应用程序,很多安装程序完成后都会打开一个窗口,来显示Readme or Faq,偶猜就是这么作的啦.ShellExecute(NULL,NULL,_T(1.txt),NULL,_T(c:\\temp),SW_SHOWMAXMIZED);CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL 代替,它可以指定进程的安全属性,继承信息,类的优先级等等.来看
您可能关注的文档
- 《• Victims o Severity》.pdf
- 《<C8ABD2B3B4ABD5E6CDBCC6AC>》.pdf
- 《·材料与防腐·》.doc
- 《§1.1 润滑油基础油概述》.pdf
- 《( An Apex Organization Dedicated》.pdf
- 《(anti-CCP-antibody) ELISA Kit》.pdf
- 《(Audio Characterization Report)》.pdf
- 《(GnIH) in Birds and Mammals》.pdf
- 《(JINXI AXLE COMPANY LTD.)》.PDF
- 《(NOTOUNGULKJI, MAMMALIA)》.pdf
文档评论(0)