改变窗口实在PreCreateWindow中进行操作,
因为 你需要在创建窗口之前,就要设定窗口的类型;
可以改变windows窗口的大小,FWS_DDTOTITLE WS_OVERLAPPEDWINDOW;
而在FWS_DOTOTITLE这个操作是把Doc窗口标题默认成为Fram窗口辩题;
在窗口创建之后也可以修改窗口属性;
OnCreate()中
SetWindowLong(HWND,int,LONG)
第一个是窗口的句柄,第二个所要改变属性的索引;第三个是改变索引对象的值;
SetWindowLong(this->m_hWnd,GWL_STYLE,WS_OVERLAPPEDWINDOW);
改变GCL_STYLE属性窗口属性,改变为WS_OVERLAPPEDWIND;
LONG GetWindowLong(HWND,int);
得到窗口的属性的值;
SetWindowLong(this->m_hWnd,GWL_STYLE,GetWindowLong(m_hWnd,GCL_STYLE)&~FWS_DDTOTITLE));
改变窗口外观可以使用在PreCreateWindow()中创建自己的窗口;
STRUCT WNDCLASS wndcls;
然后设置window的属性;w
wnd.HINSTANCE = AfxGetInstanceHandle();
AfxGetInstanceHandle()是一个全局函数;
这里需要特别注意一下,
就是咋最后PreCreateWindow中需要最后一部,改为
cs.lpclassname = "---"这里填写的是你注册的窗口的名字//特别重点;
如果这里没有设置没有任何效果;
然后看到View类的光标和背景没有变,
为什么呢;
这是因为View覆盖了FRAM,我们只需要在
View中的PreCreateWindow()然后直接cs.lpclassname = ""你注册的窗口
这样之后你的窗口的背景和光标就变了;
总结一下;
修改图标用的是fram类,而修改背景和光标用的是view类;
最后还有一个改变光标和图标和背景;
在fram PreCreateWindow()中
AfxRegisterWndClass()这是一个全局函数;
cs.lpclassname = AfxRegisterWndClass(NULL,光标,背景,图标);
这里把得到的窗口名字改为了AfxRegisterWndClass得到的窗口名字;
在PreCreateWindow()中注册一个窗口类,而在OnCreate中设计窗口的
图标光标背景;
还有一个全局的在任何时候都可以改变窗口的属性;
OnCreate()函数中设计窗口的图标光标背景;
SetClassLong(NULL,GCL_HICON,设置的窗口图标)
GetClassLong();