- 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中改变窗口的大小和样式.
改变窗口的外观和大小
改变窗口的外观和大小需要在窗口创建以前改变。 所以我们可以在CMainFrame的 PreCreateWindow中改变CREATESTRUCT 结构体的值就行了。
E.G.
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT cs)
改变窗口的大小 - cs.cx = 300; cs.cy = 200;
改变窗口的显示位置坐标是 cs.x 和 cs.y
这里常用的一个函数是::GetSysMetrics(SM_CXSCREEN);
::GetSysMetrics(SM_CYSCREEN);
用来取得屏幕的大小。
要改变窗口标题栏的字符串:
cs.lpszName = Seven; 会发现标题栏不会改变窗口的标题栏的上的字符串。
改变单文档应用程序的标题栏的字符串 参考MSDN window styles\Frame-window styles 下面有一个Changing the styles of a window create by MFC.\ The SDI Case
默认的情况是WS_OVERLAPPEDWINDOW and FWS_ADDTOTITLE styles
FWS_ADDTOTITLE is add the document title to the window’s caption.
去掉FWS_ADDTOTITLE 就可以更改窗口标题栏字符串。
cs.style = ~FWS_ADDTOTITLE;
cs.lpszName = Seven;
如果我们需要改变背景, 画刷, 光标等等时候。
我们可以在:PreCreateWindow中创建窗口类, WNDCLASS wndClass;
把这个类里的值改变成自己想要的内容就可以了。
E.G.
wndClass.cbClsExtra = 0;
wndClass.cbWndExtra = 0;
wndClass.hbrBackground = (HBRUSH)GetStockObject(DKGRAY_BRUSH);
wndClass.hCursor = LoadCursor(NULL, IDC_WAIT);
wndClass.hIcon = LoadIcon(NULL, IDI_WARNING);
wndClass.hInstance = AfxGetInstanceHandle();
获取应用程序的实例句柄可用AfxGetInstanceHandle函数, 这个函数是一个全局的函数, 前面有一个AFX表示是一个应用程序框架类函数,哪里都可用。
wndClass.lpfnWndProc = ::DefWindowProc;
我们只是想要改变窗口的图标, 光标,不想改变条用过程所以用defWindowProc函数来处理。
因为在CWnd中也有一个defWindowProc函数,比全局的函数少一个参数 如果不加::的话调用就要报错。
wndClass.lpszMenuName = NULL;
创建菜单并不是在在设计窗口类的时候创建, 菜单的创建实在CStyleAPP::InitInstance函数中将菜单的标识传进去。
wndClass.style = CS_HREDRAW | CS_VREDRAW;
这里的style并不是窗口的类型而是窗口类的类型。
RegisterClass(wndClass);
注册窗口类。
cs.lpszClass = GL;
后来把我们刚刚设计好的类赋值个cs.lpszClass。
运行程序之后我们会发现只有图标改变了, cursor 和brush都没有改变。这是因为, 我们是在frame中改变的,在frame上边还覆盖一个子窗口类。所以我要改变这些需要把在子窗口的View类中PreCreateWindow中把类名复制。
E.g
在CStyleView中 cs.lpszClass = GL;
就可以把我们刚刚的想要的类型来改变view中的窗口类型, 因为“GL”窗口类已经在CMainFrame框架类中已经注册了, 所以我们可以直接赋值就可以了。
在frame中只可以改变ICON ,为了改变图标我们重写窗口类我很不划算, 在MFC中为我们提供了一个函数AfxRegisterWndClass 直接改变icon详见MSDN
cs.lpszName = AfxRegisterWndClass(CS_HREDRAW | CS_VRED
您可能关注的文档
- VB-2000便携式测振仪AR63A便携式测振仪..docx
- vb2003年(春)笔试部分..doc
- VB-3000螺纹电动阀..doc
- vb2014操作题..doc
- VB411计算机毕业论文范文..doc
- VB5~6章实验题..docx
- VB7商品销售管理系统(SQL数据库)..doc
- VBA中的字符串操作..doc
- VBA_InputBox_函数..doc
- vba中数据类型转换..doc
- 2025年下半年齐齐哈尔医学院长期公开招聘编制内工作人员38人备考题库及答案解析.docx
- 2025四川广元市青川县博睿人力资源有限公司招聘劳务派遣人员2人备考题库及答案解析.docx
- 2025年南阳部分市直和市县以下事业单位联考招聘1000人(医疗卫生岗位招177人)备考题库及答案解析.docx
- 2025广西南宁市金凯初级中学秋季学期招聘(第二批)备考题库及答案解析.docx
- 南充文化旅游职业学院2025年引进高层次人才公开考核招聘岗位调整备考题库及答案解析.docx
- 供水设备安装与调试方案.docx
- 2025年下半年云南玉溪市华宁县卫生健康系统事业单位招聘编外人员21人备考题库及答案解析.docx
- 2025湖南常德武陵区招聘卫健系统事业单位工作人员22人备考题库及答案解析.docx
- 供水管网压力监测方案.docx
- 2025年河北廊坊大厂回族自治县公开招聘教师55名备考题库及答案解析.docx
文档评论(0)