欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年VisualC++编程技巧小结 .pdf

    • 资源ID:33389700       资源大小:119.27KB        全文页数:8页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年VisualC++编程技巧小结 .pdf

    Visual C+编程技巧小结作者: RHU-TAC 教程来源: RHU 点击数:164 更新时间: 2005-12-24 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:pwin95notepad.exe),0,&stFileInfo,sizeof(stFileInfo),SHGFI_ICON) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - pDC -DrawIcon(10,10,stFileInfo.hIcon); Example(2): 同样功能 ,Use ExtractIcon Function void 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 Window void Terminate Window(LPCSTR pCaption) CWnd *pWnd=Cwnd:FindWindow(NULL,pCaption); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - if (pWnd) pWnd -SendMessage(WM_CLOSE); 说明 : FindWindow 函数不是提倡的做法,因为它无法处理标题栏自动改变,比如我们要检测Notepad 是不是已运行而事先不知道Notepad 的标题栏 ,这时 FindWindow 就无能为力了,可以通过枚举windows 任务列表的办法来实现。在 机械出版社 Windows 95 API开发人员指南 一书有比较详细的介绍,这里就不再多说乐。第二问 ,Use ExitWindowsEx Function 函数控制系统是重新引导,还是重启windows. 前面已经有人讲过乐,就不再提了。5. 怎样加栽其他的应用程序? 我记得这好象是出场频度很高的问题。三个 SDK 函数 winexec, shellexecute,createprocess可以使用。WinExec 最简单, 两个参数, 前一个指定路径, 后一个指定显示方式.后一个参数值得说一下,比如泥用SW_SHOWMAXMIZED 方式去加栽一个无最大化按钮的程序,就是Neterm,calc 等等,就不会出现正常的窗体,但是已经被加到任务列表里了。ShellExecute 较 WinExex 灵活一点,可以指定工作目录,下面的Example 就是直接打开c:temp1.txt,而不用加栽与txt 文件关联的应用程序 ,很多安装程序完成后都会打开一个窗口,来显示Readme or Faq,偶猜就是这么作的啦。ShellExecute(NULL,NULL,_T(1.txt),NULL,_T(c:temp),SW_SHOWMAXMIZED); CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL 代替,它可以指定进程的安全属性,继承信息,类的优先级等等.来看个很简单的Example: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - STARTUPINFO stinfo; / 启动窗口的信息PROCESSINFO procinfo; / 进程的信息CreateProcess(NULL,_T(notepad.exe),NULL,NULL.FALSE, NORMAL_PRIORITY_ CLASS,NULL,NULL, &stinfo,&procinfo); 6. 确定应用程序的路径前些天好象有人问过这个问题. Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。Example: TCHAR exeFullPathMAX_PA TH; / MAX_PA TH 在 API 中定义了吧,好象是128 GetModuleFileName(NULL,exeFullPath,MAX_PATH) 7. 获得各种目录信息Windows 目录 : Use GetWindowsDirectory“Windows 下的 system目录 : Use GetSystemDirectory temp 目录 : Use GetTempPath 当前目录 : Use GetCurrentDirectory 请注意前两个函数的第一个参数为目录变量名,后一个为缓冲区; 后两个相反 . 8. 如何自定义消息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - 也有人问过的,其实不难。(1) 手工定义消息,可以这么写#define WM_MY_MESSAGE(WM_USER+100), MS 推荐的至少是WM_USER+100; (2)写消息处理函数 ,用 WPARAM,LPARAM返回 LRESULT. LRESULT CMainFrame:OnMyMessage(WPARAM wparam,LPARAM lParam) /加入你的处理函数 (3) 在类的AFX_MSG 处进行声明,也就是常说的宏映射 9. 如何改变窗口的图标? 向窗口发送WM_SECTION 消息。Example: HICON hIcon=AfxGetApp() -LoadIcon(IDI_ICON); ASSERT(hIcon); AfxGetMainWnd() -SendMessage(WM_SECTION,TRUE,(LPARAM) hIcon); 10. 如何改变窗口的缺省风格? 重写CWnd: PreCreateWindow 并修改 CREATESTRUCT 结构来指定窗口风格和其他创建信息. Example: Delete Max Button and Set Origi nal Window s Position and Size名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - BOOL CMainFrame: PreCreateWindow (CREATESTRUCT &cs) cs.style &=WS_MAXINIZEMOX; cs.x=cs.y=0; cs.cx=GetSystemMetrics(SM_CXSCREEN/2); cs.cy=GetSystemMetrics(SM_CYSCREEN/2); return CMDIFramewnd :PreCreateWindow(cs); 11. 如何将窗口居中显示? Easy, Call Function CWnd: Center Windows Example(1): Center Window( ); /Relative to its parent/ Relative to Screen Example(2): Center Window(CWnd: GetDesktopWindow( ); /Relative to Applications MainWindowAfxGetMainWnd( ) - Center Window( ); 12. 如何让窗口和MDI 窗口一启动就最大化和最小化? 先说窗口。在 InitStance 函数中设定m_nCmdShow 的 取值 . m_nCmdShow=SW_SHOWMAXMIZED ; /最大化m_nCmdShow=SW_SHOWMINMIZED ; /最小化m_nCmdShow=SW_SHOWNORMAL ; /正常方式名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - MDI 窗口 : 如果是创建新的应用程序,可以用MFC AppWizard 的 Advanced 按钮并在MDI 子窗口风格组中检测最大化或最小化; 还可以重载MDI Window 的 PreCreateWindow 函数,设置WS_MAXMIZE or WS_MINMIZE;如果从CMDIChildWnd 派生 ,调用OnInitialUpdate 函数中的CWnd:Show Window 来指定MDI Child Window 的 风格。13. 如何使程序保持极小状态? 很有意思的问题这么办 : 在恢复程序窗体大小时,Windows 会发送 WM_QUERY-OPEN 消息,用ClassWizard 设置成员函数OnQueryOpen() ,add following code: Bool CMainFrame: OnQueryOpen( ) Return false; 14. 如何限制窗口的大小? 也就是FixedDialog 形式。Windows 发送WM_GETMAXMININFO消息来跟踪 , 响应它 ,在 OnGetMAXMININFO 中写代码 : 15. 如何使窗口不可见?很简单 ,用 SW_HIDE 隐藏窗口,可以结合FindWindow,ShowWindow 控制 . 16. 如何使窗口始终在最前方? 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - 两种途径 . BringWindowToTop(Handle); SetWindowPos 函数,指定窗口的最顶风格 ,用 WS_EX_TOPMOST 扩展窗口的风格Example: void ToggleTopMost( CWnd *pWnd) ASSERT_VALID(pWnd); pWnd -SetWindowPos(pWnd- GetStyle( ) &WS_EX_TOPMOST)? &wndNoTopMOST: &wndTopMost,0,0,0,0,SSP_NOSIZE|WSP_NOMOVE; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -

    注意事项

    本文(2022年VisualC++编程技巧小结 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开