- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC编程常见问题1fdsgbf
Visual C++编程技巧之一
1. 如何获取应用程序的实例句柄?
2. 如何通过代码获得应用程序主窗口的指针?
3.如何在程序中获得其他程序的 图标?
4.如何编程结束应用程序?如何编程控制windows的重新引导?
5.怎样加栽其他的应用程序?
6. 确定应用程序的 路径
7. 获得各种目录信息
8. 如何自定义消息
9. 如何改变窗口的图标?
10. 如何改变窗口的缺省风格?
11. 如何将窗口居中显示?
12. 如何让窗口和MDI窗口一启动就最大化和最小化?
13. 如何使程序保持极小状态?
14. 如何限制窗口的大小?
15. 如何使窗口不可见?
16. 如何使窗口始终在最前方?
17、如何创建一个字回绕的CEditView
18、通用控件的显示窗口
19、移动窗口
20、重置窗口的大小
21、如何单击除了窗口标题栏以外的区域使窗口移动
22、如何改变视窗的背景颜色
23、如何改变窗口标题
24、如何防止主框窗口在其说明中显示活动的文档名
?
1. 如何获取应用程序的实例句柄?
应用程序的 实例句柄保存在CWinApp::m_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):同样功能,使用 ExtractIcon 函数?
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);
?????? if (pWnd)
????????????? pWnd -SendMessage(WM_CLOSE);
}
说明: FindWindow函数不是提倡的做法,因为它无法处理标题栏自动改变,比如我们要检测 Notepad是不是已运行而事先不知道Notepad的标题栏,这时 FindWindow就无能为力了,可以通过枚举 windows 任务列表的办法来实现。在机械出版社Windows 95
原创力文档


文档评论(0)