- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
09-定制应用程序外观
Lesson 9 1、在窗口建立之前改变窗口外观,第三课讲mfc运行机制的时候说过这个函数了,留了一个后门给我们 BOOL CMainFrame::PreCreateWindow(GREATESTRUCT cs) { if(!CFrameWnd::PreCreateWindow(cs)) return FALSE; 改变cs结构体 return TRUE; } 改宽高,可以直接cs.x=*,cs.y=* 改窗口标题,必须先改窗口的类型,因为原来默认FWS_ADDTOTITLE | WS_OVERLAPPEDWINDOW FWS_ADDTOTITLE 默认使用文档标题,去掉这个标志就可以了 //cs.style=~FWS_ADDTOTITLE; cs.style=WS_OVERLAPPEDWINDOW; cs.lpszName=; 2、在窗口建立之后改变窗口外观,在OnCreate()用SetWindowLong() LONG SetWindowLong(HWND hWnd,int nIndex,LONG dwNewLong); //sdk函数,改变指定窗口的属性 要改变的窗口的句柄 你要改变的属性 新的值 改变属性用GWL_STYLE指定改变的是窗口类型 获取窗口信息 LONG SetWindowLong(HWND hWnd,int nIndex); //哪个窗口,什么类型 //SetWindowLong(m_hWnd,GWL_STYLE,WS_OVERLAPPEDWINDOW); SetWindowLong(m_hWnd,GWL_STYLE,GetWindowLong(m_hWnd,GWL_STYLE) ~WS_MAXIMIZEBOX); 3、改变图标,光标,背景,应该在PreCreateWindow()中编写 获取当前应用程序的句柄 HINSTANCE AfxGetInstanceHandle(); 通过重写窗口类,达到修改程序外观的目的 WNDCLASS wndcls; //重写窗口类 wndcls.cbClsExtra=0; wndcls.cbWndExtra=0; wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH); wndcls.hCursor=LoadCursor(NULL,IDC_HELP); wndcls.hIcon=LoadIcon(NULL,IDI_ERROR); wndcls.hInstance=AfxGetInstanceHandle(); wndcls.lpfnWndProc=::DefWindowProc; //cwnd类中有一个同名的函数,所以要用::区分 wndcls.lpszClassName=; //窗口类名 wndcls.lpszMenuName=NULL; wndcls.style=CS_HREDRAW | CS_VREDRAW; RegisterClass(wndcls); //注册窗口类 cs.lpszClass=; //把新的窗口类送给PreCreateWindow()中传入的参数cs 修改窗口图标,应该在MainFrame类中修改,因为图标是属于框架类的 修改光标,背景应该在View类中修改,因为那是view类窗口上的,把最后一句移到view同函数中即可 4、上面的方法太麻烦了,用另一个函数, LPCTSTR AFXAPI AfxRegisterWndClass(UINT nClassStyle,HCURSOR hCursor=0,HBRUSH hbrBackground=0,HICON hIcon=0);//窗口类型,光标,画刷,图标,返回新类的类名 缺省参数,箭头光标,空画刷,windows标志图标 可以这样写,达到上面一样的目的 cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW,0,0,LoadIcon(NULL,IDI_WARNING)); 5、窗口建立后改变外观 DWORD SetClassLong(HWND hWnd,int nIndex,LONG dwNewLong); //改变WNDCLASSEX结构体的内容 哪个窗口 改变类型 新类型 改变图标
文档评论(0)