标签:span 直接 code 创建 改变 取反 als etc rate
******窗口创建之前修改MFC窗口大小*************************
一 创建单文档程序,CMainFrame::PreCreateWindow(CREATESTRUCT&cs)。
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; // TODO: 在此处通过修改 // CREATESTRUCT cs 来修改窗口类或样式 cs.cx = 800; cs.cy = 600; cs.lpszName = L"测试属性页表单程序"; //单这个还不能改变它的标题,因为单文档默认模式为:WS_OVERLAPPEDWINDOW|FWS_ADDTOTITLE的联合 //FWS_ADDTOTITLE 它是MFC类型的样式,用来将文档的标题添加到应用程序的标题上 //它的作用就是用来通知程序把文档标题作为应用程序的标题 //对FWS_ADDTOTITLE取反(~) 再进行与(&)操作即可去除这个样式 cs.style &= ~FWS_ADDTOTITLE; //或者直接cs.style=OVERLAPPEDWINDOW; 效果等同 return TRUE; }
在PreCreateWindow()设计一个窗体类,然后注册,cs的lpClassName=新注册的窗口类的类名,但是这样只是修改了框架窗口的,如果要改变光标,背景之类的,则需要修改覆盖在CMainFrame上的View类。
由于新创建的类已经注册了,因此,在View类的PreCrateWindow中,只需要把类的名字传递给View::PreCreateWindow(CREATESTRUCT &cs)中的cs。设置cs。lpClassName为注册过的窗口类。
新注册的窗口类需要hInstance实例可以通过:AfxGetInstanceHandle(); 缺省的窗口过程函数 DefWindowProc。如果要修改应用程序图标,通过这个方法,显得大材小用,因此使用AfxRegisterWndClass()
******创建之后修改*************************************************************
//用于修改一个指定窗口的属性 LONG SetWindowLong( HWND hWnd //窗口句柄 ,int nIndex //GWL_STYLE ,LONG dwNewLong //新的窗口类型 ) 在OnCreate()函数中进行修改
SetWindowLong(m_hWnd, GWL_STYLE, GetWindowLong(m_hWnd, GWL_STYLE)&~WS_MAXIMIZEBOX);//取消最大化框
在View类中增加OnCreate
SetClassLong(m_hWnd,GCL_HBRBACKGROUND,(LONG)GetStockObject(BLACK_BRUSH)); //修改背景为黑色 这个函数用于在窗口创建之后,在程序中改变图标
SetClassLong(m_hWnd, GCL_HCURSOR, (LONG)LoadCursor(NULL,IDC_HELP)); //修改光标带问号
标签:span 直接 code 创建 改变 取反 als etc rate
原文地址:https://www.cnblogs.com/zhou8744/p/10604210.html